Thaumcraft Mob Aspects

[!INFO] Git Commit: 56dbe77 | Updated: 2026-10-01

Thaumcraft Mob Aspects 是一个纯数据 / API 类附属(原作者 iguana_man, 1.7 端口由 Parker8283 维护),它通过 Thaumcraft 的 ThaumcraftApi.registerEntityTag 给其他 mod 的生物赋予精华(aspects), 让它们能被妖术学的妖术、检定等系统正常识别与交互。

它不注册任何方块、物品或实体,也不提供自己的游戏内容; 全部功能就是一张"实体名 → 精华表"的映射,以及把该映射持久化成可编辑的配置文件。

主要特性:

  • 6 个生物插件:为 SpecialMobs(107)、MoCreatures(57)、TwilightForest(44)、 LycanitesMobs(9)、EnderZoo(8)、BiomesOPlenty(7) 的生物硬编码精华, 合计 233 处赋值 / 232 个不同实体名,全部是字面量、无运行时条件追加;
  • 按 modid 分文件:每个来源 mod 一个 config/ThaumcraftMobAspects/<modid>.cfg, 内容是 Gson pretty-print 的 JSON 数组(尽管扩展名是 .cfg);
  • 配置优先:启动时先读配置再放插件硬编码值, 因此玩家改过的精华表会覆盖插件里的数值——这是唯一的定制入口;
  • 全实体建档:为 EntityList 里每个已注册实体建空条目, 方便玩家在对应文件里自行添加精华(空条目不会被注册);
  • 两个玩家条目:the_iguana_man 与 XanderGryphon 硬编码同一组 boss 级精华;
  • 守卫严格:只注册 aspectList.size() > 0 的实体,不存在的精华 tag 被静默跳过。

不碰原版与 Thaumcraft 本体生物——职责仅限上述 6 个外部 mod 与 2 个玩家名。

⚠️ mcmod.info 中 modid / name / version 全部是 ${modId} / ${modName} / ${modVersion} 占位符。实测 modid 来自 Java 常量 ModInfo.MODID = "ThaumcraftMobAspects"(ModInfo.java:5,驼峰), 而资源域与分类名都是全小写 thaumcraftmobaspects(语言文件在 assets/thaumcraftmobaspects/lang/)——这是本 mod 属于 modid ≠ 资源域 的情形。 版本号同样是构建期占位:ModInfo.VERSION = "GRADLETOKEN_VERSION", 由 replaceGradleTokenInFile = ModInfo.java 在构建时替换。

依赖:@Mod 声明 required-after:Forge@[10.12.2.1121,);required-after:Thaumcraft@[4.1.1,)。 依赖的 Thaumcraft 已收录,见 thaumcraft。 dependencies.gradle 另有一条未被任何源码引用的 runtimeOnly Baubles 依赖。

实体精华

  • 精华赋值与注册 - ThaumcraftEntity 的相等性只看实体名、creatureAspects 与 bossAspects 的数量语义、注册前的双重校验
  • 各 Mod 生物插件 - 6 个插件的规模表、三种实体名写法、233 处赋值里的重复与被注释掉的两处

配置

  • 实体精华配置文件 - 按 modid 分文件的 JSON 格式、postInit 六步顺序即优先级、guessModId 四级回退