TileArchitect
事实基准:
/Users/evlos/a/mirror/BuildCraft(master,minecraftVersion = 1.7.10)逐行读源码。
注册信息
| 属性 | 值 | 来源 |
|---|---|---|
| TileEntity 注册名 | net.minecraft.src.builders.TileTemplate |
BuildCraftBuilders.java:631 |
| 注册类 | buildcraft.builders.TileArchitect |
同上 |
| 所属 modid | BuildCraft|Builders |
BuildCraftBuilders.java:144 @Mod |
| 关联方块 | Architect(注册变量 architectBlock) |
BuildCraftBuilders.java:631 同块 |
| 实现接口 | IInventory / IBoxProvider / ICommandReceiver / ILEDProvider |
builders/TileArchitect.java:43 |
| 是否配置门控 | 否(无条件注册) | BuildCraftBuilders.java:631 |
⚠️ 注册名 TileTemplate 是历史遗留名,与类名 TileArchitect 完全不对应。
写条目时不能「按类名反推注册名」。
关于
check_class_claims.py的 NOT FOUND:net.minecraft.src.builders.TileTemplate在源码树里查不到,是预期结果—— 它是GameRegistry的存档标识串(只用于老存档反查),不是 Java 类名。 判定依据:BuildCraftBuilders.java:631把它当字符串字面量传给BCRegistry.registerTileEntity(TileArchitect.class, "...")。
槽位数量与布局
builders/TileArchitect.java:61:
private final SimpleInventory inv = new SimpleInventory(2, "Architect", 1);
即 2 槽,单槽上限 1(蓝图是一叠 1 个),内部名 "Architect"。
| 槽位 | 用途 | 堆叠上限 |
|---|---|---|
| 0 | 蓝图(图纸 / template) | 1 |
| 1 | 蓝图 | 1 |
Architect 是整条 Builders 链的源头:它负责「量地」——记录一个立方体区域并生成蓝图, Builder / Filler 消费蓝图施工,Quarry 挖掉区域内方块。
蓝图数据结构
Architect 以 IBoxProvider 暴露「已选区域」,蓝图数据落在
buildcraft.core.blueprints.BlueprintBase(core/blueprints/BlueprintBase.java)
及其子类 buildcraft.core.blueprints.Blueprint / Template
(core/blueprints/Blueprint.java、core/blueprints/Template.java)。
Architect 另用 buildcraft.builders.blueprints.RecursiveBlueprintReader
(builders/TileArchitect.java:24 的 import)与
buildcraft.core.blueprints.BlueprintReadConfiguration(:28 的 import)处理蓝图读取。
⚠ buildcraft.core.blueprints 包里没有 BlueprintsManager 这个类——
上一版条目曾写出该类名,经 check_class_claims.py 判定 NOT FOUND,已更正。
蓝图的方块数上限由 BlueprintBase 层的逻辑决定,不在 TileArchitect 中——
本条目不断言数值。
处理速率 / 耗时
无逐 tick 加工耗时。Architect 放置 / 破坏方块以红石脉冲驱动,
单次操作扣 BuilderAPI.BREAK_ENERGY = 160(api/blueprints/BuilderAPI.java:14)或
BUILD_ENERGY = 240(:15)。
GUI / Container 配对
| GUI 类 | Container 类 | 配对处 |
|---|---|---|
buildcraft.builders.gui.GuiArchitect |
buildcraft.builders.gui.ContainerArchitect |
builders/BuildersGuiHandler.java:39 |
网络封包
TileArchitect 实现 ICommandReceiver,走 BuildCraft 的命令封包而非专用数据包:
服务端通过 NetworkUtils 传 UTF 字符串指令(与 TileRefinery 的
writeToPacket 同一套 NetworkUtils.writeUTF 机制)。
无独立的「Architect 专用」封包 ID。