GTNHLib 主配置

基本信息

属性 值
类 com.gtnewhorizon.gtnhlib.GTNHLibConfig
源码 src/main/java/com/gtnewhorizon/gtnhlib/GTNHLibConfig.java
注解 @Config(modid = GTNHLib.MODID)(modid = gtnhlib)
注册位置 core/GTNHLibCore.java:57,在 GTNHLibCore 构造器内
配置项数 27
配置文件 config/gtnhlib.cfg
配置分类 general(@Config.category() 默认值,config/Config.java:24)

功能

GTNHLib 自身的全部运行时开关。所有字段为 public static,直接读写即可,无需 getter。

注册时机特殊:在 coremod 构造器 GTNHLibCore() 中注册,而非 preInit(core/GTNHLibCore.java:55-60):

public GTNHLibCore() {
    verifyDependencies();
    try {
        ConfigurationManager.registerConfig(GTNHLibConfig.class);
    } catch (ConfigException e) {
        throw new RuntimeException(e);
    }
}

这样 mixin 在构造期就能读到配置值。

数值

全部 27 项。@Config.RequiresMcRestart 标记的 5 项需重启 Minecraft 才生效。

字段 类型 默认值 范围 需重启 作用
ignoreNEIVersion boolean false — 否 跳过 NEI 版本检查
enableFontRendererMixin boolean true — 否 字体渲染替换
enableMoreFlowerPottage boolean true — 否 模组方块入花盆
modelCacheSize int 1000 1 – 1000000 是 模型缓存条目数,越大越省重建、越吃内存
enableModelDebugLogs boolean false — 否 模型系统详细日志
blockSoundMixins boolean true — 是 动态方块音效 mixin
enableTranslucentItemRenders boolean true — 否 半透明物品渲染
enableResourcePackUpdateCheck boolean true — 否 资源包更新检查
enableTeamCommands boolean true — 否 GTNH 队伍指令
teamCommandRoot String "gtnhteam" — 否 队伍指令根名
teamSystemName String "GTNHTeams" — 否 队伍系统对外显示名
enableTestBlocks boolean false — 是 注册 7 个测试方块(仅开发者)
enableTestItems boolean false — 是 注册 1 个测试物品(仅开发者)
testCrackTexture boolean false — 否 替换模型方块的破坏纹理,便于观察旋转
enableTitleOverlay boolean true — 否 显示标题/副标题覆盖层
titleScale float 4.0f 0.5 – 8.0 否 主标题字号
subtitleScale float 2.0f 0.5 – 8.0 否 副标题字号
showTitleIcon boolean true — 否 标题上方显示物品图标
titleIconScale float 2.0f 0.5 – 8.0 否 图标缩放,2.0 = 32×32 像素
titleIconOffsetY int 0 -100 – 100 否 图标相对标题的垂直偏移,负=更高
titleIconAnimation String "fly_in" 见下 否 图标入场动画
enableTitleParticles boolean true — 否 标题显示时启用粒子
titleEffectTier int 0 0 – 6 否 电影级完成特效档位
titleOffsetX int 0 -1000 – 1000 否 标题块相对屏幕中心的水平偏移,负=左
titleOffsetY int 0 -1000 – 1000 否 标题块相对屏幕中心的垂直偏移,负=更高
inventoryScanInterval int 5 1 – 200 否 扫描玩家背包的 tick 间隔,越高越省 CPU
debugInventoryEvents boolean false — 否 记录每次背包增删事件(仅开发者)

titleIconAnimation 的合法取值来自 GTNHLibConfig.java:78 的注释:

none, fly_in, rise, slide, zoom, pop, spin, spin_reverse, bounce, wobble, swing, slam, tada

titleEffectTier 的档位含义(GTNHLibConfig.java:88):

0 = none, 3 = hyperspace, 4 = singularity, 5 = warp, 6 = lightspeed

注意 1 与 2 在注释中未列出。

交互

读取器验证:27 个字段全部至少有一处外部读取点,无声明未用字段。下表为读取该字段的源文件数(去重后的文件个数,非出现次数):

读取文件数 字段
6 enableModelDebugLogs
3 teamCommandRoot
2 enableResourcePackUpdateCheck、teamSystemName、enableTestItems、inventoryScanInterval
1 其余 22 个字段

enableModelDebugLogs 被 6 个文件读取,是本配置中耦合最广的一项:mixins/early/models/MixinFileResourcePack.java、client/model/loading/ResourceLoc.java、client/model/loading/ModelRegistry.java、client/model/state/MonopartState.java、client/model/state/MultipartState.java、client/model/unbaked/JSONModel.java。

开发者专用项的实际效果:

  • enableTestBlocks = true → CommonProxy.java:72-80 调用 7 个 Block*.register()
  • enableTestItems = true → CommonProxy.java:82-84 调用 GameRegistry.registerItem(TestItem.INSTANCE, "testitem")

两项默认值均为 false,普通安装下 GTNHLib 注册 0 个方块、0 个物品。

相关条目