WarpTheory

[!INFO] Git Commit: edfce4a | Updated: 2026-10-02

WarpTheory 是一个 Thaumcraft 4 附属模组:让玩家的「曲曲值(Warp)」 累积到一定量后,周期性触发恶作剧式的异常事件 —— 假雨、凋灵、 物品栏打乱、假 Discord 提示音等。

  • modid: WarpTheory(首字母大写)
  • 资源域: warptheory(全小写,由 modID.toLowerCase(Locale.ENGLISH) 得出)
  • 包根: shukaro.warptheory
  • 版本: GRADLETOKEN_VERSION(构建期常量)
  • 目标版本: Minecraft 1.7.10 / Forge 10.13.4.1614
  • 作者: Shukaro、thegreatunclean

「曲曲」是什么 —— 不是传送

⚠️ 本模组与传送、空间理论、维度旅行毫无关系。

「Warp」在此指神秘学/Lovecraft 式的扭曲值 / 疯狂值(概念源自 Thaumcraft 的 Warp 设定),玩家曲曲值过高会遭遇各种「异常现象」。 模组名 WarpTheory 中的 “Theory” 指异常理论, 不是任何物理或空间理论。

全模组没有任何传送门、维度、空间扭曲机制。 唯一与「位移」沾边的是 BLINK(random teleport,门槛 130), 它只是把玩家随机瞬移当作恶作剧,而非提供传送服务。

硬依赖(3 个)

@Mod 注解声明:

dependencies = "required-after:Forge@[10.13.2,);required-after:Baubles;required-after:Thaumcraft@[4.2.3.5,);"
依赖 版本约束 用途
Forge [10.13.2,) 基础
Baubles 无版本约束 两件护符挂在饰品槽
Thaumcraft [4.2.3.5,) 9 条研究、全部配方、曲曲/护盾概念

⚠️ mcmod.info 漏报了 Baubles:其 dependencies 数组只有 ["MinecraftForge", "Thaumcraft"]。实际依赖必须以 @Mod 注解为准。

WarpEventHandler 还 import static 了 Thaumcraft 的两个配置字段 (Config.potionWarpWardID、Config.wuss), 从代码层面锁死了 Thaumcraft 依赖。

关键陷阱:注册用枚举 + 驼峰/点号混用

陷阱 表现
枚举注册 50 个曲曲效果是 WarpEventRegistry 的枚举常量,其中 11 个用 lambda(warp -> new WarpBuff(…))而非方法引用 —— 数 WarpXxx::new 会少算
死类 WarpFakeBlock 在磁盘上但枚举从不引用,doEvent 恒 return false
注册名混用 物品注册名用 getUnlocalizedName() → warptheory.cleanser(点号,modid 重复出现);方块用驼峰 blockVanish
常量名误导 ITEM_PORTABLE_SHOWER(「便携式淋浴」)= 曲曲护符;ITEM_LITMUS(石蕊)= warptheory.paper;ITEM_POTION = 遗忘药水
实体数 7 个实体类,但只注册 5 个(2 个是粒子 FX)
配置键名 50 个效果各生成 2 个配置项,键名用 name 显示名而非枚举常量名(allowFakeBoomEffect、allowDeafEffect…)

⚠️ 没有多方块

全模组只有 1 个方块(blockVanish)与 1 个 TileEntity。 全仓 grep 以下模式全部零命中:

模式 命中
ForgeMultipart / multipart 0
IMultiblock / MultiBlock 0
createStructure 0

即无任何多方块结构 —— 不存在几×几×几、控制器、 可否旋转拆除等字段。见 虚空方块。

注册内容总表

类型 数量 说明
曲曲效果(枚举) 50 22 上游 + 25 GTNH + 3 需 GregTech
方块 1 blockVanish(无配方,效果产物)
TileEntity 1 tileEntityVanish
物品 7 2 净化器 + 2 护符 + 3 消耗品
实体(已注册) 5 2 个自定义 Renderer
实体(未注册 FX) 2 直接 spawnEntityInWorld
研究 9 7 WTResearchItem + 2 FakeResearch
配方(默认分支) 10 7 处 put × 4 坩埚循环;另一分支同构
数据包 7 +1 接口 IWarpPacket
指令 1 /warptheory(OP 或创造模式)
研究分类 1 WT_Category

曲曲效果

物品

方块与实体

配方与研究

  • Warp 配方 - 全为 Thaumcraft API;含配方键冲突缺陷
  • Warp 研究 - 9 条研究与 5 件默认隐藏

设定与命令

已知源码缺陷

# 位置 问题
1 WarpRecipes.init()(WarpWardAmulet 块) 传给 Thaumcraft API 的研究键写成 ITEM_PURE_TALISMAN(应为 ITEM_PORTABLE_SHOWER),与 PureAmulet 重复;且产物写成 itemAmulet → 曲曲护符无任何配方
2 handlers/warpevents/WarpFakeBlock.java 完全死类:全仓仅自引用,doEvent 恒 return false
3 WarpEventRegistry(Phase 无关) 50 个常量中 11 个用 lambda,按方法引用计数会少算 11
4 WarpTheory.java(@Mod)vs mcmod.info 依赖声明不一致:注解含 Baubles,mcmod.info 漏报
5 BlockVanish 构造器 Material.rock 配 Block.soundTypeGlass 脚步声,材质与音效故意不一致
6 WarpTheory.preInit 名字表释放失败被 catch (Exception e) { e.printStackTrace(); } 吞掉,normalNames 保持 null 且无日志级错误
7 WarpTheory.mainTab 静态字段在类初始化期用 StatCollector.translateToLocal 求值,语言未就绪时标签名退化为键名
8 WarpCommand.getCommandUsage 只写 /warptheory <event> [player],漏掉实际支持的 print / purge 子命令

外部依赖

除上表 3 个硬依赖外,下列为可选集成, 均不在本 wiki 收录范围(relation.md 无对应行), 故不建分类、不建前向引用:

依赖 用途 缺失时
gregtech 且 IC2NuclearControl GREGTECH_FAKE_SOUND 效果 效果静默不创建(无日志)
IC2NuclearControl 核设施音效资源 同上

Baubles 与 Thaumcraft 是 @Mod 声明的硬依赖, 但同样不在本 wiki 收录范围,故不建分类。