配置总览
事实基准:
harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。
加载流程
| 步骤 | 内容 | 来源 |
|---|---|---|
| 1 | Config.instance.load(event) |
HarvestCraft.java:74(preInit) |
| 2 | new Configuration(event.getSuggestedConfigurationFile()) |
Config.java:28 |
| 3 | config.load() |
Config.java:29 |
| 4 | BlockRegistry.initBlocks(config) |
Config.java:30 |
| 5 | ItemRegistry.initItems(config) |
Config.java:31 |
| 6 | 写入 3 个 market currency 占位键(ignore / ignore2 / ignore3)并挂注释 |
Config.java:32-37 |
| 7 | if (config.hasChanged()) config.save(); |
Config.java:38-40 |
配置文件路径由 FMLPreInitializationEvent.getSuggestedConfigurationFile() 决定(即 config/harvestcraft.cfg);本机没有实际生成的配置文件,故条目只记录代码里写明的默认值,不读取磁盘。
统计
用集合运算(对 (分类, 键名) 二元组去重)从 com/pam/harvestcraft/ 与 compat/ 全部 java 文件中抽取 config.get(...) 调用,得到:
-
去重后的配置项:189 个
-
实际使用的分类:14 个
| 分类 | 配置项数 | 条目 |
|---|---|---|
seeds |
62 | 种子(seeds) |
fruit trees |
41 | 果树(fruit trees) |
gardens |
18 | 花园(gardens) |
miscellaneous recipes |
17 | 杂项配方(miscellaneous recipes) |
market currency |
10 | 市场货币(market currency) |
market sales |
10 | 市场出售(market sales) |
crops |
9 | 作物(crops) |
market prices |
8 | 市场价格(market prices) |
dimensions |
4 | 维度(dimensions) |
general |
3 | 通用(general) |
beekeeping |
2 | 养蜂(beekeeping) |
candles |
2 | 蜡烛(candles) |
salt |
2 | 盐(salt) |
backports |
1 | 回移植(backports) |
分类清单的两处不一致
-
Config.java:14-25只声明了 12 个CATEGORY_*常量,但源码里实际还用了字面量"backports"(BlockRegistry.java:343)与"general"(ItemRegistry.java:914,915,996)。这两类没有对应的CATEGORY_*常量。 -
Config.java:32-34用CATEGORY_MARKET_CURRENCY常量(而非字面量)读取 3 个键ignore/ignore2/ignore3,因此它们不出现在上面的 189 个统计里(本条目用字面量正则抽取)。这 3 个键只用于挂注释文本(Config.java:35-37),值恒为"ignore",不参与任何逻辑。
分类页索引
- 种子(seeds) —— 62 项
- 果树(fruit trees) —— 41 项
- 花园(gardens) —— 18 项
- 杂项配方(miscellaneous recipes) —— 17 项
- 市场货币(market currency) —— 10 项
- 市场出售(market sales) —— 10 项
- 作物(crops) —— 9 项
- 市场价格(market prices) —— 8 项
- 维度(dimensions) —— 4 项
- 通用(general) —— 3 项
- 养蜂(beekeeping) —— 2 项
- 蜡烛(candles) —— 2 项
- 盐(salt) —— 2 项
- 回移植(backports) —— 1 项