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 控制。
相关条目
- BuildCraft 分类页 - 7 个 modid 的总览与注册真源