跳到正文
烈焰甘蔗Wiki

Blast Furnace

[!WARNING] 已订正(1.7.10 树) 原条目把 pattern 里的 'A' 标记当成「控制器 Tile」,这是错的。 在 1.7.10 里控制器位置由 MultiBlockPattern 的 master offset 决定,与标记字符无关; 'A' 的语义是「此处必须是空气」(TileMultiBlock.isMapPositionValid 的 case 'A'), 属于结构内部的空腔,并且被 isMapPositionOtherBlock() 排除在组件之外。 证据:TileMultiBlock.java:212-243、TileBlastFurnace.java:81-125。

基本信息

属性 值
结构尺寸 5 × 6 × 5(X 宽 × Y 高 × Z 深,char[6][5][5])
实际占用方块 3 × 4 × 3(最外层全为 'O' 预留空位)
控制器(master) pattern 坐标 (2, 1, 2),即第 1 层正中
结构方块 Blast Furnace(EnumMachineAlpha.BLAST_FURNACE)
pattern 数量 1 套(无变体)
可否用扳手旋转 否
可否整体拆除 无整体拆除 API

布局

pattern[y][x][z],下表每格按行给出 x=1…3、z=1…3 的内部 3×3;最外圈 x/z=0 或 4 全为 'O'。

层 (Y) 内部 3×3(行=x,列=z)
0 全 'O'(预留,必须不是高炉方块)
1 B W B / W B W / B W B ← 控制器所在层(中心为 'W')
2 B B B / B A B / B B B
3 B B B / B A B / B B B
4 B B B / B B B / B B B
5 全 'O'(预留)

标记语义(1.7.10 通用)

标记 含义 校验规则
'O' Other(他物) 该位置不能是本机器方块;放别的任何方块都合法
'B' Block(方块) 必须是本机器方块且 metadata == getBlockMetadata()
'W' Window 校验规则与 'B' 完全相同(同一个 case 分支)
'A' Air 必须是空气
'*' Anything 恒为合法,不做任何校验

本多方块里 'B' 与 'W' 在校验上无差别;TileBlastFurnace.java:146-147 的 blockMapping 也把两者都映射到同一个 EnumMachineAlpha.BLAST_FURNACE.ordinal()。 'B'/'W' 的区分只用于贴图表现(getPatternMarker() 供渲染方查询)。

形成机制

TileMultiBlock.updateEntity() 周期性调用 testIfMasterBlock(), 对 patterns 列表逐个跑 isPatternValid(),首个 VALID 的 pattern 被锁定为本 Tile 的 currentPattern。 任一标记位置校验失败即该 pattern 判定 PATTERN_DOES_NOT_MATCH。 控制器方块被破坏后其余组件在下一次重扫时结构失效(components.clear())。

限制

  • 控制器不能旋转:TileMachineBase.rotateBlock() 默认返回 false(TileMachineBase.java:95-97), TileBlastFurnace 未覆写,故本结构无方向,固定 5×6×5。
  • 无一键拆除;逐块破坏会使结构失效。

相关条目

浏览全部模组