JEI合成树

JEI合成树

为JEI配方界面添加递归合成树查看器。独立运行;安装AE2工具后,可集成实现一键样板编码与上传。

技术

概述

JEI Crafting Tree 为 JEI 配方布局添加了一个打开合成树操作。从单个配方开始,该树可以扩展选定的原料路线,将多个目标合并为一个全局计划,分配可用库存,考虑副产物,并生成有序的执行清单。

规划模型独立于 AE2。诸如 AE2 Utility 之类的可选后端可以添加精确样板提示、编码、上传、替换控制、可复用输入规则和机器标识,而无需将 AE2 作为本模组的硬性依赖。

核心能力

递归配方探索

  • 将 JEI 配方扩展为可导航的依赖树。
  • 支持普通图形和图层合并的材料视图。
  • 允许用户在每个输入处选择子配方或替代原料。配方选择和手动折叠状态会在树中不同深度出现的相同材料的所有可见实例之间同步。
  • 当 JEI 恰好暴露一个可用配方时,可以自动展开未解析的输入。
  • 检测递归路线,停止不安全的展开,高亮受影响的相关边和材料条目,并报告循环诊断信息,而不是无限递归。

全局多项目规划

  • 在一次会话中维护多个命名生产目标。
  • 在所有项目之间使用共享的全局材料账本。
  • 将一个分支或项目的过量生产物复用到另一个分支或项目中。
  • 将次级输出和副产物计入全局供给池。
  • 在整个规划层使用 long 数量,并在 Long.MAX_VALUE 处进行算术饱和处理。

配方语义

  • 导入 JEI 配方暴露的所有输出,其中一个作为焦点主要输出,其余作为次级输出。
  • 支持物品、流体、化学品和自定义 JEI 原料身份;非物品数量使用与物品堆叠相同的右下角数量角标样式。
  • 将 JEI 催化剂槽位和后端声明的可复用输入视为非消耗性需求。
  • 区分“此输出可合成”和“此精确选定的配方已有匹配的样板”。

可编辑的 AE2 样板草稿

当安装 AE2 和兼容后端(如 AE2 Utility)时,节点检查器包含一个基于 AE2 原生样板模式和槽位纹理的紧凑样板编辑器。AE2 仍然是可选的:当集成不可用时,不会创建或渲染该编辑器。

  • 为每个精确选定的配方创建一个可编辑草稿,并在该配方的重复出现之间共享该草稿。
  • 预览将发送以进行编码的确切输入、主要输出、次级输出、数量、替代方案和替换状态。
  • 通过分页的 3×3 输入/三输出视口和滚动条,支持高达 81 个输入槽和 27 个输出槽的 AE2 处理样板容量。
  • 允许用持有的物品替换处理槽,右键单击清除,或通过中键单击或 Ctrl + 滚轮 分配确切数量。
  • 循环选择合法的 JEI 替代方案,将次级输出提升为主要输出,移除不需要的副产物,清除处理草稿,并恢复原始配方快照。
  • 保持结构化合成草稿的配方安全性:其槽可以循环选择合法替代方案,但不能自由移除、替换或分配任意数量。
  • 在编码前显示脏、无效、移除输入、移除输出和更改主要输出的状态。
  • 对批量去重、验证、编码和上传使用编辑过的草稿,而不是不可变的 JEI 配方快照。
  • 首先执行轻量级客户端检查,并要求后端/服务器在消耗空白样板之前验证槽位限制、原料、数量和主要输出。

可选依赖:

  • AE2 Utility 1.6.0 或更新版本,作为面向 AE2 的外部后端,当安装且兼容时使用。
  • Just Enough Characters,用于总览搜索字段中的可选拼音匹配。

项目简介

JEI Crafting Tree 是面向 Minecraft 1.21.1 / NeoForge 的 JEI 配方规划扩展。它可以把 JEI 中选中的配方转换为可交互的递归配方树,并进一步建立多目标共享的全局生产计划。

模组本体不依赖 AE2。安装兼容后端后,可以在同一界面中获得精确样板检测、样板编码、样板上传、可复用输入判定、机器标识以及外部库存接入能力。

