Thaumic Boots

GTNH 的 Thaumcraft 4 靴子附属模组(作者 Alastor)。纯物品模组:注册 0 个方块、0 个多方块、0 个实体、0 个维度,内容全部是靴子与一枚奥术透镜,外加 14 条封包的网络同步和 6 个键位。

本 mod 最大的特点是注册完全依赖第三方模组是否安装:Config.setupItems() 只无条件注册 4 个物品,其余 13 个靴子全部在 ModHelperManager 驱动的 compat helper 里按 Loader.isModLoaded(...) && Config.xxxActive 双重判断注册。

项目 值
modid thaumicboots(VersionInfo.java:7 的 ModID 常量,非 gradle.properties)
源仓库 https://github.com/GTNewHorizons/ThaumicBoots.git
源 commit 8444b73(2026-09-01)
Minecraft 1.7.10 / Forge 10.13.4.1614(gradle.properties)
硬依赖 required-after:Thaumcraft(VersionInfo.java:10)
主类 thaumicboots.main.ThaumicBoots(@Mod 在 ThaumicBoots.java:18)
网络通道 thaumicboots(PacketHandler.java:13,VersionInfo.ModID.toLowerCase())
主源文件数 79
核心 ModLoader core.ThaumicBootsEarlyMixinLoader(gradle.properties 的 coreModClass)

物品(17,其中仅 4 个无条件存在)

无条件注册(4)

由 Config.setupItems()(Config.java:75-87)无条件调用。

物品 注册名 说明
奥术透镜 thaumicboots:ItemArcaniumInterfacer 唯一工具类物品,13 项配方全部以它作灌注催化剂
四季靴 thaumicboots:ItemSeasonBoots vis 折扣随真实日历在 3 / 6 间切换
圣诞精神靴 thaumicboots:ItemChristmasBoots vis 折扣随日历在 2 / 9 间切换
怠惰之靴 thaumicboots:ItemSlowBoots 唯一负移速靴,speedBonus = -0.035F

仅 Thaumic Exploration 在场时注册(2)

ExplorationsHelper.getItems()(ExplorationsHelper.java:48-52),需 Loader.isModLoaded("ThaumicExploration") && Config.explorationsActive。

物品 注册名 说明
流星彗星靴 thaumicboots:ItemMeteoricComet 无 super.setBootsData() 的纯换皮靴
冰霜流星靴 thaumicboots:ItemCometMeteor 四季靴的加强版参数

仅 Tainted Magic 在场时注册(2)

嵌套在 ExplorationsHelper.getItems() 内(ExplorationsHelper.java:54-60),需同时满足 Exploration 与 Tainted Magic。

物品 注册名 说明
虚空彗星靴 thaumicboots:ItemVoidComet 移速 0.215F * 3 = 0.645F
流星虚空靴 thaumicboots:ItemVoidMeteor 跳跃 0.88D(9 格)

仅 EMT 在场时注册(6)+ 与 Tainted Magic / Exploration 交叉(6)

EMTHelper.getItems()(EMTHelper.java:74-105)需 Loader.isModLoaded("EMT") && Config.emtActive,再按内层条件二次分流。全部继承 ItemElectricBoots,带 EU 储能。

物品 注册名 额外条件 maxCharge jumpBonus
电力虚空行者靴 thaumicboots:ItemElectricVoid + Tainted Magic 100,000 0.4675D
纳米虚空行者靴 thaumicboots:ItemNanoVoid + Tainted Magic 1,000,000 0.7425D
量子虚空行者靴 thaumicboots:ItemQuantumVoid + Tainted Magic 10,000,000 1.0175D
电力流星靴 thaumicboots:ItemElectricMeteor + Thaumic Exploration 100,000 0.5225D
纳米流星靴 thaumicboots:ItemNanoMeteor + Thaumic Exploration 1,000,000 0.7975D
量子流星靴 thaumicboots:ItemQuantumMeteor + Thaumic Exploration 10,000,000 1.1D
电力彗星靴 thaumicboots:ItemElectricComet + Thaumic Exploration 100,000 0.275D
纳米彗星靴 thaumicboots:ItemNanoComet + Thaumic Exploration 1,000,000 0.6325D
量子彗星靴 thaumicboots:ItemQuantumComet + Thaumic Exploration 10,000,000 0.9075D

注意彗星系的三档 tier 与虚空系不同:ItemQuantumComet 继承 ItemElectricBoots.setBootsData() 的 tier = 3(未被覆写),而 ItemQuantumVoid 显式设为 tier = 4。

方块 / 多方块 / 实体 / 维度

全部为零。Config.setupBlocks()(Config.java:73)是空方法体,全仓无 registerBlock 调用:

$ grep -rn "registerBlock\b" src/main/java
(仅 ClientProxy.java:48 的 RenderingRegistry.registerBlockHandler,是渲染器注册)

