储罐升级:钻石>黑曜石
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | irontank:diamondObsidianUpgrade |
| 未本地化名 | item.irontank:diamondObsidianUpgrade |
| 本地化名 | 储罐升级:钻石>黑曜石(zh_CN.lang) |
| 类 | com.indemnity83.irontank.item.ItemTankChanger |
| 绑定等级 | TankChangerType.DIAMONDOBSIDIAN(TankChangerType.java:33) |
| 源等级 | TankType.DIAMOND |
| 目标等级 | TankType.OBSIDIAN |
| 最大堆叠 | 1(ItemTankChanger:29) |
| 耐久 | 无(构造器未调 setMaxDamage) |
| 附魔适用 | 是(继承 Item,未覆写附魔适用性) |
功能
核心差异 —— 全系唯一"不改变容量"的升级器:
- 源容量 64 桶 → 目标容量 64 桶(
DIAMOND与OBSIDIAN是 10 个等级里唯一容量并列的一对)。其余 12 种升级器容量全部严格增加。 - 玩家花材料换的是抗爆 6.0 → 6000000.0(100 万倍)和硬度 8.0 → 50.0,不是更多容量。
- 顶行
5o5用钻石螺丝 + 致密黑曜石板;这与 钻石储罐 方块配方的顶行(5d5)不同 —— 升级器把黑曜石板放在顶行,方块配方把它放在底行。
实际使用场景:怕爆炸(高塔旁的满液储罐、爆炸活塞区域)时,把已建好的 64 桶钻石储罐就地升级成防爆罐,不用重新规划布局、不用搬运流体(代码直接搬 tank.getFluid(),:136)。
重要限制:黑曜石储罐是升级树终点 —— 没有任何 TankChangerType 以 OBSIDIAN 为 target。所以这一步是单向门,升上去就再也换不成 96 桶的 铝储罐 了。想要大容量走 钻石>铝,想要防爆走本升级器,两者互斥。
使用方式
| 使用方式 | 触发条件 | 使用效果 | 条件/限制 |
|---|---|---|---|
右键方块(onItemUseFirst) |
目标 TileEntity 是 TileIronTank 且 type == DIAMOND |
流体原样搬入新黑曜石储罐;方块替换为 irontank:obsidianTank;消耗 1 个 |
客户端不预测(world.isRemote 直接 return false) |
| 右键其它等级储罐 | — | 无事发生,不消耗 | 严格相等判定不匹配 |
| 右键非储罐方块 | — | 无事发生,不消耗 | ItemTankChanger:131-132 |
不需要先倒空储罐。因为 64 → 64 容量完全相等,流体无论多少都能原样搬过去,不会溢出丢失 —— 这是本升级器与其它升级器同等的"无需清空"保证。
合成配方
TankChangerType.DIAMONDOBSIDIAN.recipe = {"5o5", "zdz", "rov"}:
[ 5 5 5 ]
[ z d z ]
[ r o v ]
| 字母 | 物品 | 矿石字典 / 来源 |
|---|---|---|
5 |
钻石螺丝 | screwDiamond ×2(与源等级同材料) |
o |
致密黑曜石板 | plateDenseObsidian(目标等级) |
d |
钻石板(单层) | plateDiamond(源等级 = 钻石的标记) |
z |
玻璃板 | paneGlass ×2(两侧) |
r |
硬锤 | craftingToolHardHammer(必消耗) |
v |
螺丝刀 | craftingToolScrewdriver(必消耗) |
结构:顶行 = 目标等级材料 + 目标等级螺丝,中行 = 源等级材料板,底行 = 硬锤 + 螺丝刀。
⚠️ 本配方是唯一中行与顶行都用到源/目标同级材料的情况:顶行是黑曜石(目标),中行是钻石(源),两个等级的字母恰好都是
5(钻石螺丝)与d/o。另注:配方串不含
'x'/'y',addRecipe()的材料双重循环只跑 1 次。详见 储罐升级器共用机制。
数值
| 属性 | 值 |
|---|---|
| 源容量 | 64 桶 = 64000 mB |
| 目标容量 | 64 桶 = 64000 mB(容量不变) |
| 源硬度 / 抗爆 | 8.0 / 6.0 |
| 目标硬度 / 抗爆 | 50.0 / 6000000.0 |
| 失败时是否消耗 | 否 |