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)。
合成配方
相关条目
- SGBaseTE - 真正消耗能量的底座
- DHDTE - 控制器的 TileEntity
- Stargate Base - 被供能的方块
- 硅岩 - 唯一的燃料