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)。

相关条目

源码

  • 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