Nuclear Horizons
[!INFO] Git Commit:
34983b3| Updated: 2026-10-01
IC2 核反应堆的开源重实现。README 首句:
This is a mod which re-implements IC2's Nuclear Reactors with an open source license.
自建一套反应堆物理(热管理、中子反射、堆芯装甲、多级燃料循环)、
多块体结构、反应堆模拟器,以及 116 条 GregTech 配方。
身份
| 属性 | 实测值 |
|---|---|
| modid | nuclear_horizons(含下划线,NuclearHorizons.java:21) |
| modName | Nuclear Horizons(@Mod 里写死,带空格) |
| 主包 | com.recursive_pineapple.nuclear_horizons |
| 资源域 | nuclear_horizons(不是 nuclearhorizons) |
| Java 文件 | 93 |
| 注册内容 | 8 方块 / 28 自有物品 / 7 TileEntity |
| 配方 | 116(全部走 GregTech 配方表,非原版合成) |
| 多块体通道 | 2(fluid / chambers) |
| 配置项 | 0 —— 见 Config 的空实现缺陷 |
| 网络包 | 1(模拟结果) |
| Mixin | 2 个类,0 个生效 |
| acceptedMinecraftVersions | [1.7.10](精确匹配) |
@Mod dependencies |
无(⚠️ 但实际硬依赖 5 个库) |
| 其它 | usesMixins = true;coreModClass = NHCoremod;generateGradleTokenClass = ...Tags |
[!IMPORTANT] 定位:IC2 核反应堆的重写版,不是「核工业题材 mod」 它只做核反应堆这一件事:反应堆核心物理 + 堆芯组件 + 模拟器。 没有铀矿、没有离心机、没有核废料设施——那些是 IC2 自己的内容。
[!WARNING] modid 是
nuclear_horizons(下划线) 与 wiki 分类名nuclearhorizons不同。写资源路径、setBlockName前缀、NBT 键与 lang key 时必须用下划线。
[!WARNING]
@Mod没有任何dependencies声明 而dependencies.gradle里有 5 个api级硬依赖: IndustrialCraft 2、GT5-Unofficial、ModularUI2、GTNHLib,外加implementation的 StructureLib。 FML 因此不会强制加载顺序,缺库时是运行期崩溃而不是干净的依赖报错。 已在收录范围的有 GregTech;ModularUI、GTNHLib 已登记未成文(前向引用); IC2 不在本 wiki 收录范围(relation.md无对应行);StructureLib 已在收录范围。
[!NOTE] README 的 TODO 列出未完成项:UI 打磨、新材质、 模拟器的组件自动化配置、EU 反应堆的 TESR 温度传感器(「或接入 nuclear control」)、 以及 「Recipes」——说明配方仍在扩充中。
入口与核心列表
- NuclearHorizons -
@Mod主类,仅转发 - CommonProxy - 全部注册逻辑
- Config - ⚠️ 空实现,0 配置项
- PacketDispatcher - 唯一网络包
- Mods - 兼容目标清单(GTNHLib
IMod) - NHStructureChannels - 2 个多块体通道
- DirectionUtil / GUIUtil - 小型工具
- ClientProxy / ServerProxy - ⚠️ 仅覆写无人调用的
getSide()
Mixin 列表
[!WARNING] 2 个 IC2 Mixin 类全部是死代码
Mixins枚举的唯一条目被整段注释,枚举无任何常量 →IMixins.getEarlyMixins/getLateMixins都返回空 → 3 个 mixin JSON 的mixins数组也全是[]。 结论:与 IC2 反应堆的互通当前不生效。
- Mixin 总览 - 为什么 0 个 mixin 生效
- Mixins - ⚠️ 唯一条目被注释的空枚举
- NHCoremod - coremod(已正确注册,但返回空列表)
- LateMixinPlugin - late 装载器(同样返回空)
- MixinReactor - ⚠️ 死代码,116 行 / 19 方法
- MixinReactorChamber - ⚠️ 死代码,0 方法
方块列表
- BlockList - 8 方块 / 7 TileEntity 注册表
- ReactorCore - 反应堆控制器方块
- ReactorChamber - 反应堆腔室
- PressureVessel - 压力容器(15 行 / 0 方法)
- ReactorFluidPort - 流体端口
- ReactorAccessHatch - 检修口
- ReactorRedstonePort - 红石端口
- ReactorThermalSensor - 温度传感器
- ReactorSimulator - 反应堆模拟器
- FluidBlock - ⚠️ 未在 BlockList 注册
物品列表
- NHItemList - 29 枚举常量(28 物品 + 1 占位)
- NHItem / ReactorItem - 两级物品基类
- BasicHeatVentItem - 散热口,5 变体
- BasicHeatVentCoolantItem - 冷却换热器,3 级
- BasicHeatExchangerItem - 换热器,4 变体
- BasicHeatAbsorberItem - 蓄热容器,5 变体
- BasicNeutronReflectorItem - 中子反射层,2 变体
- BasicReactorPlatingItem - 反应堆装甲,5 变体
- BasicBreederRodItem - 钍增殖棒
- BasicFuelRodItem - 燃料棒基类
- BasicFuelRodProductItem - 13 行 / 0 方法
- DebugHeatAbsorber - 调试件
- MetaItem / IDMetaItem - 通用多用途物品
- IDMetaItem - meta 编号常量枚举(0 方法)
- HeatUtils - 热量换算工具
- MaterialIDs - 材料 ID 常量表
外部物品接入列表
- ForeignItems - 把 GT 燃料棒 / 冷却剂包装成适配器
- ForeignFuelRodItem - 外部燃料棒包装
- ForeignBreederRodItem - 外部增殖棒包装
- ForeignHeatAbsorberItem - 外部冷却剂包装
- ForeignNeutronReflectorItem - 外部反射层包装
材料列表
- MaterialsNuclear - 447 行核材料定义
- MaterialsChemical - 277 行化学试剂定义
组件接口列表
- IBasicFuelRod - 燃料棒契约
- IBreederRod - 增殖棒契约
- IHeatContainer - 蓄热契约
- IHeatMover - 热量搬运契约
- INeutronReflector - 中子反射契约
- IReactorPlating - 堆芯装甲契约
组件适配器列表
- ComponentRegistry - 全局适配器注册表
- IComponentAdapter - 15 方法适配器接口
- IComponentAdapterFactory - 适配器工厂接口
- IReactorGrid - 反应堆网格视图
- FuelRodAdapter - 173 行,最大适配器
- HeatMoverAdapter - 138 行
- BreederRodAdapter - 增殖棒适配
- HeatAbsorberAdapter - 蓄热适配
- NeutronReflectorAdapter - 反射层适配
- ReactorPlatingAdapter - 装甲适配
- InventoryDirection - 安装方向枚举
- ReactorConfig - ⚠️ 8 行空壳类
TileEntity 列表
- TileReactorCore - 1325 行 / 49 方法,本 mod 最大
- TileReactorChamber - 腔室,23 方法
- TileReactorSimulator - 模拟器,424 行
- TileAccessHatch - 检修口
- TileThermalSensor - 温度传感器
- TileFluidPort - 流体端口
- TileRedstonePort - 红石端口
- IReactorBlock - 端口契约
- IReactorSensor - 6 行 / 0 方法标记接口
模拟器列表
- Simulator - 451 行物理模拟核心
- SimulationConfig - 523 行输入配置
- SimulationResult - 输出汇总
- SimulationComponentResult - 单组件输出
- SimulationItems - GT 全套物品映射
- BigintStorage - 大整数兜底存储
- SimulatorProtos - ⚠️ protobuf 生成,7298 行 / DO NOT EDIT
冷却剂列表
- CoolantRegistry - 冷 / 热流体注册表 + 自定义配方表
配方列表
- 配方总览 - 116 条配方的分布统计
- ChemicalRecipes - 33 条,试剂合成
- FuelProcessingRecipes - 20 条,燃料加工
- FuelRodRecipes - 20 条,燃料棒加工
- ComponentRecipes - 20 条,组件制造
- ReprocessingRecipes - 18 条,耗乏后处理
- CoolantRecipes - 4 条,冷却剂
- MiscRecipes - 1 条,⚠️ 会崩
- GTMats - 1547 行材料常量层
- MaterialWrapper - 材料包装接口
源码缺陷
- Config -
synchronizeConfiguration只new Configuration后立即hasChanged()/save(),一个配置项都不读。9 个「看起来可调」的常量改配置无效 - Mixins - 唯一条目整段被注释,枚举为空 → 2 个 IC2 Mixin 永不生效
- TileReactorCore -
remainingChambers是private static,多个反应堆实例共享同一计数器 - ReactorCore - 控制器方块的图标用的是
reactor_chamber_side/reactor_chamber_top(腔室贴图),且上下疑似接反 - FluidBlock -
extends BlockFluidClassic却未在BlockList注册, 配套冷 / 热流体可能无方块 - MiscRecipes - 输出
NHItemList.EMPTY_FUEL_ROD_BASIC.get(1), 而该常量stack == null,get()抛IllegalStateException——这条配方会崩 - NuclearHorizons -
@Mod缺dependencies,5 个硬依赖未声明 - CommonProxy -
getSide()直接return null;serverStarting是空方法 - ReprocessingRecipes - 内部
KEROSENE匿名MaterialWrapper三个方法全return null - Mods -
Names.BLOOD_MAGIC = "AWWayofTime"(modid ≠ 分类名)
依赖关系
@Mod 未声明任何依赖,但 dependencies.gradle 中的实际硬依赖为:
IndustrialCraft 2(api)、GT5-Unofficial(api)、ModularUI2(api)、
GTNHLib(api)、StructureLib(implementation)、
另有 shadowImplementation 的 protobuf-java 与若干 runtimeOnly 的调试用 mod
(NEI / EnderIO / Waila / spark)。
- GregTech - 已在收录范围,配方与材料 API 的实际提供方
- StructureLib - 已在收录范围,多块体 API
- ModularUI - 已登记未成文,前向引用
- GTNHLib - 已登记未成文,前向引用
- Angelica - 已登记未成文,前向引用
IndustrialCraft 2 与 NotEnoughItems 不在本 wiki 收录范围
(relation.md 无对应行),故不建分类。