注水火焰(Imbued Fire)

基本信息

属性 值
方块数量 6
抽象基类 thaumic.tinkerer.common.block.fire.BlockFireBase(继承原版 BlockFire,实现 ITTinkererBlock)
注册位置 TTRegistry.java:56-61(6 次 loadSimpleBlock)
注册门槛 6 个全部无条件注册 —— BlockFireBase.shouldRegister() 恒返回 true(BlockFireBase.java:392-394)

6 种注水火焰是同一基类下的 6 个并列分支,没有各自的属性覆写,差异只在注册名、研究键、以及各自类中引用的 Aspect 上。因此按「同基类 + 变体表」合为一页。

数值

火焰 注册名 Java 类 研究键 键值 该类引用的 Aspect 注册行
疾风 fireAir BlockFireAir KEY_FIRE_AER FIRE_AER FIRE、AIR、MAGIC TTRegistry.java:56
混沌 fireChaos BlockFireChaos KEY_FIRE_PERDITIO FIRE_PERDITIO FIRE、ENTROPY、MAGIC TTRegistry.java:57
大地 fireEarth BlockFireEarth KEY_FIRE_TERRA FIRE_TERRA FIRE、EARTH、MAGIC TTRegistry.java:58
炽炎 fireFire BlockFireIgnis KEY_FIRE_IGNIS FIRE_IGNIS FIRE、AIR TTRegistry.java:59
秩序 fireOrder BlockFireOrder KEY_FIRE_ORDO FIRE_ORDO FIRE、ORDER、MAGIC TTRegistry.java:60
流水 fireWater BlockFireWater KEY_FIRE_AQUA FIRE_AQUA FIRE、WATER、MAGIC TTRegistry.java:61

getBlockName() 来源:各子类 getBlockName() 分别返回 LibBlockNames.BLOCK_FIRE_FIRE / _WATER / _EARTH / _AIR / _ORDER / _CHAOS。

功能

BlockFireBase 在原版火焰之上叠加 3 层可独立开关的机制:

机制 配置键 默认值 关闭后行为 源码
火焰本身 imbuedFire.enabled true updateTick() 首行直接 return,火焰完全不工作 BlockFireBase.java:88-90
蔓延机制 imbuedFireSpread.enabled true tickRate() 返回 0x7ffffff0(约 68 年),实际停止更新 BlockFireBase.java:71-73
蛋糕 imbuedFire.cake.enabled true 由 BlockFireAir.java:63 读取,关闭后不产生蛋糕 BlockFireAir.java:63

updateTick() 的完整生效条件是 游戏规则 doFireTick 为真 且 enableFire 为真 且 enableFireMechanics 为真,三者缺一即返回(BlockFireBase.java:88-91)。

蔓延与点燃

  • meta 为 0 的方块视为源头,不会自行烧尽;meta ≠ 0 且周边无可燃目标时立即被清除(BlockFireBase.java:104-109)
  • meta 在 1–14 之间按 Math.min(blockMeta + rand.nextInt(3) / 2, 15) 随机增长;达到 15 后停止蔓延(BlockFireBase.java:126-136)
  • 下雨且方块上或其四邻可被闪电击中时,火焰被雨水熄灭(BlockFireBase.java:93-100)
  • rand.nextInt(20) == 0 时对 6 个 ForgeDirection.VALID_DIRECTIONS 邻面做嬗变(BlockFireBase.java:113-122)
  • 高湿度格令蔓延强度 strMod = -50(BlockFireBase.java:140-145)

合成配方

BlockFireBase 图标按层加载:IconHelper.forName(iconRegister, getBlockName() + "_layer_0") 与 "_layer_1"(BlockFireBase.java:414-415),即每种火焰有 2 层贴图。

相关条目