主要功能

  • 递归配方树:逐层展开原料配方,支持普通图形视图与同层材料合并视图;同一材料在不同深度出现时,会同步配方选择和手动折叠状态。
  • 全局材料账本:所有项目和分支共享库存、余料与副产物,避免按节点重复统计。
  • 多目标项目:可以建立多个命名目标、设置 long 类型目标数量,并在项目之间切换编辑。
  • 多输出与副产物:读取 JEI 暴露的全部输出,将次要输出重新计入全局供给。
  • 催化剂与可复用输入:JEI catalyst 槽位和后端声明的模具、工具、容器等不会按合成次数重复消耗。
  • 通用材料身份:支持物品、流体、化学品及其他 JEI 自定义 ingredient type,并保留 subtype 身份;非物品材料数量与物品一样使用右下角角标。
  • 替代材料策略:提供锁定、混用库存、库存最多、优先模组命名空间和严格组件五种策略。
  • 库存聚合:内置玩家背包、护甲、副手和当前容器;外部模组可以注册网络库存来源。
  • 计划报告:集中展示基础原料、库存分配、余料/副产物、循环依赖、执行清单、机器运行次数和路线比较。
  • 精确已有样板判断:区分“该输出可合成”和“当前选中的精确配方已有样板”;禁用已有样板展开后,会立即折叠已展开分支,并阻止手动选择、配方记忆或唯一配方逻辑再次展开。
  • 搜索与定位:支持材料、配方、@模组、#机器 搜索,Enter 定位下一个结果;安装 Just Enough Characters 后兼容其拼音匹配规则。
  • 节点详情与样板草稿编辑:右键节点可查看材料、数量、机器和已有样板状态。安装 AE2 与兼容后端后,详情面板使用 AE2 原生样板模式背景、槽位和控制图标,直接编辑最终要写入样板的输入、输出、数量与替换状态;未安装 AE2 时不创建也不绘制该区域。
  • 配方记忆:按父配方、节点路径、输入槽、材料身份、服务器/世界和整合包指纹隔离记忆,并兼容迁移旧记录。
  • 撤销与重做:覆盖配方选择、展开/折叠、替代材料和项目管理操作,最多保存 64 个会话内快照。
  • 悬浮材料面板:可固定材料清单,在其他界面中继续查看并跳转 JEI 配方或用途。
  • 外部后端 API:支持存储网络、精确样板、编码、上传、机器统计和库存来源扩展。

AE2 样板草稿编辑

节点详情中的样板区不是只读预览,而是批量编码与上传使用的最终草稿:

  • 相同精确配方在树中多次出现时共享同一份草稿,任一位置的修改都会同步生效;
  • 处理样板支持最多 81 个输入槽和 27 个输出槽,通过 3×3 输入、三个输出的可滚动视窗编辑;
  • 左键可轮换 JEI 提供的合法备选原料,手持物品时可填入或替换处理样板槽位;
  • 右键可清除处理样板槽位,中键可输入精确数量,Ctrl + 滚轮 可快速调整数量;
  • 可切换主要输出、把次要输出提升为主输出、删除不需要的副产物、清空草稿并恢复原始配方;
  • 可单独设置物品替换、流体替换和输入顺序保留状态;
  • 合成、锻造和切石等结构化配方保持配方安全,只允许切换合法备选,不允许自由删除、替换或修改数量;
  • 编辑器会明确提示草稿已修改、无效、删除输入、删除输出或主要输出变化;
  • 批量收集按最终草稿指纹去重,编码和上传严格使用草稿内容,不会退回未修改的 JEI 配方快照;
  • 客户端先执行轻量校验,兼容后端与服务端还会再次检查槽位上限、材料类型、数量和主要输出,校验失败时不会消耗空白样板。

删除副产物只影响最终编码草稿,不会篡改配方树用于材料规划的真实产出与余料语义。

可选集成:

  • AE2 Utility 1.6.0 或更新的兼容版本,可作为 AE2 功能后端。
  • Just Enough Characters,可为总览搜索框提供拼音匹配。