配置文件(UniversalSingularities.cfg)
基本信息
| 属性 | 值 |
|---|---|
| 文件路径 | ./config/UniversalSingularities.cfg(CommonProxy.java:721-722) |
| 框架 | Forge 原生 net.minecraftforge.common.config.Configuration |
| 加载时机 | CommonProxy 构造函数内,即 FML 实例化 proxy 时,早于任何 @Mod.EventHandler |
| 默认 category | Configuration.CATEGORY_GENERAL |
加载流程的副作用
配置读取发生在构造函数里,并且直接决定注册哪些物品(CommonProxy.java:725-742):
universalSingularities.forEach(us -> {
if (config.get(us.name, "enabled", true).getBoolean()) { // 分组级开关,默认 true
for (int i = 0; i < us.singularities.size(); i++) {
if (config.get(us.name, wrapper.name, wrapper.enabled).getBoolean()) {
allowed.get(us.name).add(wrapper.name); // 进白名单集合
}
}
singularities.add(new UniversalSingularityItem(us.name, us.singularities));
}
});
关键语义(易错):
- 分组级
enabled=false→ 该组物品根本不注册(GameRegistry.registerItem不会被调用),meta 全部消失。 - 单项
enabled=false→ 物品照常注册、meta 照常存在(UniversalSingularityItem拿到的是未过滤的完整 list),只是不生成压缩配方。 allowed是Map<分组名, Set<变体名>>,只用于配方与 NEI 隐藏,不影响物品本身。
General 段选项
| 键 | 类型 | 默认值 | 作用 |
|---|---|---|---|
hideDisabledSingularitiesInNei |
boolean | true |
且仅当 Loader.isModLoaded("NotEnoughItems") 为真时才生效(&& 短路,:723-724);为 false 时禁用项会完整显示在 NEI 里但无配方 |
coalSingularityEasterEgg |
boolean | true |
控制煤炭奇点是否注册为燃料(:743-744) |
分组级选项
每个分组下都有一个名为 enabled 的布尔项,共 17 个——源码 CommonProxy 构造函数中 Arrays.asList(...) 声明了 17 个 UniversalSingularity,每个对应一个配置 section(general、电路等按来源 mod 分组)。
默认全部为 true,因此开箱默认注册 17 个物品,合计 105 个 meta 变体。
| 分组名(= 配置 section) | 变体数 |
|---|---|
vanilla |
4 |
general |
33 |
bigReactors |
5 |
draconicEvolution |
2 |
enderIO |
8 |
extraPlanets |
5 |
extraTiC |
2 |
extraUtilities |
1 |
utilitiesinexcess |
1 |
mekanism |
2 |
metallurgy |
10 |
redstoneArsenal |
1 |
tinkersConstruct |
7 |
rubber |
6 |
toxic |
1 |
circuit |
10 |
circuit2 |
7 |
| 合计 | 105 |
变体级选项
每个分组 section 下有该组全部变体名作为键,默认值取 UniversalSingularityWrapper.enabled 字段。
enabled 字段的来源有两条路径(UniversalSingularityWrapper 有两个构造函数):
| 构造函数 | enabled 取值 |
|---|---|
5 参(无 enabled) |
恒为 true(:21) |
6 参(显式传 enabled) |
传入值 |
实测统计:105 个变体中 80 个默认关闭、25 个默认开启。默认开启的仅有:
| 分组 | 开启的变体 |
|---|---|
vanilla |
water |
general |
magnesium |
rubber |
全部 6 个 |
toxic |
contaminated |
circuit |
全部 10 个 |
circuit2 |
uev、uiv、umv、uxv、max、computronium(不含 erv) |
这意味着开箱即用状态下大部分奇点在 NEI 中被隐藏且无法获得,需要玩家手动在配置里开启对应 mod 的分组与变体。
写回
if (config.hasChanged()) config.save();(:745)。构造时即会写盘一次,把所有分组/变体键刷进 cfg 文件。
限制
- 配置在构造函数中读取,意味着无法通过
/reload或配置 GUI 热重载;改完必须重启游戏。 - 不使用
@Config(GTNHLib)框架,也没有 in-game 配置 GUI。
相关条目
- 配方注册与矿辞门控 - 消费
allowed的地方 - 煤炭奇点燃料处理 - 消费
coalSingularityEasterEgg - NEI 隐藏禁用奇点 - 消费
hideDisabledSingularitiesInNei