等离子电池

基本信息

属性 值
注册名 gravisuiteneo:itemPlasmaCell
英文名 Plasma Cell [WIP](en_US.lang:7,WIP 标记来自 mod 自身)
中文名 无中文翻译
实现类 com.gtnewhorizons.gravisuiteneo.items.ItemPlasmaCell
实现的接口 IElectricItem、IItemTickListener(父模组)、ICustomItemBars、IFluidContainerItem
稀有度 EnumRarity.uncommon(ItemPlasmaCell.java:184)
最大堆叠 1(:43)
最大耐久 27(:42)
流体容量 64000 mB(CAPACITY,:32)
贴图 gravisuiteneo:itemPlasmaCell(:45)

双重身份

等离子电池同时是:

  1. 流体容器(IFluidContainerItem)——装等离子,容量 64000 mB
  2. IC2 电力物品(IElectricItem)——自身也存 EU

它不是 等离子炮 的专属弹药,而是通用容器;炮只是从自己的 1 格弹药槽里读它。

流体部分

NBT 键 类型 含义
Fluid NBTTagCompound 内部流体(NBT_FLUID_TAG,:31)
  • fill(:75-108)只接受效率值 ≥ 1 的流体(:77 getPlasmaEfficiency(resource) < 1 即返回 0);堆叠数必须为 1;已装液体必须 isFluidEqual 同种,否则拒绝
  • drain(:111-135)抽干后(amount <= 0)移除整个 Fluid 标签(:128),使物品回到「空」状态
  • getEmptyItem 返回 this(:178-180)——排空后得到的是同一个物品,不是空容器

电力部分

方法 返回值 来源
canProvideEnergy true :188-190
getMaxCharge Properties.ElectricPresets.PlasmaCell.maxCharge :193-195
getTier Properties.ElectricPresets.PlasmaCell.tier :198-200
getTransferLimit Properties.ElectricPresets.PlasmaCell.transferLimit :203-205
getChargedItem this :213-215
onTick false(不做事) :208-210

getChargedItem 返回自身,意味着充放电不消耗物品实体,只改 NBT。

数值

数值名 值 来源
流体容量 64000 mB ItemPlasmaCell.java:32
最大电量 100000000 EU Properties.ElectricPresets.PlasmaCell(Properties.java:122)
电力等级 5 同上
传输上限 375000 EU/t 同上
单次操作耗电 0 同上
效率表条目数 取决于运行时注册了哪些等离子流体 GraviSuiteNeoRegistry.getRegisteredFuels()

⚠️ 流体容量 64000 是硬编码常量(:32 private static final int CAPACITY = 64000),不受配置控制——ElectricPresets 里没有它。

自定义物品条

showDurabilityBar 返回 false(:172-174),改用本 mod 自己的 ICustomItemBars 双条显示:

条索引 含义 最小值颜色 最大值颜色 上限
0 电池 EU 电量 红 绿 maxCharge
1 内部流体量 红 黄 CAPACITY(64000)
  • 条数:有液时 2 条(getNumBars,:233-235)
  • 对齐:BarAlignment.BOTTOM(底部对齐,:271-273)
  • 厚度:1 像素(:276-278)
  • 反转:getIsBarInverted 恒 true(:281-283)——条从满往空减
  • 电量条数值取 ElectricItem.manager.getCharge(itemStack),流体条取 getFluid(stack).amount(:259-268)

提示文本

getToolTipInfo(:146-166)被电池自身与 等离子炮 共用:

状态 提示
有液体 message.plasmaCell.contains(流体名 + 数量)+ message.plasmaCell.efficiency(效率值)
无液体 message.plasmaCell.nothing + message.plasmaCell.efficiency 传 0.0f

⚠️ 这两个 message.plasmaCell.* 键在 en_US.lang 中不存在(该文件只有 7 行物品相关键),会显示为原始键名。

创意标签变体

getSubItems(:218-230)动态生成变体,数量取决于 getRegisteredFuels():

  1. 1 个空电池(ElectricItem.manager.charge 充满 EU,但无流体)
  2. 每个已注册等离子流体 1 个满电 + 满流体的电池(fill(tempStack, new FluidStack(fluid, CAPACITY), true))

⚠️ 变体数不是固定值:由于 GraviSuiteNeoRegistry 的流体表存在前述 split(":", 1) 缺陷,实际只有从 GregTech API 取到的等离子才会进入 getRegisteredFuels()。在只靠配置文件配置等离子流体的环境下,本物品只有 1 个创意变体。

成就

gravisuite.qshield_plasmaimpact,坐标 (0, 0),类型 special,前置为 gravisuite.qshield_enable(Achievements.java:45-50)。

兼容映射

GraviSuite:itemPlasmaCell → gravisuiteneo:itemPlasmaCell(GraviSuiteNeo.java:72-74)。

配方

本仓库无配方。 common/RecipeHandler.java 只注册了纳米机器人与史诗镐之背包两条配方。