TileFiller
事实基准:
/Users/evlos/a/mirror/BuildCraft(master,minecraftVersion = 1.7.10)逐行读源码。
注册信息
| 属性 | 值 | 来源 |
|---|---|---|
| TileEntity 注册名 | Filler |
BuildCraftBuilders.java:629 |
| 注册类 | buildcraft.builders.TileFiller |
同上 |
| 所属 modid | BuildCraft|Builders |
BuildCraftBuilders.java:144 @Mod |
| 关联方块 | Filler | BuildCraftBuilders.java:629 同块 |
| 父类 | TileAbstractBuilder |
builders/TileFiller.java:39 |
| 是否配置门控 | 否(无条件注册) | BuildCraftBuilders.java:629 |
槽位数量与布局
builders/TileFiller.java:52:
private final SimpleInventory inv = new SimpleInventory(27, "Filler", 64);
即 27 槽(3×9 一整板),单槽上限 64,内部名 "Filler"。
对比 TileBuilder 的 28 槽——Filler 比 Builder 少 1 槽, 因为 Filler 不需要 Builder 那个额外的建材补充槽。
| 槽位 | 用途 |
|---|---|
| 0–26 | 建材(27 = 3×9) |
能量与激活阈值
POWER_ACTIVATION = 500(builders/TileFiller.java:42):低于此能量不启动。- 单次放置/拆除的能耗同样走
BuilderAPI:BREAK_ENERGY = 160(api/blueprints/BuilderAPI.java:14)、BUILD_ENERGY = 240(:15)。 - 电池容量未在
TileFiller内调用setBattery设置,由基类默认与引擎供能决定,不断言数值。
处理速率 / 耗时
无固定加工节拍。Filler 按可用面积逐格填充,每 tick 放置量受能量预算限制。
与 Builder 共用 TileAbstractBuilder 的调度层,本类不定义速率常量。
GUI / Container 配对
| GUI 类 | Container 类 | 配对处 |
|---|---|---|
buildcraft.builders.gui.GuiFiller |
buildcraft.builders.gui.ContainerFiller |
builders/BuildersGuiHandler.java:57 |
与 Area / Marker 的关系
Filler 依赖**标记方块(marker)**划定的区域工作。
区域由 TileMarker(buildcraft.core.TileMarker)与
TilePathMarker(buildcraft.core.TilePathMarker)提供,
两者都实现 ITileAreaProvider(core/TileMarker.java:24 类声明)。
网络封包
无独立封包 ID。走 TileEntity 默认 NBT 同步(建材与进度随 NBT 落盘)。