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。

相关条目