配置文件(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> 布尔配置项。

模块生效需要同时满足两个条件:

  1. canLoad() 返回 true;
  2. 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。