Steam Oven
[!WARNING] 已订正(1.7.10 树) 原条目写「3×3×3 多方块」并给出标记
'B'/'M'/'A',均不成立。 1.7.10 的实际 pattern 是char[4][4][4](4×4×4),标记只有'*'与'B'两种, 根本没有'M'和'A'。此外「Rotation」一节声称可用扳手旋转,1.7.10 中TileSteamOven未覆写rotateBlock(),故不可旋转。 证据:TileSteamOven.java:75-98、TileMachineBase.java:95-97。
基本信息
| 属性 | 值 |
|---|---|
| 结构尺寸 | 4 × 4 × 4(X 宽 × Y 高 × Z 深,char[4][4][4]) |
| 实际必需方块 | 8 块,组成 2×2×2 实心立方 |
| 控制器(master) | pattern 坐标 (1, 1, 1),即 2×2×2 实体块的左下角 |
| 结构方块 | Steam Oven(EnumMachineAlpha.STEAM_OVEN) |
| pattern 数量 | 1 套 |
| 可否用扳手旋转 | 否(TileMachineBase.rotateBlock() 默认 false,本类未覆写) |
| 可否整体拆除 | 无整体拆除 API |
布局
pattern[y][x][z],'*' = 任意方块(恒合法,不校验),'B' = 蒸汽烤箱方块本体。
y=0: * O O * y=2: * O O *
O O O O O B B O
O O O O O B B O
* O O * * O O *
y=1: * O O * y=3: * O O *
O B B O O O O O
O B B O O O O O
* O O * * O O *
即:每层的 4 个角(y=1、y=2 各 4 个角,共 8 个角位)标记为 '*',放什么都行;
只有 y=1、y=2 两层的中心 2×2(4 个方块 × 2 层 = 8 块)必须是烤箱方块。
y=0 与 y=3 全层为 'O',唯一约束是「不能放蒸汽烤箱方块」。
标记语义
| 标记 | 含义 | 校验规则 |
|---|---|---|
'O' |
Other | 不能是 getBlockType() + getBlockMetadata() |
'B' |
Block | 必须是烤箱方块且 metadata 匹配 |
'*' |
Anything | 恒合法(case '*': return true;) |
'*' 同时被 isMapPositionOtherBlock() 归为「非组件」,所以 8 个角位不属于多方块组件,
不受破坏联动的结构约束。
控制器
使用单参构造 new MultiBlockPattern(map)(TileSteamOven.java:98),
该构造等价于 offset (1, 1, 1)(MultiBlockPattern.java:29-31)。
因此 master Tile 落在 pattern 的 (1,1,1),即 2×2×2 实体块的一个角块,不是中心。
机器界面(EnumGui.STEAM_OVEN)开在控制器块上。
蒸汽消耗
- 通过
ISteamUser接口从相邻/相连的 Boiler 取蒸汽。 - 无外部蒸汽供应时不工作。
TileSteamOven实现了INeedsFuel+IHasWork(通过父类TileMultiBlockInventory), 工作进度由cookTime驱动。
相关条目
- Boiler - 蒸汽来源
- Rock Crusher - 同为 alpha 加工机器
- Steam Oven 方块