GTNH-TC-Wands

[!INFO] Git Commit: 8c1fd76 | Updated: 2026-10-01(首次源码通读)

GTNH-TC-Wands(modid gtnhtcwands)是 Minecraft 1.7.10 的 配方改写 + API 库。它把 Thaumcraft 法杖的合成从「固定配方」换成 「按 GT 电压等级动态计算造价」的系统。

内容统计:0 方块、0 自有物品、0 实体、0 配方条数意义上的新增配方。 产出物品是 Thaumcraft 自己的 itemWandCasting。 本 mod 实际注册的是 2 条动态奥术配方(杖 / 权杖), 并对外发布 com.gtnewhorizons.tcwands.api 整个包作为 API。

命名与注册约定(审计要点)

  • modid = gtnhtcwands(TCWandsMod.java:19)。 ⚠️ 三处命名互不相同:仓库目录 / modName 是 GTNH-TC-Wands, Java 包名是 com.gtnewhorizons.tcwands,而 modid 是 gtnhtcwands。 mcmod.info 写的是构建期占位符 "modid": "${modId}", 真实值只出现在两处:TCWandsMod.java:19 与 gradle.properties 的 modId = gtnhtcwands。
  • ⚠️ 第二处构建期占位符:TCWandsMod.java:20 public static final String VERSION = "GRADLETOKEN_VERSION"; —— 源码里的 VERSION 不是版本号,是 Gradle 构建时替换的占位符。 读源码得不到真实版本,必须读构建产物。
  • gradle.properties:minecraftVersion = 1.7.10、 forgeVersion = 10.13.4.1614、apiPackage = api、 usesMixins = false、coreModClass =(空)、channel = stable。

工作机制(一句话)

  1. preInit 打印 banner(:34-38)
  2. postInit → TCWandAPI.removeTCWands(): 从 ThaumcraftApi.getCraftingRecipes() 中 移除所有 ArcaneWandRecipe 与 ArcaneSceptreRecipe
  3. register(FMLPreInitializationEvent 的 PREINIT 阶段,:40-41): GTWandRegistry.register() 把 10 种原版杖身 + 最多 21 种附属杖身 与 19 种端盖登记进本 mod 的包装器
  4. TCWandAPI.makeWands() 注册 2 条动态配方

⚠️ 第 2 步是破坏性的:任何用 ArcaneWandRecipe 注册杖配方的模组 (本 mod 未检测的)其配方会被删掉且不补回。 TCWandsMod.DEPENDENCIES 里 after:ChromatiCraft; 后跟的源码注释直言 「ChromatiCraft is non-supported content」。

配方条目

依赖声明

TCWandsMod.DEPENDENCIES(:22-32):

类型 modid 备注
required-after Thaumcraft 硬依赖
required-after gregtech 硬依赖(GTTier 直接 import Materials)
required-after TwilightForest 硬依赖(4/8 档导体来自它)
required-after dreamcraft ⚠️ 在源码中是注释掉的,注释写「will be automatically uncommented while building」
after ForbiddenMagic / ThaumicTinkerer / BloodArsenal / TaintedMagic / thaumicbases / ThaumicExploration 软依赖(顺序保证)
after ChromatiCraft 软依赖,但 CompatibleMods 不处理它

⚠️ CompatibleMods 枚举只含 6 项(FM/TT/BA/TM/TB/TE), 与 DEPENDENCIES 的 8 个 after: 并不一一对应。

审计状态

  • 本页 6 条目已于 2026-10-01 全量回源码逐条核对。
  • 本 mod 无自有方块/物品/实体,故维度按配方改写面与API 面划分, 非内容占位。所有数值均直接读自源码实参,未做外推。