无 TileEntity、无实体注册、无 WorldProvider、无群系、无世界生成、无成就、无附魔。

研究(11 项,4 无条件 / 7 有条件)

完整网格坐标、页数、父项与精华需求见 研究页。

研究 ID 网格 (x, y) 条件
奥术制鞋术 TB_Core_Research (0, 0) 无条件,父项 THAUMIUM
季节魔法 TB_Seasonal_Boots (2, 0) 无条件,父项 TB_Core_Research
季节魔法稳定化 TB_Seasonal_Stabilized (4, 0) 无条件,父项 TB_Seasonal_Boots
独特魔法 TB_Unique_Boots (-2, 0) 无条件,父项 TB_Core_Research
虚空魔法 TB_Tainted_Core (3, 2) Tainted Magic,父项 VOIDWALKERBOOTS
人工魔法 TB_EMT_Core (-3, 2) EMT,父项 Electric Boots of the Traveller
人工虚空魔法 TB_EMT_Tainted_Compat (0, 3) EMT + Tainted Magic,父项三项
星空魔法 TB_Explorations_Core (0, -3) Thaumic Exploration,父项 METEORBOOTS + COMETBOOTS
组合星空魔法 TB_Explorations_Compat (0, -2) Thaumic Exploration,父项两项
组合虚空星空 TB_Explorations_Tainted_Compat (3, -2) Exploration + Tainted Magic,父项三项
人工星空魔法 TB_Explorations_EMT_Compat (-3, -2) EMT + Exploration,父项三项

其中 6 项带 setConcealed()。TB_Explorations_EMT_Compat 有 7 页且第 5–7 页与第 2–4 页完全重复(EMTHelper.java:428-434)。

配方(17 条,无一使用原版工作台)

CraftingManager.setupCrafting()(CraftingManager.java:5-23)整个方法体只有注释,所有配方走 Thaumcraft API:8 条在 ThaumcraftHelper,9 条在 EMTHelper。

配方 输入 输出
坩埚 thaumaturgicCombinator 奥术透镜 + 泰铑 四季靴 ×4
灌注 seasonalBoot 四季靴 + 烈焰火箭/墨水/书/铁剑/南瓜灯/霜冻法杖/树苗 四季靴
坩埚 slowBoot 怠惰之靴 + 旅行靴 怠惰之靴
坩埚 seasonalToChristmas 圣诞精神靴 + 四季靴 4 圣诞精神靴
灌注 voidMeteor 虚空行者靴 + 陨石靴 流星虚空靴
灌注 voidComet 虚空行者靴 + 彗星靴 虚空彗星靴
灌注 cometMeteor 彗星靴 + 流星靴 + 碎片(元 2) 冰霜流星靴
灌注 meteorComet 流星靴 + 彗星靴 + 碎片(元 1) 流星彗星靴
灌注 ×9 奥术透镜 + 7 材料 9 双电力靴

EMT 系配方的精华需求统一为 EXCHANGE 75 / MAGIC 50 / CRAFT 50 / SPACE 25 / BOOTS 25。

配置(8 项,其中 2 项无效)

见 配置。modules 类 5 项决定哪些兼容靴存在,boots 类 3 项控制微调步长与惯性抵消。

⚠️ Thaumcraft 与 GTNHLib 两项被读取赋值但全仓无任何读取点,玩家关掉它们不会有任何效果。

网络封包(14 条)

见 网络封包。7 组「请求 + 回执」严格交替,奇数 ID 发往服务端,偶数 ID 为服务端回应。

游戏设定(4)

条目 内容
配置 modules + boots 两类共 8 项,其中 Thaumcraft 与 GTNHLib 两项完全无效
研究页 独立分类 THAUMICBOOTS,11 项研究(4 无条件 / 7 有条件),6 项隐藏
节日与季节效果 按操作系统真实日期切换 vis 折扣、贴图与长跑系数,含 switch 缺 break 缺陷
网络封包 14 条封包,6 个键位对应 7 组「请求 + 回执」

键位(6 个)

BootKeys(BootKeys.java:24-57),默认键码全部是 Keyboard.KEY_NONE(未绑定),分类名均为 "Thaumic Boots",玩家须自行在选项中设键才生效。

键位 键名 作用
跳跃开关 keybinding.jumptoggle 切换跳跃加成
移速开关 keybinding.speedtoggle 切换移速加成
全方位开关 keybinding.omnitoggle 切换 omni 模式
惯性抵消开关 keybinding.inertiatoggle 切换惯性抵消
微调键 keybinding.incrementmodifier 提升 changeRateModifier
台阶辅助 keybinding.stepassist 切换自动上台阶

供其他 mod 调用的 API

