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)。
相关条目
- Stargate Controller - 宿主方块
- SGBaseTE - 能量消费者
- Naquadah - 唯一燃料
- 界面 - 燃料界面布局
- 配置项 -
dhd.*三个键