GTSU 储存单元物品形态

基本信息

属性 值
物品类 eu.usrv.gtsu.blocks.itemblocks.ItemBlockGTSU(ItemBlock 子类)
注册名 GTSU:GTSU_Tier_0 … GTSU:GTSU_Tier_7(由 registerBlock(..., ItemBlockGTSU.class, ...) 附带注册,与方块同名)
最大堆叠 64(ItemBlock 默认,未覆写 setMaxStackSize)
附魔适用 物品形态无附魔相关覆写
耐久 无
创造标签 随方块,位于 IC2.tabIC2
消失 否(getSubBlocks 提供的满仓变体可重复合成)

GTSU 模组不单独注册物品:GTSUMod 只调用 GameRegistry.registerBlock(new GTSUBlock(i), ItemBlockGTSU.class, ...), 物品形态由 Forge 依据第二个参数自动创建。ItemBlockGTSU 没有覆写任何交互方法(无 onItemUse / onRightClick 等), 放置行为完全继承自 ItemBlock 与 GTSUBlock.onBlockPlacedBy。

功能

物品形态的唯一自定义行为是 tooltip 显示(addInformation)与保留电量的放置。

addInformation 仅在物品带有 NBT 时才输出内容(if (stack.hasTagCompound())), 按 IC2 的本地化键组装两行:

行 格式 数据来源
第 1 行 <ic2.item.tooltip.Output> <V[tier]>EU/t <ic2.item.tooltip.Capacity> <容量> V[tier] = TierHelper.V[tier];容量 = TierHelper.getMaxStorageForTier(tier)
第 2 行 <ic2.item.tooltip.Store> <已储存能量> NBT 的 energy 键(long)

容量与已储存能量都经 NumberPrettifier.getPrettifiedNumber 缩写为 kilo/mega/giga/tera/peta/exa EU(两位小数)。

数值(各阶 tooltip 显示)

阶 输出 容量 满仓变体的 Store 行
GTSU Tier 1 (MV) 128EU/t 2.10 mega EU 2.10 mega EU
GTSU Tier 2 (HV) 512EU/t 134.22 mega EU 134.22 mega EU
GTSU Tier 3 (EV) 2048EU/t 8.59 giga EU 8.59 giga EU
GTSU Tier 4 (IV) 8192EU/t 549.76 giga EU 549.76 giga EU
GTSU Tier 5 (LuV) 32768EU/t 35.18 tera EU 35.18 tera EU
GTSU Tier 6 (ZPM) 131072EU/t 2.25 peta EU 2.25 peta EU
GTSU Tier 7 (UV) 524288EU/t 144.12 peta EU 144.12 peta EU
GTSU Tier 8 (MAX) 2097152EU/t 9.22 exa EU 9.22 exa EU

缩写由 NumberPrettifier 的单位表决定,最大单位只到 exa EU(1e18),因此 Tier 8 的 Long.MAX_VALUE - 1 落在 exa 档,tooltip 显示为 9.22 exa EU 而非 9223.37 peta EU。

NBT

键 类型 用途
tier int 供 addInformation 读取 tier,以及放置时写入 TileEntity 的 mTier
energy long 已储存能量;addInformation 读取,放置时写入 TileEntity 的 mEnergy

创造标签变体

GTSUBlock.getSubBlocks 为每阶生成两个物品形态(见GTSU 能量储存单元的变体表), 均为空/满两种电量的展示用变体,可自由取用与放置。

放置行为

GTSUBlock.onBlockPlacedBy 读取物品 NBT 的 energy 与 tier 写入 TileEntity, 因此拆下再放回可以保留电量与阶数(朝向按放置时的玩家朝向重新计算)。

合成配方

GTSU 模组未注册任何合成配方。物品形态只能通过创造标签获取, 或在游戏中用扳手拆除已放置的方块取得掉落物。

相关条目