跳到正文
烈焰甘蔗Wiki

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 驱动。

相关条目

浏览全部模组