ModConfig
基本信息
| 属性 | 值 |
|---|---|
| 路径 | mrtjp.core.data.ModConfig |
| 源码 | src/main/scala/mrtjp/core/data/configurations.scala:24 |
Scala 侧的 Forge 配置框架基类,供其它 mod 继承并以强类型 var + put 调用声明配置项。
用法(本 mod 自身即范例)
object MrTJPConfig extends ModConfig("MrTJPCoreMod"),重写 initValues() 声明配置,
重写 getFileName 指定文件名(默认等于 modid)。
关键 API
| 成员 | 说明 |
|---|---|
BaseCategory(key, comment) |
配置分段 |
cat.put\[T\](key, value, comment) |
泛型写入:按 Scala 类型自动推断 Property.Type(Boolean/Int/String/Double/Array) |
put(..., force = true) |
强制覆盖已有值(默认不覆盖) |
loadConfig() |
在 <configDir>/<getFileName>.cfg 打开 Configuration → 调 initValues() → 变更则保存;并把自己注册到 FMLCommonHandler 总线 |
@SubscribeEvent onConfigChanged |
收到同 modid 的 OnConfigChangedEvent 时重新 initValues() 并保存 |
配套 GUI
SpecialConfigGui / SpecialConfigGui.buildCategories(config) 把 Forge Configuration
的各分段包成 DummyCategoryElement 列表,交给标准 GuiConfig 渲染。
缺陷
put[T] 的实现第 73 行 reslult.asInstanceOf[T]——变量名拼写为 reslult(缺 a),
且用 asInstanceOf 强转绕过泛型检查。类型不匹配时会在运行期抛 ClassCastException
而非编译期报错。
本 mod 的实际配置项(MrTJPConfig,mod.scala:50)
| 配置项 | 默认 | 含义 |
|---|---|---|
retro_gen |
false |
追溯生成(retrogeneration)开关 |
retro_gen_id |
mrtjp_gen |
记录已生成区块的数据库 ID;修改会导致同区块重新生成 |
check_versions |
true |
更新检查器开关 |
check_unstable |
false |
更新检查是否把不稳定构建算作新版本 |
相关条目
- MrTJPCoreMod
- SimpleGenHandler — 消费
retro_gen/retro_gen_id