覆盖配置文件 Override Config Files

覆盖模块 生成的 10 个独立配置文件,位于 config/iguanatweakstconstruct/ 目录下。

生成机制

IguanaOverride.doOverride(type, overrider) 对每组做两阶段处理:

String configFileName  = type + "Override.cfg";
String defaultFileName = type + "Defaults.cfg";
  1. 用 <Type>Defaults.cfg 调 overrider.createDefault(defaultConfig) 生成默认参考文件;
  2. 读入 <Type>Override.cfg 调 overrider.processConfig(config),有变更则 save()。

两阶段各自包在 try { } catch (RuntimeException e) 中,失败时通过 IMCHandler.bigWarning 告警并记日志,不中断启动。

5 组 × 2 文件

type 实际文件 生成的配置分类 覆盖对象
Material MaterialOverride.cfg / MaterialDefaults.cfg defaultOverride 全部 工具材料 的挖掘等级、耐久、速度、攻击、手柄系数
Tool ToolOverride.cfg / ToolDefaults.cfg defaultOverride 所有物品的挖掘等级(对应 HarvestLevelTweaks.modifyTools 遍历的结果)
Block BlockOverride.cfg / BlockDefaults.cfg 见下 所有方块的挖掘等级
BonusModifier BonusModifierOverride.cfg / BonusDefaults.cfg 见下 全部 随机奖励 权重
HarvestLevelNames HarvestLevelNameOverride.cfg / HarvestLevelDefaults.cfg — 10 档 挖掘等级 的显示名与颜色

*Defaults.cfg 是只读参考(每次启动重新生成),*Override.cfg 才是实际生效的文件。

BlockOverride.cfg 的三个分类

分类 内容 对应源码
generaloredict 10 档的通用 OreDict 材料名后缀(如 _1_flint → Copper, Coal, Tin, ...) HarvestLevelTweaks.oreDictLevels
oredict 「前缀 + 材料 → 等级」的完整组合,覆盖 8 个前缀 oreDictPrefixes = ore, denseore, oreNether, denseoreNether, block, stone, brick, orePoor
blocks_<toolclass> 按工具类别(pickaxe / shovel / axe 等)划分的具体方块条目 HarvestLevelTweaks.modifyBlock

8 个前缀的含义:

前缀 典型 ore 名示例 说明
ore oreCopper、oreIron 普通矿石
denseore denseoreCopper 致密矿(GTNH 风格)
oreNether oreNetherQuartz 下界矿石
denseoreNether denseoreNetherSteel 下界致密矿
block blockCopper 金属块
stone stoneAndesite 石材变种
brick brickStone 砖块
orePoor orePoorCopper 低纯度矿(Poor Ores)——本 mod 专有的前缀

排查某个方块挖掘等级不对时,可用 /dumpOredict 指令 导出全部 ore 名后对照本文件。

BonusModifierOverride.cfg 的分类

分类 内容
ToolWeights 18 种奖励在「工具」类别的权重
WeaponWeights 18 种奖励在「武器」类别的权重
BowWeights 18 种奖励在「弓」类别的权重
AmmoWeights 18 种奖励在「弹药」类别的权重
UsefulToolBonuses 对工具「有用」的奖励白名单
UsefulWeaponBonuses 对武器「有用」的奖励白名单
UsefulBowBonuses 对弓「有用」的奖励白名单
UsefulAmmoBonuses 对弹药「有用」的奖励白名单
UsageBonus:bonusWeight 使用历史权重的放大系数(默认 70)
ShoddyModifiers Jagged / Stonebound 的施加方式

完整默认权重矩阵见 随机奖励修饰符。

启用条件

覆盖模块 Override 的 Pulse 标注为 defaultEnable = false——默认关闭。需在 Modules.cfg 中把 Override 置为 true 才会生效。

关闭时,数值完全由主配置决定(各配置分类);开启时 *Override.cfg 的值优先。

日志

logExcessiveOverrideChanges(在 Debug 配置)为 true 时,覆盖模块做的每一件事都会进日志。配置项注释带一句 Use at your own risk. ;)。