Irontanks
[!INFO] Git Commit:
f3132d2| Updated: 2026-06-20
Iron Tanks(irontank)是 BuildCraft Transport 的储罐扩展:它把 BuildCraft 原版储罐(BC 储罐)用金属外壳重新包装成 10 个容量不等、抗爆性不等的储罐方块,并提供 13 个"储罐升级器"物品,让玩家不必为高容量直接搓整套高阶材料,而是从一个便宜储罐逐步升级上去。
本仓库为 GTNH(GregTech: New Horizons)维护的 fork,Minecraft 1.7.10 / Forge,共 19 个 Java 文件。
依赖
Reference.DEPENDENCIES = required-after:BuildCraft|Factory@[7.0.0,)(reference/Reference.java:11)—— 硬依赖 BuildCraft Transport 7.0.0+。
BlockExtendedTank 直接继承 buildcraft.factory.BlockTank、TileIronTank 继承 buildcraft.factory.TileTank,而 10 个储罐配方的核心材料是 BuildCraftFactory.tankBlock。本 mod 没有独立于 BuildCraft 的储罐实现:GUI、漏斗/管道填充、流体逻辑全部由 TileTank 提供,本 mod 只改容量并记住等级。缺少 BuildCraft 时模组无法加载。
代码结构
| 文件 | 职责 |
|---|---|
IronTank.java |
@Mod 主类;preinit 注册物品与方块,init 注册配方,load 注册 TileEntity,onRemap 只打日志 |
reference/Reference.java |
MODID="irontank"、MODNAME="Iron Tanks"、依赖串、TileEntity ID 串 |
reference/TankType.java |
枚举 11 个储罐等级:容量、内部名、材料、配方串、抗爆、硬度 |
reference/TankChangerType.java |
枚举 13 种升级器:源等级、目标等级、内部名、配方 |
init/ModBlocks.java |
10 个 BlockExtendedTank 实例 + 注册 |
init/ModItems.java |
13 个 ItemTankChanger 实例 + 注册 |
init/ModRecipies.java |
逐个手写调用 13 + 10 个 addRecipe() |
block/BlockExtendedTank.java |
10 个方块共用类:硬度/抗爆、堆叠贴图、配方解码 |
tile/TileIronTank.java |
共用 TileEntity:容量换算 + type 的 NBT 存取 |
item/ItemBlockExtendedTank.java |
方块物品,只覆写 tooltip |
item/ItemGeneric.java |
物品抽象基类:未本地化名、创造标签、图标 |
item/ItemTankChanger.java |
13 个升级器共用类:配方 + onItemUseFirst 升级逻辑 |
creativetab/IronTankTabs.java |
创造标签「更多储罐」,图标为铁储罐 |
utility/MaterialHelper.java |
矿石字典名翻译("obsidian" 特判,本 mod 从未命中) |
utility/LogHelper.java |
FMLLog 包装 |
proxy/{IProxy,CommonProxy,ServerProxy,ClientProxy}.java |
4 个全空代理类(无渲染器注册) |
变体总览(§ 2.14 变体穷举)
本 mod 不是注册"一个带 10 个 metadata 的储罐",而是注册 10 个独立方块实例 + 13 个独立升级器物品。变体由 TankType 与 TankChangerType 两个枚举唯一决定。
存储等级:TankType 全 11 值
构造函数顺序为 TankType(capacity, name, materials, recipes, resistance, hardness)(TankType.java:68-69)。
TankType |
容量(桶) | 容量(mB) | 注册名 | materials |
配方串 | 硬度 | 抗爆 | 有方块 |
|---|---|---|---|---|---|---|---|---|
COPPER 铜 |
27 | 27000 | irontank:copperTank |
plateCopper |
3c3xqxrcv |
4.0 | 2.0 | ✅ |
SILVER 钢 |
43 | 43000 | irontank:silverTank |
plateSteel |
4s4xqxrsv |
6.0 | 5.0 | ✅ |
IRON 铁 |
32 | 32000 | irontank:ironTank |
plateIron |
1i1xqxriv |
5.0 | 3.0 | ✅ |
GOLD 金 |
48 | 48000 | irontank:goldTank |
plateGold |
2g2xqxrgv |
7.0 | 4.0 | ✅ |
DIAMOND 钻石 |
64 | 64000 | irontank:diamondTank |
plateDiamond |
5d5xqxrdv |
8.0 | 6.0 | ✅ |
OBSIDIAN 黑曜石 |
64 | 64000 | irontank:obsidianTank |
plateObsidian |
5o5xqxrov |
50.0 | 6000000.0 | ✅ |
GLASS 玻璃 |
0 | 0 | (无方块) | blockGlass |
(空串) | 0.0 | 0.0 | ❌ |
EMERALD 铝 |
96 | 96000 | irontank:emeraldTank |
plateEmerald |
6a6xqxrav |
8.0 | 6.0 | ✅ |
STAINLESSSTEEL 不锈钢 |
128 | 128000 | irontank:stainlesssteelTank |
plateStainlessSteel |
8b8xqxrbv |
10.0 | 7.0 | ✅ |
TITANIUM 钛 |
256 | 256000 | irontank:titaniumTank |
plateTitanium |
9t9xqxrtv |
12.0 | 8.0 | ✅ |
TUNGSTENSTEEL 钨钢 |
512 | 512000 | irontank:tungstensteelTank |
plateTungstenSteel |
0u0xqxruv |
15.0 | 10.0 | ✅ |
来源:TankType.java:19-35(枚举声明)、BlockExtendedTank.java:37-38(setResistance / setHardness 直通)、TileIronTank.java:36-39(容量 = BUCKET_VOLUME(1000) × capacity)。10 个 en_US.lang tooltip 的 “Stores up to N Buckets” 数值与 capacity 列逐一吻合,可交叉验证。
枚举里没有 tier / level 字段。 唯一的等级序由 capacity 给出,按容量升序为:
铜 27 < 铁 32 < 钢 43 < 金 48 < 钻石 64 = 黑曜石 64 < 铝 96 < 不锈钢 128 < 钛 256 < 钨钢 512。
GLASS 是唯一没有方块的枚举值(ModBlocks 不为它注册,name 为空串,无本地化名),只作为"把 BuildCraft 原版储罐当作玻璃罐"的中间标记。
各变体的核心差异 / 独有能力 / 使用场景
| 等级 | 核心差异 | 独有能力 | 实际使用场景 |
|---|---|---|---|
GLASS 玻璃 |
容量 0,不是可放置方块 | 唯一能把 BuildCraft 原版储罐变成 Irontanks 储罐的起点标记 | 手头只有 BC 储罐时的唯一入口 |
COPPER 铜 |
全系最小 27 桶;抗爆 2.0 最低 | 升级成本最低的第一个实体储罐 | 前期小缓冲,省材料 |
IRON 铁 |
32 桶;创造标签图标、TileIronTank 无参构造器的默认等级 |
无特殊能力,是全系的基准参照 | 通用中期储罐 |
SILVER 钢 |
43 桶,但抗爆 5.0 高于金储罐的 4.0 | 唯一"比金更抗爆但更小"的等级 | 需要防爆又不想搓金储罐时 |
GOLD 金 |
48 桶;有 2 条升级路径(铁→金、钢→金) | 全系入边最多的等级,来源最灵活 | 从铁或钢路线都能到达的中转站 |
DIAMOND 钻石 |
64 桶;抗爆 6.0、硬度 8.0 | 唯一 2 出 2 入的枢纽(→黑曜石、→铝),升级树的分叉点 | 想往高端走或想要防爆储罐的必经之路 |
OBSIDIAN 黑曜石 |
与钻石同容量 64,但抗爆 6000000、硬度 50 | 唯一"防爆"等级(tooltip 额外标注 (Blast Proof));无后续升级,是终点 |
怕 TNT/爆炸破坏储罐的场合 |
EMERALD 铝 |
96 桶;抗爆 6.0 与钻石相同 | 代码名 EMERALD、注册名 emeraldTank,但中文名是铝储罐、材料是 plateEmerald(GT 的 plateEmerald 即铝) |
首次突破 100 桶关口 |
STAINLESSSTEEL 不锈钢 |
128 桶,首个三位数容量 | — | 中高端产线缓冲 |
TITANIUM 钛 |
256 桶,首次翻倍到四位数以下最大档 | 容量是铝的 2.67 倍 | 大规模流体产线 |
TUNGSTENSTEEL 钨钢 |
512 桶,全系最大;抗爆 10.0、硬度 15.0 最高 | 无后续升级,是终点 | 终局流体存储 |
唯一容量并列:DIAMOND 与 OBSIDIAN 都是 64 桶,两者的区别只在抗爆与硬度(6.0/8.0 vs 6000000/50)。其余 9 级容量两两不同。
硬度的规律:除黑曜石外,硬度与容量严格同序递增(4.0 → 5.0 → 6.0 → 7.0 → 8.0 → 8.0 → 10.0 → 12.0 → 15.0),黑曜石是唯一的离群值。
抗爆的规律:抗爆基本随容量递增,但唯一的倒挂是 SILVER(43 桶, 5.0) > GOLD(48 桶, 4.0) —— 钢储罐比金储罐更抗爆。另外 DIAMOND 与 EMERALD 抗爆相同(均 6.0),OBSIDIAN 的 6000000 是原版黑曜石 6000 的 1000 倍,tooltip 因此单列 (Blast Proof)。
升级器:TankChangerType 全 13 值
TankChangerType |
源 | 目标 | 容量变化 | 物品注册名 | 配方(3 行) | 中文名 |
|---|---|---|---|---|---|---|
GLASSCOPPER |
GLASS |
COPPER |
0 → 27 | irontank:glassCopperUpgrade |
3c3 / zjz / rcv |
储罐升级:玻璃>铜 |
GLASSIRON |
GLASS |
IRON |
0 → 32 | irontank:glassIronUpgrade |
1i1 / zjz / riv |
储罐升级:玻璃>铁 |
COPPERIRON |
COPPER |
IRON |
27 → 32 | irontank:copperIronUpgrade |
1i1 / zqz / riv |
储罐升级:铜>铁 |
COPPERSILVER |
COPPER |
SILVER |
27 → 43 | irontank:copperSilverUpgrade |
4s4 / zqz / rsv |
储罐升级:铜>钢 |
IRONGOLD |
IRON |
GOLD |
32 → 48 | irontank:ironGoldUpgrade |
2g2 / zez / rgv |
储罐升级:铁>金 |
SILVERGOLD |
SILVER |
GOLD |
43 → 48 | irontank:silverGoldUpgrade |
2g2 / zpz / rgv |
储罐升级:钢>金 |
SILVERDIAMOND |
SILVER |
DIAMOND |
43 → 64 | irontank:silverDiamondUpgrade |
5d5 / zpz / rdv |
储罐升级:钢>钻石 |
GOLDDIAMOND |
GOLD |
DIAMOND |
48 → 64 | irontank:goldDiamondUpgrade |
5d5 / zhz / rdv |
储罐升级:金>钻石 |
DIAMONDOBSIDIAN |
DIAMOND |
OBSIDIAN |
64 → 64 | irontank:diamondObsidianUpgrade |
5o5 / zdz / rov |
储罐升级:钻石>黑曜石 |
DIAMONDEMERALD |
DIAMOND |
EMERALD |
64 → 96 | irontank:diamondEmeraldUpgrade |
6a6 / zdz / rav |
储罐升级:钻石>铝 |
EMERALDSTAINLESSSTEEL |
EMERALD |
STAINLESSSTEEL |
96 → 128 | irontank:emeraldStainlesssteelUpgrade |
8b8 / zfz / rbv |
储罐升级:铝>不锈钢 |
STAINLESSSTEELTITANIUM |
STAINLESSSTEEL |
TITANIUM |
128 → 256 | irontank:stainlesssteelTitaniumUpgrade |
9t9 / zlz / rtv |
储罐升级:不锈钢>钛 |
TITANIUMTUNGSTENSTEEL |
TITANIUM |
TUNGSTENSTEEL |
256 → 512 | irontank:titaniumTungstensteelUpgrade |
0u0 / zkz / ruv |
储罐升级:钛>钨钢 |
来源:TankChangerType.java:25-37。
配方结构完全统一:顶行 = 目标等级的双层板 + 目标等级螺丝,中行 = 源等级的材料板(e=铁板 / p=钢板 / h=金板 / q=铜板 / d=钻石板 / j=玻璃板 / f=铝板 / l=不锈钢板 / k=钛板,两侧 z=玻璃板),底行 = r 硬锤 + v 螺丝刀。详见 储罐升级器共用机制。
升级树
[BuildCraft 储罐] (作为 GLASS 源)
│
┌───────────┴───────────┐
玻璃>铜 (27) 玻璃>铁 (32)
│ │
┌────┴────┐ │
铜>钢(43) 铜>铁 ───────────────┤
│ │
├──> 钢>金 (48) ──┐ │
│ │ │
└──> 钢>钻石(64) │ │
┌────┴─────┐ │
钢>金>钻石(64) │ │
▼ ▼
钻石 (64) ← 枢纽:2 入 2 出
╱ ╲
钻石>黑曜石 (64) 钻石>铝 (96) ← 终点
│
铝>不锈钢 (128)
│
不锈钢>钛 (256)
│
钛>钨钢 (512) ← 终点
| 等级 | 入边(能被谁升级而来) | 出边(能升级成什么) |
|---|---|---|
GLASS |
— (BuildCraft 原版储罐) | 铜、铁 |
COPPER |
玻璃 | 钢、铁 |
IRON |
玻璃、铜 | 金 |
SILVER |
铜 | 金、钻石 |
GOLD |
铁、钢(入边最多) | 钻石 |
DIAMOND |
钢、金 | 黑曜石、铝(唯一 2 出) |
OBSIDIAN |
钻石 | 无(终点) |
EMERALD |
钻石 | 不锈钢 |
STAINLESSSTEEL |
铝 | 钛 |
TITANIUM |
不锈钢 | 钨钢 |
TUNGSTENSTEEL |
钛 | 无(终点) |
13 条路径全部不降容(DIAMONDOBSIDIAN 是唯一 64→64 相等),所以升级时流体可以直接搬过去、不会溢出丢失。判定是严格相等匹配(canUpgrade 只比对 from == source),不是"等级不低于",所以没有任何降级路径。
方块列表
- 储罐共用机制 -
BlockExtendedTank/TileIronTank/ItemBlockExtendedTank:容量换算、NBT、堆叠贴图、配方解码 - 铜储罐 -
COPPER,27 桶,全系最小 - 钢储罐 -
SILVER(注册名silverTank),43 桶,抗爆高于金储罐 - 铁储罐 -
IRON,32 桶,创造标签图标与默认等级 - 金储罐 -
GOLD,48 桶,两条入边 - 钻石储罐 -
DIAMOND,64 桶,升级枢纽 - 黑曜石储罐 -
OBSIDIAN,64 桶 + 防爆,终点 - 铝储罐 -
EMERALD(注册名emeraldTank),96 桶 - 不锈钢储罐 -
STAINLESSSTEEL,128 桶 - 钛储罐 -
TITANIUM,256 桶 - 钨钢储罐 -
TUNGSTENSTEEL,512 桶,终点
物品列表
- 储罐升级器共用机制 -
ItemTankChanger的onItemUseFirst升级流程与配方规则 - 储罐升级:玻璃>铜 -
GLASSCOPPER,BC 储罐 → 27 桶 - 储罐升级:玻璃>铁 -
GLASSIRON,BC 储罐 → 32 桶 - 储罐升级:铜>铁 -
COPPERIRON,27 → 32 桶 - 储罐升级:铜>钢 -
COPPERSILVER,27 → 43 桶 - 储罐升级:铁>金 -
IRONGOLD,32 → 48 桶 - 储罐升级:钢>金 -
SILVERGOLD,43 → 48 桶 - 储罐升级:钢>钻石 -
SILVERDIAMOND,43 → 64 桶 - 储罐升级:金>钻石 -
GOLDDIAMOND,48 → 64 桶 - 储罐升级:钻石>黑曜石 -
DIAMONDOBSIDIAN,64 → 64 桶 + 防爆 - 储罐升级:钻石>铝 -
DIAMONDEMERALD,64 → 96 桶 - 储罐升级:铝>不锈钢 -
EMERALDSTAINLESSSTEEL,96 → 128 桶 - 储罐升级:不锈钢>钛 -
STAINLESSSTEELTITANIUM,128 → 256 桶 - 储罐升级:钛>钨钢 -
TITANIUMTUNGSTENSTEEL,256 → 512 桶
其他内容
- 创造标签:
IronTankTabs.MainTab,本地化名「更多储罐」(itemGroup.irontank),图标为铁储罐。本 mod 没有配置项(无Configuration类),因此没有setting/内容。 - 无内容维度:
entity/multiblock/setting/enchantment/dimension/keybinding/potioneffect/biome/structure/achievement/item-effect均无注册内容 —— 全 mod 没有任何实体、多方块、指令、附魔、世界维度、群系、结构、成就或物品效果。