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 处于注释状态,故当前无实际影响。
  • 日志无节流:整合包中生成器数量多时会一次打印大量行,且每次启动都打印。
  • 该项只影响日志,不改变任何游戏内行为。

相关条目