跳到正文
烈焰甘蔗Wiki

Iron Tank

[!WARNING] 已订正(1.7.10 树) 原条目三处错误:

  1. 「Glass blocks(GLASS)透明观察窗」是编造的。1.7.10 的罐体 pattern 里 'W' 标记的语义是 Gauge or Valve(仪表或阀门),不是玻璃; TileTankBase.isMapPositionValid() 的 case 'W' 校验的是「必须是罐体方块」。
  2. 容量不是配置项。源码里不存在 tankPerBlockCapacity, 每块容量是硬编码的 CAPACITY_PER_BLOCK_IRON = 16 * BUCKET_VOLUME(16 桶)。
  3. 原表把「方块数」当成「容量」。真实容量 = 方块数 × 16 桶。

抗性 20.0、钢罐 25.0、钢罐容量翻倍这三点原条目是对的。 证据:TileTankBase.java:58-59、:493-501、:513-550、IronTank.java:46-48。

基本信息

属性 值
底面尺寸 3×3 / 5×5 / 7×7 / 9×9 四种
高度 4–8(5 档)
pattern 总数 最多 20 套(3×3 无条件可用;5×5/7×7/9×9 受 RailcraftConfig.getMaxTankSize() 门控)
控制器(master) 底面层中心,pattern 坐标 (n/2, 0, n/2),即 'M' 位置
结构方块 Iron Tank Wall / Iron Tank Valve
每块容量 16 × FluidHelper.BUCKET_VOLUME(硬编码)
爆炸抗性 20.0F(IronTank.getResistance())
可否用扳手旋转 否(TileTankBase 未覆写 rotateBlock())
可否整体拆除 无整体拆除 API

数组尺寸

buildMap()(TileTankBase.java:338-361):

配置 allowTankStacking() 数组尺寸 说明
true(默认) (底面+2) × height × (底面+2) 罐体可上下堆叠
false (底面+2) × (height+2) × (底面+2) 上下各加一层 'O' 边框,master offset 的 Y 改为 1
底面 数组 X / Z 控制器 offset (x, z)
3×3 5 (2, 2)
5×5 7 (3, 3)
7×7 9 (4, 4)
9×9 11 (5, 5)

标记语义

TileTankBase.isMapPositionValid()(TileTankBase.java:513-550)覆写了默认实现:

标记 含义 校验规则
'O' Other 不能是罐体方块(isTankBlock(meta) 为真即失败)
'B' Block 必须是罐体方块且 isWallBlock(meta) 为真(仅墙块)
'W' Gauge or Valve 必须是罐体方块且 isTankBlock(meta) 为真
'M' Master 必须是罐体方块(isTankBlock)
'T' Top Block 必须是罐体方块(isTankBlock)
'A' Air 走 TileMultiBlock 默认分支,必须是空气

IronTank.isTankBlock() 覆盖 TANK_IRON_WALL / TANK_IRON_VALVE / TANK_IRON_GAUGE 三种 metadata (IronTank.java:24-28);isWallBlock() 只认 TANK_IRON_WALL。

容量公式

容量(桶) = (数组X - 2) × (高度 - 2 × masterOffsetY) × (数组Z - 2) × 16

来源:TileTankBase.java:500。两种堆叠配置下 高度 - 2 × masterOffsetY 都等于实际层数,故:

底面 每层方块数 容量 = 方块数 × 16 桶
3×3 9 高度 h → 144h 桶
5×5 25 高度 h → 400h 桶
7×7 49 高度 h → 784h 桶
9×9 81 高度 h → 1296h 桶

各高度容量(桶):

高度 3×3 5×5 7×7 9×9
4 576 1600 3136 5184
5 720 2000 3920 6480
6 864 2400 4704 7776
7 1008 2800 5488 9072
8 1152 3200 6272 10368

实体阻挡检测

每套 pattern 带一个 AxisAlignedBB entityCheckBounds,罐内出现 EntityLivingBase 时 结构判定为 ENTITY_IN_WAY(TileMultiBlock.java:290),必须清空生物才能成型。

使用

  1. 在底面中心放阀门方块(它就是 master,'M' 位置)。
  2. 向外铺墙块填满底面 'B' 位。
  3. 逐层向上堆墙块,仪表/阀门按需放在 'W' 位。
  4. 顶部用罐体方块封顶('T')。
  5. 罐内不得有生物。
  6. 用桶或流体管注入液体。

相关条目

浏览全部模组