配置文件(Compat Modules)
基本信息
| 属性 | 值 |
|---|---|
| 配置文件路径 | config/buildcraft/compat.cfg |
| 加载位置 | BuildCraftCompat.preInit(在所有 CompatModule 的 preInit() 之前) |
| 类别 | modules |
[!NOTE] 路径不是
config/buildcraftcompat.cfg。BuildCraftCompat.preInit显式地把它放到getSuggestedConfigurationFile().getParentFile()的buildcraft子目录下。
模块开关总览
本模组没有任何方块 / 物品 / 实体注册(src/ 下 GameRegistry.register* 零命中),
全部内容就是下面这 28 个兼容模块。每个模块对应一个 modules.<Name> 布尔配置项。
模块生效需要同时满足两个条件:
canLoad()返回true;modules.<Name>配置项为true(默认值均为true)。
CompatModuleBase.canLoad() 的默认实现是 Loader.isModLoaded(this.name())——
模块名本身就是它要检测的 modid。下表中「覆写条件」一栏列出了覆写了默认实现的模块,
以及 super.canLoad() 额外附加的 BuildCraft 子模块要求。
| 模块名(配置键) | 目标 modid | 覆写条件 |
|---|---|---|
Witchery |
witchery |
直接指定 |
AppleMilkTea2 |
DCsAppleMilk |
覆写:检测 modid 为 DCsAppleMilk(与模块名不同) |
AquaTweaks |
AquaTweaks |
super.canLoad() |
ForgeMultipart |
ForgeMultipart |
super.canLoad() && BuildCraft|Builders |
Forestry |
Forestry |
super.canLoad() |
Railcraft |
Railcraft |
super.canLoad() && BuildCraft|Builders |
RedLogic |
RedLogic |
super.canLoad() && BuildCraft|Builders |
ImmibisMicroblocks |
ImmibisMicroblocks |
super.canLoad() && BuildCraft|Builders |
MineFactoryReloaded |
MineFactoryReloaded |
覆写:BuildCraft|Robotics |
MineTweaker3 |
MineTweaker3 |
super.canLoad() |
NotEnoughItems |
NotEnoughItems |
super.canLoad() 且仅客户端(getEffectiveSide() == Side.CLIENT) |
CarpentersBlocks |
CarpentersBlocks |
super.canLoad() && BuildCraft|Builders |
IronChest |
IronChest |
super.canLoad() && BuildCraft|Builders |
Waila |
Waila |
super.canLoad() |
BundledRedstone |
— | 覆写:BuildCraft|Transport 且(RedLogic 或 bluepower) |
AgriCraft |
AgriCraft |
直接指定 |
PamHarvestCraft |
harvestcraft |
直接指定 |
BinnieMods |
BinnieCore |
覆写:BinnieCore && BuildCraft|Builders |
EnderIO |
EnderIO |
super.canLoad() |
BigReactors |
BigReactors |
覆写:BigReactors && BuildCraft|Builders |
factorization |
factorization |
super.canLoad() && BuildCraft|Builders |
ImmersiveEngineering |
ImmersiveEngineering |
覆写:ImmersiveEngineering && BuildCraft|Builders |
EnderStorage |
EnderStorage |
覆写:EnderStorage && BuildCraft|Builders |
ThermalExpansion |
ThermalExpansion |
super.canLoad() && BuildCraft|Builders |
RemainInMotion |
JAKJ_RedstoneInMotion |
覆写:JAKJ_RedstoneInMotion && BuildCraft|Builders |
Magical Crops |
magicalcrops |
直接指定 |
Natura |
Natura |
直接指定 |
ForbiddenMagic |
ForbiddenMagic |
直接指定 |
[!WARNING]
BuildCraftCompat.preInit中offerModule()的调用顺序共 28 次,与CompatModule*.java的文件数完全一致(28 个),无遗漏、无未注册模块。
生命周期
preInit → 逐个 offerModule() 并 config.save();
init → 注册 GUI handler、网络通道与包类型,然后逐个 m.init();
postInit → 逐个 m.postInit()。加载成功的模块会在 init 阶段由 BCLog 逐条打印
Loading compat module <name>。
相关条目
无。本模组只提供兼容层,不提供游戏内容。 上游 BuildCraft 见分类 buildcraft。