ModConfig
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.ModConfig |
| 类型 | class,全静态 |
| 配置文件 | applecore.cfg |
| 配置项 | 7(server 1 + client 6) |
| 启用版本 | Minecraft 1.7.10 |
功能
集中声明并加载全部配置。分 3 个 category:server、client、general
(general 分类被创建并设了语言 key,但没有任何配置项)。
server(1 项)
| 配置名 | 字段 | 类型 | 默认值 |
|---|---|---|---|
exhaustion.sync.threshold |
EXHAUSTION_SYNC_THRESHOLD |
double |
0.01D |
服务端与客户端消耗值差异超过该值才下发同步包;值越大包越少但客户端显示越跳。
client(6 项)
| 配置名 | 字段 | 类型 | 默认值 |
|---|---|---|---|
show.food.values.in.tooltip |
SHOW_FOOD_VALUES_IN_TOOLTIP |
boolean |
true |
show.food.values.in.tooltip.always |
ALWAYS_SHOW_FOOD_VALUES_TOOLTIP |
boolean |
false |
show.saturation.hud.overlay |
SHOW_SATURATION_OVERLAY |
boolean |
true |
show.food.values.hud.overlay |
SHOW_FOOD_VALUES_OVERLAY |
boolean |
true |
show.food.exhaustion.hud.underlay |
SHOW_FOOD_EXHAUSTION_UNDERLAY |
boolean |
true(迁移值) |
show.food.stats.in.debug.overlay |
SHOW_FOOD_DEBUG_INFO |
boolean |
true |
实现要点
- 配置迁移:
show.food.exhaustion.hud.overlay是已废弃的旧键。sync()先用默认值true读出旧值,随即config.getCategory(CATEGORY_CLIENT).remove(...)删除旧键, 再把读到的值作为新键show.food.exhaustion.hud.underlay的默认值。 副作用:用户从未改过旧键时,首次生成的新键值来自迁移前的true, 而非字段声明处的默认值,二者恰好相同故无可见差异。 LANG_PREFIX = "applecore.cfg."供所有项拼接setLanguageKey, 界面上显示为本地化文本而非原始键名。sync()结尾if (config.hasChanged()) save();, 因此配置迁移会在首次运行后落盘。EXHAUSTION_SYNC_THRESHOLD的比较在 SyncHandler 中用Math.abs(last - current) >= 阈值,因此恰好等于阈值时也会发包。
相关条目
- AppleCore - 调用
init/sync - SyncHandler - 唯一消费
EXHAUSTION_SYNC_THRESHOLD处 - HUDOverlayHandler - 消费 4 个 client 项
- TooltipOverlayHandler - 消费 2 个 tooltip 项
- DebugInfoHandler - 消费
SHOW_FOOD_DEBUG_INFO - GuiAppleCoreConfig - 配置界面