Water Tank
[!WARNING] 已订正(1.7.10 树) 原条目称「继承
TileTank并使用TankDefinition.IRON容量规则」「可用铁罐墙方块搭建」, 1.7.10 中均不成立:TileTankWater extends TileTank,并且它有自己独立的 5×5×5 pattern (不走TileTankBase.buildPatterns()那套 4 尺寸 × 5 高度 = 20 套的体系), 标记是'B'+'A',中心必须为空气。 证据:TileTankWater.java:52、其static { char[][][] map = …}块。
基本信息
| 属性 | 值 |
|---|---|
| 结构尺寸 | 5 × 5 × 5(X 宽 × Y 高 × Z 深,char[5][5][5]) |
| 实际占用方块 | 3 × 3 × 3(26 块),最外层全为 'O' 预留 |
| 控制器(master) | pattern 坐标 (2, 1, 2),即第 1 层正中 |
| 结构方块 | Water Tank(EnumMachineAlpha.TANK_WATER) |
| pattern 数量 | 1 套 |
| 可否用扳手旋转 | 否(未覆写 rotateBlock()) |
| 可否整体拆除 | 无整体拆除 API |
布局
pattern[y][x][z],下表为内部 3×3(行=x,列=z);最外圈全为 'O'。
| 层 (Y) | 内部 3×3 |
|---|---|
| 0 | 全 'O'(预留) |
| 1 | B B B / B B B / B B B ← 控制器所在层 |
| 2 | B B B / B A B / B B B ← 中心为空气(进水/维护开口) |
| 3 | B B B / B B B / B B B |
| 4 | 全 'O'(预留) |
与 Iron Tank 的区别
| 属性 | Water Tank | Iron Tank / Steel Tank |
|---|---|---|
| 基类 | TileTank |
TileTankBase |
| pattern 来源 | 硬编码单个 5×5×5 | TileTankBase.buildPatterns(),最多 20 套 |
| 尺寸选择 | 仅 3×3×3 一种 | 3×3 / 5×5 / 7×7 / 9×9 四种底面 × 高度 4–8 |
| 尺寸受配置影响 | 否 | 是(RailcraftConfig.getMaxTankSize()) |
| 中心空气开口 | 有('A') |
有('A') |
| 高度可调 | 否,固定 3 层实体 | 是 |
标记语义
TileTankWater 未覆写 isMapPositionValid(),因此走 TileMultiBlock 的默认分支:
| 标记 | 含义 | 校验规则 |
|---|---|---|
'O' |
Other | 不能是 getBlockType() + getBlockMetadata() |
'B' |
Block | 必须是水箱方块且 metadata 匹配 |
'A' |
Air | 必须是空气 |
功能
- 蓄水罐,供 Boiler 等机器取水。
- 实现了
ISidedInventory,可用物品桶交互。 - 水箱是单格固定容量罐(
TileTank内部StandardTank),不随结构尺寸变化。
相关条目
- Iron Tank - 可变尺寸罐
- Steel Tank - 可变尺寸罐,容量翻倍
- Boiler
- Water Tank 方块