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 = 2048EU(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)。
相关条目
- Ridiculously Large Capacitor - 合成前置
- Thermal Expansion 集成 - 提供 RF 配方
- 接口与能量单元合成
- SGBaseTE - 能量消费者