反应堆结构

基本信息

终焉反应堆(Draconic Reactor)是 Draconic Evolution 的最高级能量设施,由 1 个核心 + 4 个稳定器 + 能量喷射器组成。

属性 值 来源
核心方块 draconicevolution:reactorCore ModBlocks.java:128, 84
稳定器方块 draconicevolution:reactorStabilizer ModBlocks.java:129, 86
能量喷射器方块 draconicevolution:reactorEnergyInjector ModBlocks.java:131, 87
核心 TileEntity TileReactorCore CommonProxy.java:242
稳定器 TileEntity TileReactorStabilizer CommonProxy.java:245
喷射器 TileEntity TileReactorEnergyInjector CommonProxy.java:246
部件搜索最大距离 10 TileReactorCore.java:56
稳定器数量要求 恰好 4 TileReactorCore.java:326

三个部件方块的硬度 / 抗性均继承 BlockDE 默认值 5.0 / 10.0(BlockDE.java:17-27),材质均为 Material.iron。

功能

结构校验

TileReactorCore 在核心周围 MAXIMUM_PART_DISTANCE = 10 格内搜索部件(TileReactorCore.java:284-296):

  1. 搜索到的 TileReactorStabilizer 必须把 masterLocation 指向当前核心,否则不计入(TileReactorCore.java:315-317)。
  2. 计数完成后判定:isStructureValid = stabilizersCount == 4;(TileReactorCore.java:326)——必须恰好 4 个,多于或少于都判定无效。
  3. 稳定器位置列表写入 NBT 的 Stabilizers 标签列表(TileReactorCore.java:602-608),读回逻辑在 TileReactorCore.java:628-630。

充能进度

充能进度条由 fieldCharge 与 maxFieldCharge 计算(TileReactorCore.java:119):

stabilizerRender = (float) Math.min(fieldCharge / (maxFieldCharge * 0.1D), 1D);

即进度条在达到满能量的 10% 时就显示为完全充满。

爆炸

反应堆失效会产生实体爆炸,由 ReactorExplosion / ReactorExplosionTrace 两个类实现(common/tileentities/multiblocktiles/reactor/)。爆炸威力由配置项控制:

配置项 默认值 范围 说明
EnableBigExplosion true — 设为 false 可把反应堆爆炸削弱到「略大于一次 TNT 爆炸」
maxFuelStorage 10368 0 – 10,000,000 反应堆最大燃料储存
EnergyOutputMultiplier 1.0 0 – 1,000,000 能量输出倍率
FuelUsageMultiplier 1.0 0 – 1,000,000 燃料消耗速度倍率
linearReactorFuelUsage true — true = 线性燃料消耗公式;false = ^0.3 公式

配置来源:ConfigHandler.java:362-390(EnableBigExplosion 位于分类 Draconic Reactor)。

源码缺陷:reactorFuelStorage 的读取代码在 ConfigHandler.java:369-375 与 ConfigHandler.java:388-392 重复出现了两次(同一配置键 maxFuelStorage、同一默认值 10368)。第二次读取会覆盖第一次,虽然两次参数完全一致因此当前无实际行为差异,但属于冗余代码。

稳定器部件

稳定器由 反应堆稳定器部件 的 5 个 meta 组装,配方见 CraftingHandler.java:124-140 起的 reactor 分组,示例(partStabFrame,CraftingHandler.java:125-133):

III
CD
III
字符 物品
I 铁锭,物品字典 ingotIron
C 双足飞龙核心(ModItems.wyvernCore)
D 觉醒核心(ModItems.awakenedCore)

数值

数值名 值 来源
部件搜索最大距离 10 格 TileReactorCore.java:56
稳定器数量要求 4(恰好) TileReactorCore.java:326
进度条充满阈值 满能量的 10% TileReactorCore.java:119
反应堆 GUI 按钮 reactorStart / reactorStop / reactorCharge button.de.* 本地化键
反应堆 NEI 处理器 1 个 integration/nei/ReactorNEIHandler.java,本地化键 nei.recipe.reactor
默认燃料储存 10368 ConfigHandler.java:369-375

交互

触发 行为
右键反应堆核心 打开反应堆 GUI(ContainerReactor + GUIReactor)
GUI 中点击启动 / 停止 / 充能 对应 button.de.reactorStart / reactorStop / reactorCharge
稳定器数量 ≠ 4 isStructureValid = false,反应堆不工作
结构损坏 触发 ReactorExplosion 实体爆炸链
关闭 EnableBigExplosion 爆炸规模降至约一次 TNT

合成配方

反应堆全部部件的配方位于 90 条合成配方的 reactor 分组中(CraftingHandler.java:122 起的 // Reactor 注释块),使用 addOre(...) 即 ShapedOreRecipe。完整统计见 合成配方系统。

相关条目