BuildCraft 配置

基本信息

属性 值
配置对象 buildcraft.core.config.BuildCraftConfiguration(extends net.minecraftforge.common.config.Configuration)
配置元素 buildcraft.core.config.BCConfigElement<T>(extends ConfigElement<T>)
配置管理 buildcraft.core.config.ConfigManager
源码目录 buildcraft/core/config/

注意 BuildCraftConfiguration 与 BCConfigElement<T> 是两条互不相干的继承链 (前者继承 Forge 的 Configuration,后者继承 GTNHExtLib 风格的 ConfigElement), 不是「配置类 + 配置元素基类」的父子关系——仓库内没有任何类 extends BuildCraftConfiguration。

⚠️ 配置直接决定注册数量

本 mod 大量注册被配置开关控制,而不是写死的:

  • 管道:BCRegistry.INSTANCE.isEnabled("pipes", <类名>)——buildPipe(...) 在注册前调用, 返回 false 则不注册。源码中有 38 个 buildPipe 调用点,这是全开时的上限; 其中 pipeFluidsObsidian 还额外被 experimentalContent(默认 false)挡着,默认就不注册。
  • 方块/物品:BCRegistry.INSTANCE.registerBlock/registerItem 的 forced 参数。 forced = true 表示跳过 objects.cfg 的 [blocks]/[items] 开关、直接注册, 不是「覆盖同名注册」(源码里没有任何按名覆盖的分支)。

因此「BuildCraft 有多少方块」这个问题没有脱离配置的固定答案。

forced = true 的全部 11 个注册点

forced 只影响「是否咨询 objects.cfg」,两种取值最终都调 GameRegistry.register*。

对象 位置
buildToolBlock BuildCraftCore.java:469
engineBlock BuildCraftCore.java:472
frameBlock BuildCraftBuilders.java:616
blockOil BuildCraftEnergy.java:268
blockFuel BuildCraftEnergy.java:297
blockRedPlasma BuildCraftEnergy.java:307
plainPipeBlock BuildCraftFactory.java:187
genericPipeBlock(pipeBlock) BuildCraftTransport.java:382
bucketOil BuildCraftEnergy.java:318
bucketFuel BuildCraftEnergy.java:328
bucketRedPlasma BuildCraftEnergy.java:339

⚠ blockHopper 的 forced 是 false(BuildCraftFactory.java:206), 不是 true——它和其余 forced = false 的方块一样受 objects.cfg 控制。

相关条目