AE2 升级卡注册
基本信息
proxy/CommonProxy.postInit() 向 Applied Energistics 2 的
Upgrades 注册表登记本 mod 内容可用的升级卡,共
94 条注册,覆盖 14 种 AE2 升级卡。
注册形式统一为:
Upgrades.<CARD>.registerItem(new ItemStack(ItemAndBlockHolder.<ITEM>), <槽位数>);
这是本 mod 最大的非方块/非物品注册面。
coverage_census.py数的是registerItem(,这些调用全部匹配该模式, 但它们是 AE2 升级卡的槽位声明,不是本 mod 注册新物品 —— 同一个registerItem(字面量在两种完全不同的语义下出现。
14 种升级卡全表
| 升级卡 | 条数 | 适用物品(× 槽位数) |
|---|---|---|
INVERTER |
21 | FLUID_STORAGE_BUS、全部流体储存格与 QUANTUM_CELL / SINGULARITY_CELL(各 ×1) |
STICKY |
21 | 同 INVERTER 的 21 个物品(各 ×1) |
VOID_OVERFLOW |
17 | 8 个 CELLxxK + QUANTUM_CELL + 8 个 CELLxxKM(各 ×1) |
DISTRIBUTION |
8 | 8 个 CELLxxKM(各 ×1) |
CRAFTING |
4 | FLUID_INTERFACE、AE2 INTERFACE、FLUID_INTERFACE_P2P(各 ×1)+ FLUID_EXPORT_BUS(×1,仅 Config.fluidIOBus 为真) |
PATTERN_CAPACITY |
3 | FLUID_INTERFACE、AE2 INTERFACE、FLUID_INTERFACE_P2P(各 ×3) |
LOCK_CRAFTING |
3 | 同上 3 个接口(各 ×1) |
FUZZY |
3 | 同上 3 个接口(各 ×3) |
CAPACITY |
3 | FLUID_STORAGE_BUS(×5)、FLUID_EXPORT_BUS(×2)、FLUID_IMPORT_BUS(×2) |
FAKE_CRAFTING |
3 | 同 3 个接口(各 ×1) |
ADVANCED_BLOCKING |
2 | FLUID_INTERFACE、AE2 INTERFACE(各 ×1)—— 不含 P2P |
REDSTONE |
2 | FLUID_EXPORT_BUS、FLUID_IMPORT_BUS(各 ×1)—— 仅 Config.fluidIOBus |
SPEED |
2 | 两个总线(各 ×4)—— 仅 Config.fluidIOBus |
SUPERSPEED |
2 | 两个总线(各 ×4)—— 仅 Config.fluidIOBus |
SPEED与SUPERSPEED的槽位数都是 4,没有区分。INTERFACE在下表出现时是 AE2 自带的接口(ItemAndBlockHolder.INTERFACE), 不是本 mod 的FLUID_INTERFACE。
配置开关
9 条注册包在 if (Config.fluidIOBus) 内(CommonProxy.java:192-201):
| 升级卡 | 物品 | 槽位 |
|---|---|---|
CAPACITY |
FLUID_EXPORT_BUS / FLUID_IMPORT_BUS |
2 |
REDSTONE |
同上 | 1 |
SPEED |
同上 | 4 |
SUPERSPEED |
同上 | 4 |
CRAFTING |
FLUID_EXPORT_BUS |
1 |
CRAFTING 的其余 3 条(3 个接口)在开关外。
所以关闭 fluidIOBus 时实际注册 90 条、开启时 94 条。
储存格的 8 档
CELL1K / CELL4K / CELL16K / CELL64K / CELL256K / CELL1024K /
CELL4096K / CELL16384K —— 与
CellType 枚举的 8 个常量一一对应(meta 0–7)。
带 M 后缀的 8 个(CELL1KM…CELL16384KM)是多流体版本,
对应 Multi Fluid Storage Cell。
两个只有 M 版能装的是 DISTRIBUTION;两个只有非 M 版能装的是
VOID_OVERFLOW 里的 QUANTUM_CELL。
其他 AE2 注册表
同一方法尾部还有 4 处非升级卡注册:
| 调用 | 行 | 内容 |
|---|---|---|
registries().externalStorage().addExternalStorageInterface(new AEFluidInterfaceHandler()) |
202 | 流体外部存储接口 |
registries().interfaceTerminal().register(PartFluidP2PInterface.class) |
203 | P2P 接口部件 |
registries().interfaceTerminal().register(PartFluidInterface.class) |
204 | 普通流体接口部件 |
registries().interfaceTerminal().register(TileFluidInterface.class) |
205 | 方块版流体接口 |
registerMovables()(由 init() 调用)另有
registries().movable().whiteListTileEntity(TileWalrus.class)。
相关条目
- Cell Type — 8 档储存格的 meta 映射
- Fluid Storage Part / Fluid Storage Bus
- Fluid Interface Part / Fluid Export Bus
- Configuration —
fluidIOBus开关 - Walrus — movable 白名单
源码
src/main/java/com/glodblock/github/proxy/CommonProxy.java:92-205- 复算:
grep -c 'Upgrades\..*\.registerItem' src/main/java/com/glodblock/github/proxy/CommonProxy.java→ 94