TileReactorCore
基本信息
| 属性 | 值 |
|---|---|
| 类名 | ...reactors.tile.TileReactorCore |
| 类型 | class extends TileEntity,实现 7 个接口(含 IReactorGrid) |
| 方法数 | 49 |
| 源码规模 | 1325 行(本 mod 最大文件) |
| 启用版本 | 1.7.10 |
功能
反应堆控制器 TileEntity:多块体结构校验、堆芯热力学模拟、GUI 数据提供者, 以及全部子 TileEntity 的注册中心。本 mod 的一切都汇聚在这里。
实现要点
- 多块体结构由
STRUCTURE_DEFINITION(第 1111-1191 行)定义,两个形状由fluid通道二选一: -
fluid形状(通道值 1):5 行 × 5 列的图形,转置后构成整体框架。A=PRESSURE_VESSEL(外壳);B=ProxyStructureElement包装的PRESSURE_VESSEL, 但check时若该位置是IReactorBlock则收编为端口(流体口 / 检修口 / 红石口 / 温度传感器);C=REACTOR_CHAMBER(腔室),数量受remainingChambers静态计数器限制;~= 控制器自身。
-
eu形状:3 行 × 3 列,C排成环形,~在中心。
- ⚠️ 关于「几×几×几」:源码里只有上述 5×5 图形串与 3×3 图形串,
经
StructureDefinition.addShape+transpose组装,没有单一的整数尺寸常量。 不要写成「9×9×9 之类」的确定数字。 - ⚠️ 关于「可否旋转」:两个形状都通过
addShape注册,源码中未见显式的旋转允许设置; 而fluid通道值只有 1 被实现(见NHStructureChannels),其余通道值无效。 - ⚠️ 关于「可否拆除」:源码没有对结构方块做「禁止破坏」的处理,
也没有
onStructureDestroy之类的钩子。拆除行为走 Forge 默认路径。 - 实现 7 个接口(
IInventory、IReactorGrid、IGuiHolder<PosGuiData>、IEnergyHandler等), 是本 mod 唯一同时承担结构、热力、库存与 GUI 四重职责的类。 remainingChambers(第 1108 行)是private static字段——多个反应堆实例共享这一个计数器, 结构校验期间若发生重入可能互相干扰。
相关条目
- BlockList - 注册方
- ReactorCore - 对应方块
- IReactorGrid - 实现的网格接口
- NHStructureChannels - 通道定义
- StructureLib - 多块体 API
- MixinReactor - 未生效的 IC2 注入