Stargate Power Units(IC2 / RF)

基本信息

变体 注册名 英文名 中文名 方块类 TileEntity
IC2 gcewing_sg:ic2PowerUnit IC2 Stargate Power Unit(en_US.lang:8) IC2星门能量单元(zh_CN.lang:8) IC2PowerBlock IC2PowerTE
RF gcewing_sg:rfPowerUnit RF Stargate Power Unit(en_US.lang:9) RF星门能量单元(zh_CN.lang:9) RFPowerBlock RFPowerTE

两者共用 PowerBlock<TE>(blocks/PowerBlock.java:30)、PowerTE(tileentities/PowerTE.java:16)、PowerItem(items/PowerItem.java:18)、PowerContainer 与 PowerScreen——同一套代码、同一套 GUI、同一种交互,差异只在能量桥接的实现。因此合并为一个条目页并以变体表区分。

功能

能量单元是一个电容器:从外部电网吸收能量,再通过 ISGEnergySource 向星门供能。它本身不会凭空产电,也不给星门供以外的东西。

PowerTE.availableEnergy() 返回 energyBuffer / energyPerSGEnergyUnit(tileentities/PowerTE.java:45-49),drawEnergy 同理按比例扣减(tileentities/PowerTE.java:51-59)。两个变体的换算率差异极大:

变体 内部缓冲上限 每 SGU 星门能量消耗 等效星门能量 来源
IC2 1 000 000 EU 20 EU 50 000 SGU compat/ic2/IC2PowerTE.java:29-30
RF 4 000 000 RF 80 RF 50 000 SGU compat/rf/RFPowerTE.java:19-20

两者换算后都恰好等于 50 000 SGU(1 000 000 / 20 = 4 000 000 / 80 = 50 000),这是设计上的对齐而非巧合。

掉落与放置保留电量

PowerBlock.breakBlock 把 TE 暂存到 lastRemovedTE(blocks/PowerBlock.java:48-54),getDrops 在缓冲非零时把 TE 的 NBT 写进掉落物(blocks/PowerBlock.java:64-77);onBlockPlacedBy 再把 NBT 读回(blocks/PowerBlock.java:80-91)。因此拆下再放回电量不丢。PowerItem.addInformation 会在物品提示里显示 当前 / 上限(items/PowerItem.java:30-36)。

电网桥接

  • IC2:IC2PowerTE 实现 IEnergySink,getDemandedEnergy 每次最多索求 maxSafeInput = 2048 EU(compat/ic2/IC2PowerTE.java:28、:87-91),getSinkTier 返回 3(compat/ic2/IC2PowerTE.java:102-104)。update() 每 tick 调 load(),通过 EnergyTileLoadEvent 加入 IC2 电网(compat/ic2/IC2PowerTE.java:48-71)。
  • RF:RFPowerTE 实现 IEnergyHandler,canConnectEnergy 恒为 true(compat/rf/RFPowerTE.java:38-40),receiveEnergy 不会超充(compat/rf/RFPowerTE.java:44-48)。注意它实现了 extractEnergy(compat/rf/RFPowerTE.java:50-54),即可以被其他模组反向抽取。

数值

项目 值 来源
硬度 / 抗爆 1.5 / 10.0 blocks/PowerBlock.java:36-37
采集等级 镐 level 0(空手可破) blocks/PowerBlock.java:39
踩踏声 soundTypeMetal blocks/PowerBlock.java:38
GUI 尺寸 128 × 64 guis/screens/PowerScreen.java:26-27
GUI 标题 gui.gcewing_sg:ic2PowerUnit.title / rfPowerUnit.title compat/ic2/IC2PowerTE.java:40、compat/rf/RFPowerTE.java:28
单位显示 EU / RF compat/ic2/IC2PowerTE.java:45、compat/rf/RFPowerTE.java:33
GUI 容器 无任何槽位 guis/containers/PowerContainer.java:30-33

PowerScreen 的背景贴图是 gui/...,标题与单位串在语言文件里定义(en_US.lang:24-28)。PowerContainer 构造函数只传尺寸、不加任何槽(guis/containers/PowerContainer.java:30-33)——这是个纯展示界面。

合成配方

三个变体,见 接口与能量单元合成:

  • IC2 在场:cwc / wMw / cec,c=吊炸天电容,w=铜线缆,M=机器,e=电子电路(compat/ic2/IC2Integration.java:35-48)。
  • 有 Thermal Expansion:ttt / hrh / ici,t=传导线圈,h=硬化能量框架,r=receptionCoil,i=ingotInvar,c=ingotCopper(compat/TXIntegration.java:26-41)。
  • 兜底(CoFH Core 在、无 TX):cgc / gIg / crc,c=电容,g=金锭,I=铁块,r=红石(SGCraft.java:309-324)。

相关条目