信息类模组集成
基本信息
| 属性 | 值 |
|---|---|
| 集成包 | crossmod/waila/、crossmod/appeng/、crossmod/nei/、crossmod/opencomputers/、crossmod/vanilla/ |
| 统一入口 | CrossModLoader(crossmod/CrossModLoader.java:11) |
Waila
注册通过 FML 内部通信消息完成,而非直接调用:向 "Waila" 发送 register 消息,内容为回调类名(CrossModLoader.java:21-24):
FMLInterModComms.sendMessage("Waila", "register",
"shedar.mods.ic2.nuclearcontrol.crossmod.waila.callbackRegister");
回调 CrossWaila.callbackRegister 为 5 类 TileEntity 注册 Waila 悬停信息(crossmod/waila/CrossWaila.java:12-17):
| TileEntity | Provider |
|---|---|
TileEntityThermo |
ThermoProvider |
TileEntityInfoPanel |
InfoPanelProvider |
TileEntityHowlerAlarm |
HowlerAlarmProvider |
TileEntityEnergyCounter |
EnergyCounterProvider |
TileEntityAverageCounter |
AverageCounterProvider |
注意 IC2NuclearControl.init 中还有一段被注释的、写法相同的旧 Waila 注册(IC2NuclearControl.java:210-212),实际生效的是 CrossModLoader.init 里的那一份。
Applied Energistics 2
| 属性 | 值 |
|---|---|
| 检测 | Loader.isModLoaded(ModLib.AE2),即 appliedenergistics2(crossmod/appeng/CrossAppeng.java:20) |
| 日志 | 「Large Storage System? We can help to monitor that!」(CrossAppeng.java:21) |
| 阶段 | init 阶段(CrossModLoader.java:26) |
条件注册(CrossAppeng.java:28-34):
| 类型 | 注册名 | 类 |
|---|---|---|
| 方块 | networkLink |
BlockNetworkLink |
| TileEntity | networkLink |
TileEntityNetworkLink |
| 物品 | KitAppeng |
ItemKitAppeng |
| 物品 | CardAppeng |
ItemCardAppeng |
中文名见 zh_CN.lang:30-31(应用能源卡片)与 tile.NetworkLink(ME 网络监视器)。配方按 recipes 分流:normal 调 AppengRecipes.addRecipesToRegistry()(5 处 addRecipe),gregtech 调 AppengRecipes.addGregtechRecipes()(CrossAppeng.java:36-42)。
OpenComputers
CrossOpenComputers 在 init 阶段且仅当 OpenComputers 加载时实例化(IC2NuclearControl.java:209)。构造函数先检查 modid,再用反射探测 li.cil.oc.api.Driver(crossmod/opencomputers/CrossOpenComputers.java:11-18),成功后注册 6 个 OC 驱动(CrossOpenComputers.java:23-30):
| 驱动类 | 对应方块 |
|---|---|
DriverAdvancedInfoPanel |
高级工业信息屏 |
DriverInfoPanel |
工业信息屏 |
DriverThermalMonitor |
温度监控器 |
DriverHowlerAlarm |
蜂鸣报警器 |
DriverAverageCounter |
平均电力计数器 |
DriverEnergyCounter |
电力计数器 |
不注册任何方块或物品,仅提供 OC 驱动。
NEI
| 项目 | 内容 |
|---|---|
| 配置类 | NEINuclearControlConfig 实现 IConfigureNEI(crossmod/nei/NEINuclearControlConfig.java:6) |
| 实现方法 | loadConfig()、getName()、getVersion()(NEINuclearControlConfig.java:9,14,19) |
| 提示处理器 | TooltipHandler 实现 IContainerTooltipHandler(crossmod/nei/TooltipHandler.java:11) |
TooltipHandler 处理三个方法:handleTooltip、handleItemDisplayName、handleItemTooltip(TooltipHandler.java:14,19,31),用于在 NEI 界面中显示本模组物品的额外说明。不注册方块或物品。
原版方块卡片(始终注册)
Vanilla.initVanilla() 在 init 阶段无条件调用(CrossModLoader.java:27),注册 3 个物品(crossmod/vanilla/Vanilla.java:21-27):
| 注册名 | 类 | 未本地化名 |
|---|---|---|
ItemInventoryScannerCard |
ItemCardInventoryScanner |
ItemInventoryScannerCard |
ItemVanilliaKit |
ItemVanillaKit |
ItemVanilliaKit(拼写为 Vanillia) |
ItemVanillaMachineCard |
ItemVanillaMachineCard |
ItemVanillaMachineCard |
这 3 个物品使本模组的基准注册数为 2 方块 + 19 物品(主类 16 + Vanilla 3)。原版工具包另有配方(Vanilla.java:33-36),但若检测到 DreamCraft 加载则直接 return,跳过配方(Vanilla.java:29-31)。
死代码
IC2NuclearControl.init 中有一段被注释的 AE2 检查 // CrossAppeng.RegistrationCheck();(IC2NuclearControl.java:214)与 Big Reactors 调用 // CrossBigReactors.doStuff();(IC2NuclearControl.java:213),实际生效版本已移入 CrossModLoader.init。
相关条目
- 能源模组集成 - RF / TE / BuildCraft / Mekanism / Big Reactors
- IC2 与 GregTech 集成 - 硬前置
- 卡片 - NEI / 传感工具的产物