Databack 配置项
基本信息
| 属性 | 值 |
|---|---|
| 配置类 | databack.DatabackConfig |
| 注解 | @Config(modid = Databack.MODID),即 modid databack(DatabackConfig.java:5) |
| 注册方式 | GTNHLib ConfigurationManager.registerConfig(DatabackConfig.class)(CommonProxy.java:60-64,抛 ConfigException 时包装为 RuntimeException) |
| 声明式配置项数 | 3 |
| 额外 JSON 配置文件 | 1(客户端 debug_overlay.json) |
功能
Databack 的全部可调项。它不含方块 / 物品 / 实体属性类配置 —— 因为本模组不注册任何游戏内容(见分类页)。三个声明式配置项中,两个服务于密度函数字节码调试,一个控制标签测试注册。
配置项列表
| 配置字段 | 类型与默认值 | 源码行 | 实际作用 |
|---|---|---|---|
dumpCompiledDensityFunctions |
@Config.DefaultBoolean(false) |
DatabackConfig.java:9-10 |
布尔,默认 false。注释:「Dump .class files generated by the density function bytecode compiler. Useful for inspecting generated bytecode.」即把密度函数编译产出的 .class 落盘 |
compiledDensityFunctionDumpDir |
@Config.DefaultString("compiled-df") |
DatabackConfig.java:13-14 |
字符串,默认 compiled-df。注释:「Directory to write compiled density function .class files into. Relative to the Minecraft run directory.」相对 Minecraft 运行目录解析 |
enableTagDebugMode |
@Config.DefaultBoolean(true) |
DatabackConfig.java:17-18 |
布尔,默认 true。注释:「Enable block/item/biome/entity tag debug mode」。控制 databack.common.tags.TestTags 的四个事件处理器是否执行 |
enableTagDebugMode 的副作用(默认开启)
TestTags 标注了 @EventBusSubscriber(TestTags.java:20,GTNHLib 事件总线自动注册),并订阅四个事件。enableTagDebugMode 为 true 时它会向原版命名空间写入标签内容(TestTags.java:24-72):
| 事件 | 写入的标签 | 内容(源码) |
|---|---|---|
RegisterBlockTagsEvent |
minecraft:test、minecraft:test2 |
test 包含 test2、Blocks.grass(meta 0)、Blocks.dirt(meta 0)经 BlockIdentityRegistry 取得的身份(TestTags.java:26-34) |
RegisterItemTagsEvent |
minecraft:test、minecraft:test2 |
test 包含 test2 与橡木板(Blocks.planks meta 0)、test2 包含云杉木板(meta 1),均经 ItemIdentityRegistry 取得且带 null 判空(TestTags.java:38-50) |
RegisterEntityTagsEvent |
minecraft:test、minecraft:test2 |
test 包含 EntityPig.class、test2 包含 EntitySheep.class(TestTags.java:54-62) |
RegisterBiomeTagsEvent |
minecraft:forest、minecraft:temperate |
temperate 包含 forest;forest 包含 BiomeGenBase.forest、forestHills、birchForest、birchForestHills、roofedForest(TestTags.java:66-77) |
这四个事件由 BuiltinTagRegistries(BuiltinTagRegistries.java:84、111、138)与 EntityTagRegistry(EntityTagRegistry.java:74)在 MinecraftForge.EVENT_BUS 上发出,属于活代码而非死代码。类名虽为 TestTags,但因 enableTagDebugMode 默认为 true,这些标签在开箱状态下就会注册。
额外配置文件:debug_overlay.json
| 属性 | 值 |
|---|---|
| 路径 | <config>/databack/debug_overlay.json(CommonProxy.java:111-112) |
| 仅客户端 | 是(if (FMLLaunchHandler.side().isClient()) 守卫,CommonProxy.java:110) |
| 读写方 | databack.common.debug.DebugOverlayRegistry.setConfigFile / load / save |
| 存储内容 | 各调试读数的显示模式与显式排序顺序(DebugOverlayRegistry.java:46-49:defaultModes、savedOrder) |
已声明但无读取方的状态(死代码)
CommonProxy 中的 isEFRLoaded 是一个声明并在 preInit 赋值、但全仓无任何读取方的字段:
- 声明:
private static boolean isEFRLoaded;(CommonProxy.java:66,带@Getter) - 赋值:
isEFRLoaded = Loader.isModLoaded("etfuturum");(CommonProxy.java:75) - 读取:全仓
grep -rn 'isEFRLoaded\|etfuturum' src/main/java/仅命中上述两行,无第三处
因此 Databack 加载时会检测一次 Et Futurum,但没有任何 Et Futurum 集成代码消费该结果。本分类不将其计为集成项。
相关条目
- /datapack 指令 - 唯一的服务端指令
- F3+F6 调试叠层 - 使用
debug_overlay.json的客户端界面 - 依赖与集成 -
enableTagDebugMode等特性所依赖的库