跳到正文
烈焰甘蔗Wiki

Boiler

[!WARNING] 已订正(1.7.10 树) 原条目的 pattern 数量、tank 数量、tick/蒸汽常数经核对均正确, 但缺少两项关键事实:① 数组实际尺寸是 char[tankHeight+3][width+2][width+2], 不是 3×3×3;② 控制器位于 y=1 的火箱层(BoilerPattern 里 super(pattern, xOffset, 1, yOffset)), 不是「顶层空气」。 证据:TileBoiler.java:69-85、:98-130、:307-320。

基本信息

属性 值
结构类别 变尺寸多方块,12 套 pattern(6 种尺寸 × 高/低压两档)
数组尺寸 (宽度+2) × (tankHeight+3) × (宽度+2)
控制器(master) 火箱层中心,pattern 坐标 (offset, 1, offset),offset = 宽度
结构方块 Boiler Firebox Solid / Boiler Firebox Fluid + Boiler Tank Low / Boiler Tank High
可否用扳手旋转 否
可否整体拆除 无整体拆除 API

层结构

buildMap() 生成的固定分层(TileBoiler.java:98-130):

层 (Y) 内容
0 全 'O'(预留)
1 内 宽度×宽度 为 'F'(火箱),外圈 'O'
2 … tankHeight+1 内 宽度×宽度 为 'L' 或 'H'(锅炉罐),外圈 'O'
tankHeight+2 全 'O'(预留)

所以实际需要预留的高度 = tankHeight + 3。

12 套 pattern 全表

蒸汽产量 = BoilerPattern.steamCapacity(每 tick 抽取的 mB),水罐 = 每罐 4 桶。

# 宽度 tankHeight 压力 数组 X×Y×Z tank 数 tick/周期 蒸汽/tick (mB)
0 3 4 高压 'H' 5×7×5 36 8 32
1 3 3 高压 'H' 5×6×5 27 8 32
2 3 2 高压 'H' 5×5×5 18 8 32
3 2 3 高压 'H' 4×6×4 12 8 32
4 2 2 高压 'H' 4×5×4 8 8 32
5 1 1 高压 'H' 3×4×3 1 8 32
6 3 4 低压 'L' 5×7×5 36 16 16
7 3 3 低压 'L' 5×6×5 27 16 16
8 3 2 低压 'L' 5×5×5 18 16 16
9 2 3 低压 'L' 4×6×4 12 16 16
10 2 2 低压 'L' 4×5×4 8 16 16
11 1 1 低压 'L' 3×4×3 1 16 16

有效组合只有上表这 12 种,并非「宽度 1~3 × 高度 1~4」的自由组合。 例如宽度 2 没有 tankHeight=1 的 pattern,宽度 3 没有 tankHeight=1 的 pattern。 tank 数 = 宽度² × tankHeight。

数值常量

常量 值 来源
TICKS_LOW 16 TileBoiler.java:47
TICKS_HIGH 8 TileBoiler.java:48
STEAM_LOW 16 mB TileBoiler.java:49
STEAM_HIGH 32 mB TileBoiler.java:50
水罐容量 4 × FluidHelper.BUCKET_VOLUME TileBoiler.java:88
蒸汽罐容量 16 × FluidHelper.BUCKET_VOLUME TileBoiler.java:90
HEAT_LOW Steam.MAX_HEAT_LOW TileBoiler.java:51
HEAT_HIGH Steam.MAX_HEAT_HIGH TileBoiler.java:52

标记语义

TileBoiler 覆写了 isMapPositionValid()(TileBoiler.java:212):

标记 含义 校验规则
'O' Other 不能是锅炉方块(boilerBlocks 集合内任一 metadata)
'L' 低压罐 必须是 machine.beta + metadata BOILER_TANK_LOW_PRESSURE
'H' 高压罐 必须是 machine.beta + metadata BOILER_TANK_HIGH_PRESSURE
'F' 火箱 必须是 machine.beta,且 metadata ∈ {BOILER_FIREBOX_SOLID, BOILER_FIREBOX_FLUID}
'A' 空气 必须是空气

使用

  1. 先铺火箱层(宽度×宽度 的火箱方块)。
  2. 在其上叠 tankHeight 层锅炉罐方块,同一套结构内必须统一为低压或高压。
  3. 最外圈保持不放锅炉方块('O' 位置)。
  4. 顶部再留 1 层空位。
  5. 通过火箱或阀门方块加水,加燃料产汽;用流体管把蒸汽接到蒸汽机 / 蒸汽烤箱 / 蒸汽涡轮。

限制

  • 火箱方块本身是 master Tile(TileBoilerFirebox),玩家交互界面开在火箱上。
  • 锅炉不可旋转(TileBoiler 未覆写 rotateBlock())。
  • 过热时可能爆炸(Steam.BOILERS_EXPLODE,TileBoiler.java:290)。

相关条目

浏览全部模组