McPatcherForgeConfig(mcpatcherforge 配置)
基本信息
| 属性 | 值 |
|---|---|
| 外层类 | jss.notfine.config.MCPatcherForgeConfig |
| 路径 | src/main/java/jss/notfine/config/MCPatcherForgeConfig.java |
| 行数 | 296 |
| modid | mcpatcherforge(不是 angelica) |
| 结构 | 外层类不含任何配置字段,只是 6 个嵌套静态类的容器 + 一个注册方法 |
| 字段总数 | 58(23 + 5 + 8 + 13 + 3 + 6) |
外层类 MCPatcherForgeConfig 本身没有 @Config 注解,也没有字段。6 个 @Config 注解分别打在嵌套类上。
6 个分类
| # | 嵌套类 | @Config 行 |
分类名 | 字段数 | 行范围 |
|---|---|---|---|---|---|
| 1 | CustomColors |
:11 |
custom_colors |
23 | :12-107 |
| 2 | CustomItemTextures |
:108 |
custom_item_textures |
5 | :109-132 |
| 3 | ConnectedTextures |
:133 |
connected_textures |
8 | :134-163 |
| 4 | ExtendedHD |
:164 |
extended_hd |
13 | :165-222 |
| 5 | RandomMobs |
:223 |
random_mobs |
3 | :224-239 |
| 6 | BetterSkies |
:240 |
better_skies |
6 | :241-268 |
各分类均无 filename 参数,因此落在 modid mcpatcherforge 的配置目录下、按 category 分节。
注册方式:手写 registerConfig
与 Angelica / NotFine / Compat / Font 四份配置不同,这 6 份不会被 ConfigurationManager 自动发现,而是由外层类的手写方法逐个登记(:269-276):
public static void registerConfig() throws ConfigException {
ConfigurationManager.registerConfig(CustomColors.class);
ConfigurationManager.registerConfig(CustomItemTextures.class);
ConfigurationManager.registerConfig(ConnectedTextures.class);
ConfigurationManager.registerConfig(ExtendedHD.class);
ConfigurationManager.registerConfig(RandomMobs.class);
ConfigurationManager.registerConfig(BetterSkies.class);
}
唯一调用点是 AngelicaClientTweaker.java:73:MCPatcherForgeConfig.registerConfig();,紧随 :69-72 的三次 registerConfig 之后。这发生在 coremod 阶段(AngelicaMod 的 preInit 之前),因此配置早于任何 mod 生命周期事件就绪。
字段名重复
58 个字段里只有 48 个不同的名字(grep 去重后为 48)。原因是不同嵌套类里有同名但不同类型的字段 —— 例如 enabled 在 CustomColors、CustomItemTextures、ConnectedTextures 等多个分类中各有一个。它们分属不同 Java 类,不构成冲突,但按名字统计配置项时必须按分类分别计数,不能用全局去重。
各级开关的默认状态
各分类的顶层 enabled 开关默认多为 false(例如 CustomColors.enabled 在 :14-16 是 @Config.DefaultBoolean(false)),与 AngelicaConfig.enableMCPatcherForgeFeatures(默认 true)形成两层控制:
AngelicaConfig.enableMCPatcherForgeFeatures (默认 true, RequiresMcRestart)
└── 每个分类的 enabled 开关 (默认多为 false)
└── 各项具体参数
即:MCPatcherForge 总开关默认开,但 6 个子模块各自还要再开一次。
相关条目
- McPatcherForge - 对应的
@Mod空壳主类 - AngelicaModulesConfig -
enableMCPatcherForgeFeatures总开关 - AngelicaClientTweaker -
registerConfig()的唯一调用点 - MCPatcherForge Mixin 分组 - 82 个 mixin 的模块划分