thaumicboots.api 包下 9 个接口 + 3 个基类。核心是 ThaumicBootsAPI,以及接口 IBoots、ITBootJumpable、ITBootSpeed、ISpecialEffect、IPurifyingGear、IGrief、IComet、ICometMeteorMix、IMeteor。物品基类链为 ItemArmor → ItemBoots →(ItemElectricBoots / ItemVoidBoots),同时实现 Thaumcraft 的 IVisDiscountGear、IRunicArmor、IWarpingGear、IRepairable。

本 mod 没有的内容

以下经源码检索确认完全没有,故不建目录、不建条目:

  • 方块与多方块:Config.setupBlocks() 空实现;无 registerBlock、无 Block 子类、无 TileEntity、无 IInventory、无 Multiblock、无控制器类。
  • 实体:grep -rn "extends Entity\b\|registerModEntity" src/main/java 无输出。BootsEventHandler 只监听 EntityLivingBase 的事件,不生成实体。
  • 附魔 / 药水效果 / 成就:grep -rniE "Enchantment|Achievement|extends Potion" src/main/java 无输出。
  • 维度 / 群系 / 世界生成 / 结构:grep -rn "registerDimension\|extends WorldProvider\|extends BiomeGenBase\|IWorldGenerator" src/main/java 无输出。
  • Baubles 饰品:包 thaumicboots.item.baubles 下 3 个类(ItemPactRing、ItemRing、SilverRing)从不被任何代码引用,也无 registerItem。语言文件里的 item.ItemPactRing.name 是死键。dependencies.gradle 显式 exclude module: 'Baubles',说明 Baubles 支持已被主动移除。
  • 圣诞节护甲:ItemChristmasArmor 同样从不被引用,无注册。
  • 原版合成:CraftingManager 无可执行语句。

源码缺陷

  1. mcmod.info 指向错误的仓库。src/main/resources/mcmod.info 的 url 是 https://github.com/GTNewHorizons/thaumicinsurgence,description 是 “The latest addon for thaum 4, currently only adds the infusion interceptor”——这是从 Thaumic Insurgence 复制来的,本仓库是 Thaumic Boots。modid/name/version 字段本身是 ${...} 占位符,会被正确替换,所以缺陷只在 url 与 description。
  2. 语言文件混入他 mod 的键。en_US.lang 含 thaumicinsurgence.versioning.*(4 条)、thaumicinsurgence.config.*(4 条)、tc.research_category.THAUMICINSURGENCE、tc.research_name.TI_DeliciousKromer(一条带 “Kromer” 的恶搞文本)。本 mod 无任何代码读取这些前缀。
  3. 3 个已定义字段无任何读取点。Config.thaumcraftActive(Config.java:30)与 Config.gtnhLibActive(Config.java:40)被配置写入,但 TaintedHelper / ExplorationsHelper / EMTHelper 的判断都走 Loader.isModLoaded(...),从不读这两个布尔值。玩家在配置里关掉 Thaumcraft 或 GTNHLib 不会有任何效果。
  4. ItemPurpleVoidwalkerBoots 是死代码。位于包 thaumicboots.item.boots.unimplemented(包名自陈未实现),全仓无引用、无注册。语言文件仍有 item.ItemPurpleVoidwalkerBoots.name = “Altered Boots of the Purple Haze”(死键)。该物品在游戏中不存在。
  5. ItemElectricCometBoots 与 ItemMeteoricCometBoots 未调用 super.setBootsData()。ItemElectricCometBoots.java:9 的 setBootsData() 覆盖了父类却不调 super,因此 longrunningbonus、negateFall、waterEffects、steadyBonus 等字段停留在 Java 默认值 0 / false,而非 ItemBoots 基类设定的 0.165F / true。其中 negateFall = false 是它自己显式设的(唯一有意为之的),但 waterEffects 与 steadyBonus 的 false 属于意外继承失败——彗星靴因此没有免摔且不涉水效果。ItemMeteoricCometBoots 同理(ItemMeteoricCometBoots.java:11),它只覆写了 3 个字符串字段,其余全部落到 ItemBoots 的默认值,且自己没设 tier(继承基类的 0),jumpBonus 也留在基类的 0。
  6. Config.onConfigurationChangedEvent 比较的是 modName 而非 modID。Config.java:62 写 event.modID.equalsIgnoreCase(VersionInfo.ModName),即拿 "thaumicboots" 去和 "Thaumic Boots" 比,永远为 false,配置重载后不会保存。应为 ModID。
  7. 研究页重复。EMTHelper.java:428-434 中 explorationsEMT2..4 与 explorationsEMT5..7 指向完全相同的 3 个 InfusionRecipe 变量,同一个研究项里连出两遍相同配方页。
  8. Config.saveConfigs() 从不被调用。全仓无调用点;Config.java:69-71 是死方法。配置仅靠 Init() 末尾的 configuration.save() 落盘。