Thaumonomicon To JEI

Thaumonomicon To JEI

撒乌莫诺米孔配方页面上的JEI按钮——一键打开JEI,显示你正在查看的配方输出。

Thaumonomicon To JEI

一个适用于 Minecraft 1.12.2 的 Forge 模组,在神秘笔记(Thaumcraft 6)的配方页面上添加了一个 JEI 按钮:单击一下,JEI 就会打开并显示当前展示配方的产物。

下载

GitHub Release

功能

  • 在神秘笔记的任意配方页面右下角会出现一个小的 JEI 按钮
  • 点击它会在 JEI 中打开当前所查看配方的产物
  • 适用于神秘笔记展示的所有配方类型:
    • 奥术工作台(神秘术)配方
    • 炼金炉配方
    • 注魔配方(当产物为一个具体物品时)
    • 原版合成配方
  • 悬停按钮时会显示配方产物的名称
  • 仅客户端

需求

  • Forge 14.23.5.2860(Minecraft 1.12.2)
  • JEI 4.16.x
  • Thaumcraft 6.1.BETA26(以及其前置模组 Baubles)

工作原理

  • 与 FML 的 KeyInputEvent(当 GuiScreen 打开时永远不会触发)不同,此模组在神秘笔记打开时,挂钩 Forge 的 GuiScreenEvent.DrawScreenEvent.Post 来绘制按钮,并使用 GuiScreenEvent.MouseInputEvent.Pre 来检测点击。
  • 当前显示的配方通过 GuiResearchPage.shownRecipe 读取(通过一个小型、独立的反射调用),然后通过 Thaumcraft 内部使用的相同链条进行解析: CommonInternals.getCatalogRecipe → getCatalogRecipeFake → CraftingManager.getRecipe → ConfigRecipes.recipeGroups。
  • 解析产物遵循 Thaumcraft 自己的 addRecipesToList 逻辑(BluePrint、CrucibleRecipe、InfusionRecipe、IRecipe)。
  • 通过模组自身的 @JEIPlugin 打开 JEI(onRuntimeAvailable 缓存 IJeiRuntime),使用 createFocus(IFocus.Mode.OUTPUT, stack) + getRecipesGui().show(focus)。

已知限制

  • 产物不是具体物品的注魔配方(例如基于附魔的配方)不会显示按钮——它们无法表示为单个 JEI 物品。
  • 没有显示方块的多方块蓝图(BluePrint)不会显示按钮。
  • 当某个研究键分组了多个子配方时,会使用第一个可解析的产物。

从源码构建

./gradlew build

编译好的 jar 文件生成于 build/libs/ 目录,名称为 thaumonomicon_to_jei-1.12.2-<version>-forge.jar。

编译/运行游戏需要 Java 8(Gradle 守护进程在 JDK 17 下运行)。

许可证

本项目采用 LGPLv3 许可证。