TileStampingTable
事实基准:
/Users/evlos/a/mirror/BuildCraft(master,minecraftVersion = 1.7.10)逐行读源码。
注册信息
| 属性 | 值 | 来源 |
|---|---|---|
| TileEntity 注册名 | buildcraft.TileStampingTable |
BuildCraftSilicon.java:160 |
| 注册类 | buildcraft.silicon.TileStampingTable |
同上 |
| 所属 modid | BuildCraft|Silicon |
BuildCraftSilicon.java:63 |
| 关联方块 | BlockLaserTable,meta = 5 |
silicon/BlockLaserTable.java:86-87 |
| 父类 | TileLaserTableBase |
silicon/TileStampingTable.java:27 |
| 实现接口 | IHasWork / ISidedInventory |
同上 |
| 是否配置门控 | 否(无条件注册) | BuildCraftSilicon.java:160 |
槽位数量与布局
silicon/TileStampingTable.java:40:
private static final int[] SLOTS = Utils.createSlotArray(0, 5);
→ 半开区间 [0, 5),即 5 个方块槽(0–4)。
逐槽(silicon/gui/ContainerStampingTable.java:27-31)
| 槽位 | 类型 | GUI 坐标 | 用途 |
|---|---|---|---|
| 0 | SlotValidated |
(15, 18) |
输入(待冲压的物品 / 模具) |
| 1 | SlotOutput |
(143, 18) |
主输出(右侧,与输入同排) |
| 2 | SlotOutput |
(111, 45) |
副产物 1 |
| 3 | SlotOutput |
(129, 45) |
副产物 2 |
| 4 | SlotOutput |
(147, 45) |
副产物 3 |
⚠️ 冲压台是「1 进 4 出」:槽 2、3、4 是三个平行的副产物槽(同一 y=45 一排), 不是 2×2 的副产物区。
玩家背包:热键栏 9 槽(:35,y=69)+ 主背包 27 槽(:40,y=127)。
内部类:本地合成容器
silicon/TileStampingTable.java:29 定义内部类 LocalInventoryCrafting extends InventoryCrafting,
是冲压台私有的合成矩阵封装(不暴露给 GUI 绑定)。
处理速率 / 耗时
updateEntity()(silicon/TileStampingTable.java:97)配合 IHasWork。
⚠️ 本类没有写死「N tick 一次」的节拍常量,速度由 TileLaserTableBase + 激光供能决定,不断言数字。
GUI / Container 配对
| GUI 类 | Container 类 | 配对处 |
|---|---|---|
buildcraft.silicon.gui.GuiStampingTable |
buildcraft.silicon.gui.ContainerStampingTable |
silicon/SiliconGuiHandler.java:79 |
自动化
ISidedInventory.getAccessibleSlotsFromSide 返回 SLOTS(:237),即 0–4 共 5 槽全部可访问。
网络封包
走 TileLaserTableBase 基类同步。无独立的 Silicon 专用封包 ID。