Node Transmodifier GUI

基本信息

属性 值
GUI ID 0(GuiID.ID_NODE_TRANSMODIFIER)
触发 右键 Node Transmodifier
打开调用 player.openGui(ThaumicMachina.instance, 0, world, x, y, z)(block/BlockNodeTransmodifier.java:32)
容器 ContainerNodeTransmodifier
客户端 GUI GuiNodeTransmodifier(GuiContainer)
处理器 GuiHandler(NetworkRegistry.INSTANCE.registerGuiHandler)
槽位总数 4(改装)+ 36(玩家:3×9 + 9 快捷栏)
网络包 无 —— 纯 vanilla Container 同步
GUI 纹理 ThaumicMachina:textures/gui/nodeTransmodifier.png

槽位布局

改装槽(inv/container/ContainerNodeTransmodifier.java:24-32):

int x = 20, y = 47;
for (int i = 0; i < 4; ++i) {
    this.addSlotToContainer(new SlotLocked(this.tileTransmodifier, i, x, y,
        new Item[] { TMObjects.nodeAugmentation }));
    x += 40;
}
槽 索引 坐标 接受物品
1 0 (20, 47) 仅 ThaumicMachina:nodeAugmentation
2 1 (60, 47) 同上
3 2 (100, 47) 同上
4 3 (140, 47) 同上

间距 40px(大于标准 18px),四槽横排。玩家背包由 TMContainer.loadPlayerInvSlots() 加入:主背包 xs=8, ys=84 起 3×9,快捷栏 ys+58。

SlotLocked.isItemValid(inv/slot/SlotLocked.java:18-27)逐个比对 stack.getItem() == item,只放行 TMObjects.nodeAugmentation。

数值

数值 值
GUI ID 0
改装槽数 4
改装槽坐标 (20,47) / (60,47) / (100,47) / (140,47)
改装槽间距 40px
每槽 stackLimit 1(TE 的 getInventoryStackLimit())
玩家背包起点 (8, 84)
快捷栏 Y 偏移 +58
玩家槽位总数 36
网络包 0
GUI 纹理分辨率 未在代码中硬编码,由 GuiContainer 按 xSize/ySize 推导

交互

触发 行为
右键方块 打开 GUI(GuiHandler 按坐标取回 TileNodeTransmodifier)
放入非改装物品 SlotLocked 拒绝
放入改装物品 存入 TE 的 4 槽 ItemStack[]
关闭 GUI NBT 持久化(writeToNBT / readFromNBT 走 TMTileEntity 的 slot 工具方法)
移入方块 无 —— TileNodeTransmodifier 未覆写 transferStackInSlot

源码缺陷

  • 无权限校验:ContainerNodeTransmodifier.canInteractWith 恒返回 true(inv/container/ContainerNodeTransmodifier.java:35-37),任何玩家可开任何位置的该 GUI。
  • isUseableByPlayer 恒 true(tile/TileNodeTransmodifier.java:165-167),与上一条叠加。
  • 无 transferStackInSlot:Shift+点击不跨槽转移,只能逐格移动。
  • GUI 纹理路径大小写:new ResourceLocation("ThaumicMachina:textures/gui/nodeTransmodifier.png")(client/gui/GuiNodeTransmodifier.java:19-20)用混合大小写前缀,磁盘目录为小写 assets/thaumicmachina/textures/gui/。
  • GUI 内无任何信息文本:未渲染改装名、兼容性提示或 NBT 状态,4 个槽是完全静默的。
  • offsetStartPosY(0) 是空操作(ContainerNodeTransmodifier.java:20),TMContainer 的 ys 本就为 84。

相关条目