Thaumic Insurgence

[!INFO] Git Commit: 77193fa (tag 0.4.1) | Updated: 2026-10-01

Thaumic Insurgence 是 GTNH(GregTech New Horizons)整合包中针对 Thaumcraft 4 的附属模组,作者为 Alastor,仓库 GTNewHorizons/thaumicinsurgence。

属性 值
modid thaumicinsurgence
名称 Thaumic Insurgence
Minecraft 1.7.10
Forge 10.13.4.1614
硬依赖 required-after:Thaumcraft
作者 Alastor

[!WARNING] 本 mod 处于早期开发阶段(版本 0.4.1)。mcmod.info 中的官方描述是 “The latest addon for thaum 4, currently only adds the infusion interceptor”。除灌注拦截器外,多数内容为半成品:存在渲染 ID 占位符、TileEntity 注册错配、以及带俚语的调试代码。详见各条目「已知缺陷」章节。

依赖关系

本 mod 硬依赖 Thaumcraft,并通过以下 Thaumcraft 接口实现全部功能:

  • 继承 thaumcraft.common.blocks.BlockStoneDevice、thaumcraft.common.tiles.TilePedestal、thaumcraft.common.items.ItemSanitySoap、thaumcraft.common.items.armor.ItemGoggles、thaumcraft.common.items.wands.ItemWandCasting
  • 实现 IGoggles / IRunicArmor / IRepairable / IVisDiscountGear / IRevealer / IWarpingGear 接口
  • 调用 ThaumcraftApi.addCrucibleRecipe()、ResearchCategories.registerCategory()
  • 读取 Thaumcraft 的 Config.potionWarpWardID / potionTaintPoisonID / potionVisExhaustID(来自 thaumcraft.common.config.Config)

相关 wiki 条目:Thaumcraft API、Thaumcraft。

方块列表

共 6 个已注册方块,全部继承自 Thaumcraft 的 BlockStoneDevice 或标准 Block/BlockContainer。

物品列表

共 6 个已注册物品。本 mod 不注册任何合成配方(见「游戏设定」说明)。

研究列表

注册独立研究分类 THAUMICINSURGENCE(图标 textures/items/silverwood_filter.png,背景 textures/gui/eldritch_bg.png),共 6 页。

游戏设定

本 mod 只有一个配置项:modules/Thaumcraft(布尔,默认 true),由客户端配置界面 ModGuiConfig 暴露。

[!CAUTION] 该开关被写入但从未被读取——grep -rn "thaumcraftActive" src/ 仅命中 Config.java:37(声明)和 Config.java:126(赋值),无任何消费点。因此切换它不会改变模组行为。不足以单独建立 setting/ 维度。

同样地,没有任何合成配方:CraftingManager.setupVanillaCrafting() 整个方法体被注释掉,CommonProxy.postInit() 调用它却什么都不注册。所有物品只能通过研究页或坩埚配方获得。

本 mod 没有的维度

以下内容经源码扫描确认不存在,故不建目录:

维度 验证方式 结果
实体 / 生物 grep -rnE 'registerEntity|EntityLiving|extends Entity[A-Z]' 0 处注册;EntityLivingBase 命中全部为 vanilla/MC 类型引用
多方块结构 grep -rlE 'Multiblock|FormationController|IMultiblock' 0 文件
附魔 grep -rnE 'Enchantment' 仅消费 TC 灌注附魔配方,未注册任何自有附魔
Buff/Debuff grep -rnE 'registerPotion|Potion.registerPotion' 0;所有 PotionEffect 均为 vanilla 或 Thaumcraft 既有 ID
世界/维度 grep -rlE 'registerDimension|WorldProvider|DimensionManager' 0 文件
热键 grep -rlE 'KeyBinding' 0 文件
群系 grep -rlE 'BiomeGen|BiomeProvider' 0 文件
结构生成 grep -rlE 'Ore|WorldGen' 仅 2 文件命中且非世界生成器
成就 grep -rlE 'Achievement' 0 文件
物品效果 IPurifyingGear 仅 ItemBIGSHOT2 实现,而该物品未注册;EventHandlerRunic 的纯净度/符文 tooltip 对所有可得物品均不触发
指令 grep -rlE 'ICommand|CommandBase' 0 文件

未注册的类(源码中已存在但无法获得)

以下类在仓库中有完整实现,但从未在 Config.setupBlocks() / Config.setupItems() 中注册(grep 显示 0 处外部引用),因此游戏中不存在,不建条目:

类 类型 说明
BlockInsurgentDevice 方块 0 处外部引用
BlockStabilizerTesting 方块 0 处外部引用
BlockDimensionalTeleporterBase 方块 0 处外部引用
ItemBIGSHOT2 物品 实现 IPurifyingGear 等 5 个接口,未注册
ItemRedCrown 物品 0 处外部引用(与已注册的 ItemEightBitRedCrown 平行)
ItemResource / ItemMiscResources 物品 后者注册语句已被注释(Config.java:105)
ItemPactRing / ItemRing / SilverRing 物品 Baubles 饰品,SilverRing 0 处引用
TileEntityStabilizerTesting / TileEntityDimensionalTeleporterBase TileEntity 随对应方块一并未启用
TileEntityPedestalAlpha TileEntity 已被注册,但方块实际创建的是 TC 的 TilePedestal,故永不实例化

关键源码缺陷汇总

  1. TileEntity 注册错配(Config.java:135-143):matrixAlpha 被注册为 TileEntityInfusionPillarAlpha,pillarAlpha 被注册为 TileEntityInfusionMatrixAlpha——两者互换。
  2. 渲染 ID 占位符(Config.java:150-154):blockStoneDeviceRI/TwoRI/ThreeRI 硬编码为 -1/-2/-3,仓库中无对应渲染器注册代码;且三个 Alpha 方块的 registerBlockIcons() 均为空。
  3. 研究页从未注册 + 前置自引用(ThaumcraftHelper.java:414 与 :398):第 414 行 ResearchCategories.addResearch(redCrownPage) 整行被注释(// TODO: actually implement this feature.),同方法其余 5 个研究页均正常注册——只有这一条没进研究树,玩家在游戏里根本看不到它;即便将来放开注册,其 :398 的 setParents("TI_RedCrown") 又是把自身设为前置,必须一并修。
  4. 配置监听失效(Config.java:75):event.modID.equalsIgnoreCase(VersionInfo.ModName) 应为 VersionInfo.ModID——拿 modid 与显示名 “Thaumic Insurgence” 比较,恒不匹配。
  5. 死代码:ItemAlastorsWand.fitInfusionAltar() / replaceInfusionAltar() 无任何调用方,其中 tis.active = true 的激活逻辑永不执行。
  6. 创造模式缺失(BlockInfusionPillarAlpha 构造器):setCreativeTab 被注释,灌注柱无法从创造模式取得。
  7. 信息泄露:ItemAlastorsWand 与 ItemThaumicInterfacer 在右键矩阵时,把 getAllUsernames()[0] 直接发到聊天栏。
  8. 无限自愈:ItemEightBitRedCrown 在 onUpdate 与 onArmorTick 两处执行 damageItem(-1, ...),ItemBIGSHOT 一处——两件护目镜均永不损坏。
  9. modid 为构建期占位符:VersionInfo.java 中 ModID = "GRADLETOKEN_MODID",字面量并非真实 modid;真实值由 gradle.properties 的 modId = thaumicinsurgence 在编译期替换(mcmod.info 用 ${modId})。