DHDTE

基本信息

属性 值
类 gcewing.sg.guis.DHDTE(guis/DHDTE.java:32),共 240 行
父类 BaseTileInventory
接口 ISGEnergySource(guis/DHDTE.java:32)
附着方块 gcewing_sg:stargateController(blocks/DHDBlock.java:38)
库存槽数 4,全部为燃料槽(guis/DHDTE.java:43-45)

功能

DHDTE 是星门的供能端。它持有 energyInBuffer 缓冲,玩家投入的 硅岩 会被逐件转化为能量,供 SGBaseTE 在拨号与传送期间抽取。

供能

availableEnergy() 返回 energyInBuffer 加上 4 个燃料槽内所有物品的潜在能量(每件 96000)(guis/DHDTE.java:186-194)。drawEnergy 在缓冲耗尽时调用 useFuelItem 补充,useFuelItem 从第 4 槽向第 1 槽倒序寻找并消耗第一个非空槽(guis/DHDTE.java:213-223)——即靠前的槽位优先用完。

自动连接

checkForLink() 在 DHD 放置、加入世界时触发(blocks/DHDBlock.java:71、blocks/DHDBlock.java:78),按 DHD 朝向扫描前方 1..linkRangeZ、左右 -X..X、上下 -Y..Y 的方块,找到已合并且未被别的控制器占用的 SGBaseTE 即绑定(guis/DHDTE.java:131-178)。一旦 isLinkedToStargate 为真就不会重复搜索(guis/DHDTE.java:134-136)。

持久化

NBT 键:isLinkedToStargate、energyInBuffer、linkedX/Y/Z、enteredAddress(guis/DHDTE.java:101-121)。

数值

项目 值 配置键 来源
燃料槽数量 4 — guis/DHDTE.java:44
每件硅岩能量 96000 stargate.energyPerFuelItem tileentities/SGBaseTE.java:131
链接范围 X / Y / Z 5 / 1 / 6 dhd.linkRangeX/Y/Z guis/DHDTE.java:38-40
自身能量上限 跟随 SGBaseTE.energyPerFuelItem 无独立键 guis/DHDTE.java:62
接受的食物 仅硅岩 — guis/DHDTE.java:231-233

maxEnergyBuffer 不是配置项:DHDTE.configure 把它直接赋成 SGBaseTE.energyPerFuelItem 的当前值(guis/DHDTE.java:62),而 DHDTE.configure 在 SGCraft.configure() 中先于 SGBaseTE.configure 执行(SGCraft.java:149、SGCraft.java:152)。由于 configure() 在 preInit 与 init 各跑一次(BaseMod.preInit、SGCraft.java:133),第二遍才会读到用户改过的值。

交互

  • 右键上半 / 下半:分别打开地址界面与燃料界面(blocks/DHDBlock.java:101-102)。
  • 燃料槽:只接受硅岩,槽位由 FuelSlot 渲染(guis/containers/DHDFuelContainer.java:41-51)。
  • 被破坏:清空底座侧的连接标记(blocks/DHDBlock.java:92-95)。

相关条目