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 桶,终点

物品列表

其他内容

  • 创造标签:IronTankTabs.MainTab,本地化名「更多储罐」(itemGroup.irontank),图标为铁储罐。本 mod 没有配置项(无 Configuration 类),因此没有 setting/ 内容。
  • 无内容维度:entity / multiblock / setting / enchantment / dimension / keybinding / potioneffect / biome / structure / achievement / item-effect 均无注册内容 —— 全 mod 没有任何实体、多方块、指令、附魔、世界维度、群系、结构、成就或物品效果。