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 字段——多个反应堆实例共享这一个计数器, 结构校验期间若发生重入可能互相干扰。

相关条目