Thaumcraft Research Tweaks

[!INFO] modid: ThaumcraftResearchTweaks | 语言: Kotlin | 1.7.10 / Forge 10.13.4.1614

Thaumcraft Research Tweaks(TRT)是一个纯 Mixin 模组,它整体重写了神秘时代研究台(Research Table)的 GUI——换成一套六边形网格 + 拖放操作的新界面。

它是什么(裁定依据)

事实 证据
官方描述 mcmod.info:“Makes thaumcraft research table ui resizable, adjusts sorting and allows 10x at a time aspect combination”
注册方块 0
注册物品 0
注册实体 0
Mixin 数量 1(mixins.ThaumcraftResearchTweaks.json 的 mixins 数组只有 "TableBlockMixin")
源码文件 97 个 .kt(Kotlin),.java 数量为 0

它不改动研究配方、研究点数或研究进程规则本身,改动集中在研究台界面的前端呈现与交互。

三个关键陷阱

1. modid 是 PascalCase,且与资源域不同

项 值 证据
modid ThaumcraftResearchTweaks ThaumcraftResearchTweaks.kt:23 const val MOD_ID = "ThaumcraftResearchTweaks";gradle.properties modId = ThaumcraftResearchTweaks
分类名 thaumcraft-research-tweaks(全小写 kebab) data/relation.md:361
资源域 thaumcraft src/main/resources/assets/thaumcraft/

modid ≠ 资源域:贴图与语言文件都在 assets/thaumcraft/ 下,不占用自己的命名空间。这既是刻意的(要覆盖 TC 本体资源)也是陷阱——按 ThaumcraftResearchTweaks: 前缀找资源会一无所获。

2. @Mod 写在 Kotlin 里,依赖 Forgelin

@Mod(
    modid = MOD_ID,
    name = "Thaumcraft Research Tweaks",
    version = MODVER,
    modLanguageAdapter = "net.shadowfacts.forgelin.KotlinAdapter",
    dependencies = "required-after:forgelin;required-after:spongemixins;required-after:Thaumcraft;")
object ThaumcraftResearchTweaks { ... }

(ThaumcraftResearchTweaks.kt:15-21)

find -name '*.java' 在本仓库返回 0——按 Java 仓库处理会得出「无源码」的错误结论。modLanguageAdapter 指向 Forgelin,这是 Kotlin 模组在 Forge 1.7.10 上运行的前提。

3. MODVER 是构建期生成的常量

version = MODVER(:18)在 97 个 .kt 文件中没有任何声明,也没有任何 import:

$ grep -rn 'MODVER' --include=*.kt src/
src/main/kotlin/.../ThaumcraftResearchTweaks.kt:18:    version = MODVER,

它由 Gradle 的 buildconfig 插件生成到同包 elan.tweaks.thaumcraft.research.frontend.integration 下(addon.gradle):

buildConfig {
    packageName("elan.tweaks.thaumcraft.research.frontend.integration")
    buildConfigField('String', 'MODVER', "\"${project.modVersion}\"")
    useKotlinOutput { topLevelConstants = true }
}

源码中读不到任何真实版本号。gradle.properties 中 generateGradleTokenClass =(空)且 gradleTokenVersion = GRADLETOKEN_VERSION,故版本号不来自 token 替换。

依赖

依赖 声明 收录状态
Forgelin required-after:forgelin 不在收录范围(data/relation.md 无对应行)
SpongeMixins required-after:spongemixins 不在收录范围
Thaumcraft required-after:Thaumcraft ✓ 已完成
UniMixins usesMixins = true 自动引入 已登记未成文,前向引用 unimixins

内容清单

本模组不注册任何游戏内容,条目按功能组织:

设置

界面效果

源码缺陷

  • mcmod.info 声称的「ui resizable」在源码中无实现:GUI 尺寸由贴图常量推导(ResearchTableLayout.kt:8-12),没有任何 resize / scale 用户配置。详见 Research Table GUI。
  • mcmod.info 依赖列表遗漏 SpongeMixins:info 的 dependencies 数组写 Forgelin / Thaumcraft / SpongeMixins,但未列出 UniMixins,而 usesMixins = true 会自动引入它(gradle.properties 注释:“UniMixins is automatically set as a required dependency if usesMixins = true”)。
  • GameRegistry 被 import 但未使用:ThaumcraftResearchTweaks.kt:7 导入 cpw.mods.fml.common.registry.GameRegistry,全文件无任何调用——与「本模组不注册方块物品」一致。