Stargate Controller

基本信息

属性 值
注册名 gcewing_sg:stargateController
英文名 Stargate Controller(en_US.lang:5)
中文名 星门控制器(zh_CN.lang:5)
类 gcewing.sg.blocks.DHDBlock(blocks/DHDBlock.java:31)
硬度 1.5(blocks/DHDBlock.java:39)
TileEntity gcewing.sg.guis.DHDTE(blocks/DHDBlock.java:38)
物品形态 反射式 BaseItemBlock
渲染类型 getRenderType() 返回 -1,即完全不渲染(blocks/DHDBlock.java:59-61)

功能

控制器(游戏内称 DHD,Dialling Home Destination)是可放置机器,负责给星门供能并改写目标地址。它实现 ISGEnergySource(guis/DHDTE.java:32),能量来源是放入其 4 个燃料槽的 硅岩。

控制器不需要玩家手动连线:放置时与破坏时都会调用 checkForLink(),在自身朝向的 -X..X × -Y..Y × 前方 1..Z 范围内搜索已合并的 SGBaseTE 并自动绑定(guis/DHDTE.java:131-159)。一个底座同时只能被一个控制器绑定,绑定后 gte.isLinkedToController 置位,阻止第二个控制器抢占(guis/DHDTE.java:161-178)。

方块的 4 张贴图是 dhd_top、dhd_side、stargateBlock、dhd_button_dim(blocks/DHDBlock.java:34)。DHDBlock 不覆盖 onBlockActivated 的红石逻辑,但它继承了 BaseBlock 的朝向处理,按放置朝向显示按钮朝向。

数值

项目 值 来源
燃料槽数量 4 guis/DHDTE.java:44
链接范围 X(左右) 5 guis/DHDTE.java:38,配置 dhd.linkRangeX
链接范围 Y(上下) 1 guis/DHDTE.java:39,配置 dhd.linkRangeY
链接范围 Z(正前方) 6 guis/DHDTE.java:40,配置 dhd.linkRangeZ
每件燃料提供能量 96000 SGU tileentities/SGBaseTE.java:131
自身能量上限 跟随 SGBaseTE.energyPerFuelItem guis/DHDTE.java:62

注意 DHDTE.maxEnergyBuffer 不是独立配置项,它在 configure() 中被直接赋值为 SGBaseTE.energyPerFuelItem(guis/DHDTE.java:62),因此改 stargate.energyPerFuelItem 会同时改变每个燃料槽的供能量与控制器缓冲上限。

交互

  • 点击上半部分(cy <= 0.5)打开地址编辑界面 SGGui.SGController;点击下半部分打开燃料界面 SGGui.DHDFuel(blocks/DHDBlock.java:101-102)。
  • 放置 / 加入世界:立即尝试自动连接星门(blocks/DHDBlock.java:69-79)。
  • 破坏:若已连接星门,会把底座上的连接标记清空(blocks/DHDBlock.java:87-96)。
  • 燃料槽:只接受 SGCraft.naquadah 物品,非硅岩放入会被拒绝(guis/DHDTE.java:231-238)。

合成配方

需要 星门控制水晶 与黑曜石,见 星门结构合成。

相关条目