配置项
基本信息
| 属性 | 值 |
|---|---|
| 配置文件 | config/WitcheryExtras/asm.cfg(AsmConfig.java:40) |
| 配置类 | config/AsmConfig.java |
| 加载方式 | static 块中 syncConfig(true)(AsmConfig.java:39-42) |
| 选项总数 | 18(2 个 general + 15 个 predictions + 1 个 blocks) |
| 分类 | general / predictions / blocks(+ 一个空的 debug) |
asm.cfg这个名字是历史遗留(ASM = 早期 “Another Skin Mod”), 现在与 mixin 补丁无关,不要按名字推断其作用。
general(2 项)
| 键 | 类型 | 默认 | 注释原文 | 行 |
|---|---|---|---|---|
enablePatchNEI |
boolean | true |
Patch NEI for good recipe support. | AsmConfig.java:54-57 |
allowPoppetShelfChunkLoading |
boolean | true |
Enables Chunk Loading by Poppet Shelves. | AsmConfig.java:60-63 |
| 键 | 静态字段 | 作用位置 | 需重启 |
|---|---|---|---|
enablePatchNEI |
AsmConfig.enablePatchNEI |
门控 Mixin 组 WITCHERY_NEI_CONFIG(mixins/Mixins.java:44-47) |
是(setRequiresMcRestart(true),AsmConfig.java:56) |
allowPoppetShelfChunkLoading |
AsmConfig.allowPoppetShelfChunkLoading |
门控人偶架区块加载(TileEntityPoppetShelfMixin.java:26、40)+ tooltip 颜色(TooltipHandler.java:22-27) |
是(AsmConfig.java:62) |
enablePatchNEI门控的是 Mixin 是否应用,因此改完必须重启游戏, 光重载配置无效。
predictions(15 项)
调用的类:PredictionHandler.adjustPredictions()(见 预言权重重写)。
所有值都是 int 权重,无范围限制(prop.getInt(默认) 不带上下界)。
| 键 | 默认 | 英文注释 | 中文注释 | 行 |
|---|---|---|---|---|
chancePredictionSpawnBabaYagaGood |
2 | Adjusts weight for ‘Good’ Baba Yaga spawns | 好 Baba Yaga 权重 | AsmConfig.java:70-74 |
chancePredictionSpawnBabaYagaBad |
2 | Adjusts weight for ‘Bad’ Baba Yaga spawns | 坏 Baba Yaga 权重 | AsmConfig.java:76-80 |
chancePredictionExtraCoal |
13 | Adjusts weight for Extra Coal Drops | 额外煤炭掉落 | AsmConfig.java:83-87 |
chancePredictionSpawnEnt |
3 | Adjusts weight for Ent Spawn | 树精生成 | AsmConfig.java:90-94 |
chancePredictionStumbleAndFall |
13 | Adjusts weight for ‘Stumble & Fall’ | 绊倒坠落 | AsmConfig.java:97-101 |
chancePredictionGetWet |
13 | Adjusts weight for ‘Get Wet’ | 淋湿 | AsmConfig.java:104-108 |
chancePredictionExtraIron |
8 | Adjusts weight for Extra Iron Drops | 额外铁掉落 | AsmConfig.java:111-115 |
chancePredictionSpawnZombie |
13 | Adjusts weight for Zombie Spawn | 僵尸生成 | AsmConfig.java:118-122 |
chancePredictionSpawnProtectiveAnimal |
13 | Adjusts weight for Friendly Animal Spawn | 友好动物生成 | AsmConfig.java:125-129 |
chancePredictionSpawnSkeleton |
13 | Adjusts weight for Skeleton Spawn | 骷髅生成 | AsmConfig.java:132-136 |
chancePredictionSpawnBuriedTreasure |
2 | Adjusts weight for ‘Buried Treasure’ spawn | 埋藏宝藏 | AsmConfig.java:139-143 |
chancePredictionTeleportNether |
3 | Adjusts weight for Nether Teleport | 下界传送 | AsmConfig.java:146-150 |
chancePredictionSpawnFriendlyWolf |
3 | ⚠️ Adjusts weight for (空注释) |
友好狼生成 | AsmConfig.java:153-157 |
chancePredictionFindShinies |
3 | Adjusts weight for Bonus Diamond/Emerald drop from stone | 石头额外钻石/绿宝石 | AsmConfig.java:160-164 |
chancePredictionVillagerLove |
2 | Adjusts weight for Villager + Player lovemaking event | 村民与玩家亲热事件 | AsmConfig.java:167-171 |
⚠️ 源码缺陷:
chancePredictionSpawnFriendlyWolf的注释字符串没写完——prop.comment = "Adjusts weight for ";(AsmConfig.java:154),末尾直接是分号。 生成出来的 cfg 里这一项的说明就是半句话。
📌 默认值 ≠ 生效保证:这 15 个默认值会被
PredictionHandler的 17 元素数组按下标读取,其中aNewValues[-1]越界、 下标 17 无对应配置。详见 预言权重重写 的 「数组越界 + 下标错位」一节——不要把上表默认值当成「实际生效的权重」。
blocks(1 项)
| 键 | 类型 | 默认 | 注释 | 行 | 作用 |
|---|---|---|---|---|---|
disableSilverVat |
boolean | false |
Disable Silver Vat | AsmConfig.java:173-176 |
取消银缸方块注册(BlockBaseContainerMixin.java:26) |
分类名是
blocks但只有 1 项,且它不禁用本 mod 的方块(本 mod 没有方块), 禁用的是 Witchery 的银缸。该开关不标记setRequiresMcRestart(true), 但它改变的是方块注册阶段,实际上仍需重启才能改变结果。
⚠️ 空的 debug 分类
ArrayList<String> propOrderDebug = new ArrayList<>(); // AsmConfig.java:46
...
config.setCategoryPropertyOrder("debug", propOrderDebug); // AsmConfig.java:179
propOrderDebug 被创建并传给 setCategoryPropertyOrder("debug", ...),
但全代码库没有任何一处往 debug 分类加过属性
(grep '"debug"' 只命中 AsmConfig.java:179 一行)。
即 debug 是一个永远为空的分类。
异常处理
AsmConfig.java:184-186:
} catch (Exception var3) {
FMLLog.log(Level.ERROR, var3, "Witchery++ ASM had a problem loading it's config", new Object[0]);
}
整个 syncConfig 包在一个 catch (Exception) 里。
任一配置项读取失败只打 ERROR 日志,所有 public static 字段保留 Java 默认值
(boolean = false,int = 0)——注意 0 权重与配置默认值 2/3/13 差别很大,
配置损坏时预言权重会全部变成 0。
📌 异常信息里写的是
"Witchery++ ASM had a problem loading it's config"—— 仍用旧名 ASM,且it's应为its。
关联
- 15 个预测开关的运行时消费见 预言权重重写
allowPoppetShelfChunkLoading的效果见 机器容器与 TileEntity 补丁enablePatchNEI门控的 Mixin 见 Mixin 补丁总表