Iron Tank
[!WARNING] 已订正(1.7.10 树) 原条目三处错误:
- 「Glass blocks(
GLASS)透明观察窗」是编造的。1.7.10 的罐体 pattern 里'W'标记的语义是 Gauge or Valve(仪表或阀门),不是玻璃;TileTankBase.isMapPositionValid()的case 'W'校验的是「必须是罐体方块」。- 容量不是配置项。源码里不存在
tankPerBlockCapacity, 每块容量是硬编码的CAPACITY_PER_BLOCK_IRON = 16 * BUCKET_VOLUME(16 桶)。- 原表把「方块数」当成「容量」。真实容量 = 方块数 × 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),必须清空生物才能成型。
使用
- 在底面中心放阀门方块(它就是 master,
'M'位置)。 - 向外铺墙块填满底面
'B'位。 - 逐层向上堆墙块,仪表/阀门按需放在
'W'位。 - 顶部用罐体方块封顶(
'T')。 - 罐内不得有生物。
- 用桶或流体管注入液体。
相关条目
- Steel Tank - 同结构,容量翻倍、抗性 25.0
- Blast Furnace - 可熔炼罐壁
- Iron Tank Wall
- Iron Tank Valve