Show World Generators in Log(调试输出世界生成器列表)
基本信息
| 属性 | 值 |
|---|---|
| 配置键 | S:Show World Generators in Log(category general) |
| 类型 | 布尔 |
| 默认值 | false |
| 存储字段 | ConfigGeneralSettings.generalShowDebugWorldGenerators(ConfigGeneralSettings.java:6) |
| 声明位置 | ConfigurationFile.java:32-37 |
| 消费位置 | DefaultWorldGenerator.java:33-41(postInit) |
作用
开启后,在 postInit 阶段把当前实例里所有可创建的世界生成器名称 打印到 FML 日志,用来确认整合包里究竟注册了哪些生成器, 并取得填入 World Generator 配置所需的内部名。
开启时的输出(DefaultWorldGenerator.java:34-40):
=======================[ World Generators ]=======================
Name: default
Name: flat
...
==================================================================
筛选规则
遍历 WorldType.worldTypes 全数组,同时要求两个条件才打印
(DefaultWorldGenerator.java:36):
| 条件 | 来源 |
|---|---|
该槽位非 null |
WorldType.worldTypes[i] != null |
| 允许被玩家创建 | WorldType.worldTypes[i].getCanBeCreated() |
因此由别的模组注册但标记为「不可创建」的生成器不会出现在日志里。
关键细节:打印的是内部名
打印的是 getWorldTypeName()(DefaultWorldGenerator.java:37),
不是 getTranslateName()。这正是该功能的价值所在 ——
getWorldTypeName() 的返回值与 World Generator 配置
的匹配依据是同一个方法,所以日志里的字符串可以直接复制进配置,
而界面上看到的翻译名(如「普通」「超平坦」)填进去是不会生效的。
已知源码问题
Log.debug实际输出 INFO 级:lib/Log.java:20的debug()方法体是log(Level.INFO, object),没有使用Level.DEBUG。 虽不影响本功能(此处调用的本就是Log.info),但任何依赖 「debug 级可被关闭」的调用方都会失效。本 mod 中Log.debug的唯一调用点GuiCreateCustomWorld.java:31处于注释状态,故当前无实际影响。- 日志无节流:整合包中生成器数量多时会一次打印大量行,且每次启动都打印。
- 该项只影响日志,不改变任何游戏内行为。
相关条目
- World Generator - 日志中列出的名字即为该配置的可填值
- Flat World Config - 同样是排查生成器问题的配置