Skip to content

About

GTNH / Minecraft 1.7.10 模组:批量生成 AE2 编码样板,支持配方过滤、缓存与无线取材。

Topics

Resources

Stars

16 stars

Watchers

0 watching

Forks

Repository files navigation

AE2 Pattern Generator

AE2 Pattern Generator 是一个专为 Minecraft 1.7.10 (如 GregTech New Horizons 等注重复杂合成的模组环境) 开发的实用辅助模组。 其核心功能在于基于可配置的过滤系统与平衡机制,将 GregTech 机器合成配方批量导出为标准的 AE2 编码样板。


✨ 核心特性

1. 一次性批量生成样板

可按机器 RecipeMap(如 assembler、implosion_compressor)批量扫描配方,并转换为 AE2 Processing Pattern。物品输入/输出与流体输入/输出都在同一流程内处理。

2. 过滤规则够细,减少无用样板

生成前可通过多层过滤减少冗余:

  • 矿辞正则匹配: 对输入/输出的矿物词典条目做正则筛选。
  • 黑名单过滤: 按规则排除指定输入或输出。
  • 强制替换: 按配置将指定材料统一映射(例如 ingotCopper -> dustCopper)。
  • 严格电压匹配: 只保留与目标电压层级(如 HV、EV)一致的配方。

3. 支持从 NEI 直接拖拽填充筛选条件

所有筛选输入框都支持从 NEI 直接拖拽物品进行填充。拖入后会先按默认优先级自动写成显式语法;如果该物品同时存在多种可用信息,输入框右侧会出现一个轻量切换按钮,可在 ID / 矿辞 / 显示名 之间切换。

4. 生成前先做消耗校验

生成请求会先校验 Blank Pattern 库存,再执行扣除。支持优先从已绑定的 ME 网络取材,不足时回退到玩家库存。数量不足会直接拒绝请求并给出提示。

5. 先构建配方缓存,再进行预览或生成

Preview Count 与 Generate 现在都只读取服务端持久化配方缓存。第一次使用、重启后,或模组/配置发生变化后,需要先在主界面点击 Cache / 构建缓存 按钮。缓存构建会在后台执行,并通过聊天栏返回进度和统计信息。

6. 先写入虚拟仓储,再统一导出

生成结果先写入服务端虚拟仓储,不直接落地。可在 GUI 中查看、删除、清空,再批量导出到目标容器(箱子、AE2 接口等)。

7. 支持无线绑定和远程取材

支持与 AE2 网络无线绑定。完成绑定后,可在生成时直接使用网络内空白样板,减少手动物料搬运。


📌 主要更新内容

  1. 引入新的持久化配方缓存方式,首次使用、重启后或模组/配置发生变化后,可在主界面手动构建或刷新缓存。
  2. Preview Count 与 Generate 统一改为基于服务端缓存执行,避免每次请求都重新扫描大型配方表。
  3. Forge 配置文件生成时改为中英文双语注释,便于整合包、服务端和玩家共同维护。
  4. 缓存构建会返回进度与统计信息,便于确认当前缓存是否可用以及定位问题。

📝 待办列表

  1. 建立统一 Forge 配置类
  2. 继续考虑更多的平衡性调整

🎮 操作指南

交互方式 功能说明
右键(对空气) 打开主配置终端 — 填写设备 ID、正则过滤规则、指定电压等并提交生成请求。
Shift + 右键(对空气) 打开存储管理器 — 翻阅并管理当前存储在虚拟节点的样板数据。
Shift + 右键(对方块) 方块检测 / 条件导出 — 优先检测目标方块(含 GT 主方块配方信息);若目标为可写入容器,则将虚拟样板批量导出到该容器。

此外,玩家可将光标悬停在物品上按下 Shift 键调出操作提示。系统同样提供用于控制台执行或 OP 自动化触发的命令节点:/patterngen。

首次使用、重启后,或模组 / 配置发生变化后,请先在主界面点击 Cache / 构建缓存,待缓存完成后再使用 Preview Count 或 Generate。


🔎 过滤规则说明(统一显式语法)

在生成样板前,你可以通过多层过滤快速缩小目标配方。
本模组的匹配机制统一遵循以下规则:

  • 默认不区分大小写
  • 默认包含匹配(类似 find,不是整串全等)
  • 留空或填 * 视为不启用该条件
  • 多个过滤条件是 AND 关系:必须全部通过才会保留配方

1. 所有筛选字段都使用同一套语法

以下这些字段现在完全共用同一套匹配逻辑:

  1. 输出筛选
  2. 输入筛选
  3. NC 筛选
  4. 输入排除
  5. 输出排除

必须使用括号明确标注类型:

语法 含义 示例
[id] 按物品 ID 匹配,忽略 meta [8119]
[id:meta] 按物品 ID + meta 精确匹配 [8119:12]
(regex) 仅按矿辞匹配 (dustCopper)
{regex} 仅按显示名匹配 {Copper Dust}
* 关闭该字段的筛选 *

支持在同一字段中写多个显式 token,之间可用空格、,、; 或 | 分隔:

  • [8119] [8119:12]
  • (dustCopper)|(dustTin)
  • {铜粉} {Copper Dust}

正则只对对应类型生效:( ... ) 只查矿辞,{ ... } 只查显示名。

2. 匹配顺序与性能

统一显式语法的目的之一是避免在大配方表中过度解析物品信息:

  1. [id] / [id:meta] 只比较 ID 和 meta,不查矿辞,不取显示名。
  2. (regex) 只查询矿辞。
  3. {regex} 才会解析显示名。

这样可以显著降低在 GTNH 大型配方表中使用筛选器时的卡顿风险。

3. 裸文本不再生效

  • dustCopper
  • 铜粉
  • 8119:12

以上写法在这 5 个筛选字段里都不会参与匹配。如果要生效,必须改写成:

  • (dustCopper)
  • {铜粉}
  • [8119:12]

4. 中文匹配说明(显示名)

  • 机制上支持中文匹配:{...} 内部使用 Java 正则,对中文字符可正常匹配。
  • 实际命中取决于服务端语言环境:过滤在服务端执行,使用服务端拿到的显示名文本。
  • 若服务端显示名不是中文,你输入 {铜粉} 可能匹配不到。
  • 需要跨环境稳定匹配时,优先使用 矿辞 或 [id] / [id:meta]。

5. 支持从 NEI 拖拽自动填充

以下 5 个筛选字段都支持把 NEI 里的物品直接拖到输入框内:

  1. 输出筛选
  2. 输入筛选
  3. NC 筛选
  4. 输入排除
  5. 输出排除

拖入后会按以下优先级自动写入当前输入框:

  1. 有 id 且有 meta 时,填入 [id:meta]
  2. 只有 id 时,填入 [id]
  3. 没有可用 id 但有矿辞时,填入 (矿辞)
  4. 上述都没有时,填入 {显示名}

如果该物品还同时具备其他可用来源,右侧切换按钮会保留这些候选项:

  • 左键切换到下一个来源
  • 右键切换到上一个来源

这样既保留了拖拽即填充的速度,也允许你在默认值不合适时快速改成矿辞或显示名。 本方法适用于单个物品进行过滤,当需要使用正则时,更推荐手动填写。


🚀 部署与安装

  1. 从 Releases 页面获取最新的构建产物 (.jar 文件)。
  2. 将其放置于客户端或服务端的 mods 路径下后启动应用。

🛠️ 构建源码

本项目基于 RetroFuturaGradle (RFG) 系统开发:

# 增量构建类文件
./gradlew classes

# 执行代码风格标准化 (修复 CI 潜在报错)
./gradlew spotlessApply

# 全量构建发布版本
./gradlew build

编译产物将被输出至 build/libs 目录下。


📜 更新日志

v1.5 (2026-03-14)

  • 新增: 引入新的持久化配方缓存方式,主界面新增 Cache / 构建缓存 工作流。
  • 优化: Preview Count 与 Generate 统一改为读取服务端缓存,首次使用、重启后或模组 / 配置变化后需先构建或刷新缓存。
  • 优化: 缓存构建会输出进度与统计信息,便于确认缓存状态。
  • 优化: 生成的 Forge 配置文件注释改为中英文双语说明。
  • 说明: 如遇任何 bug,请前往 GitHub Issues 提交反馈。

v1.4.6 (2026-03-14)

  • 优化: NEI 拖拽来源切换按钮的文字改为在按钮区域内居中显示,切换来源时更易读。
  • 修复: Preview Count 按钮恢复为预览筛选结果数量,不再误触发实际生成请求。
  • 优化: 调整筛选器执行顺序并复用物品匹配缓存,降低大配方表筛选时的重复开销。

v1.4.5 (2026-03-12)

  • 新增: 所有筛选输入框支持从 NEI 直接拖拽物品填充,自动转换为统一显式语法。
  • 新增: 拖拽填充时会优先写入 [id:meta] / [id],无可用 ID 时回退为 (矿辞) 或 {显示名}。
  • 优化: README 与 release 说明补充了 NEI 拖拽填充的使用方式。

v1.4.4 (2026-03-08)

  • 修复: 修复无冲突样板生成请求在 GUI 中被重复触发,避免首次生成成功后又立刻提示仓储中已有样板。
  • 优化: GUI 与 tooltip 中的筛选文案统一改为“所有筛选字段”,并同步显式语法说明。
  • 优化: README 的筛选规则说明与当前实现保持一致,明确所有筛选字段共用统一显式语法。

v1.4.3 (2026-03-05)

  • 修复: 修复 gt.recipe.furnace 与 gt.recipe.microwave 无法读取到配方的问题(GT 动态配方不再被 getAllRecipes() 漏掉)。
  • 优化: 配方表匹配新增兼容 smelting 等 NEI transfer id,支持通过熔炉常用标识检索到对应 GT 配方表。
  • 优化: 配方表匹配新增旧版 RecipeMap 标识兼容(legacyIdentifier)以提升历史配置可用性。

v1.4.1 (2026-02-23)

  • 修复: 修复 Shift + 右键 打开存储界面时服务端崩溃 (NoClassDefFoundError: net/minecraft/client/gui/GuiScreen)。
  • 修复: 将存储详情界面的客户端逻辑下沉到 ClientProxy,避免服务端路径加载客户端类。
  • 兼容: 确认客户端与服务端同时安装时可正常打开 GUI 101/102,不再触发侧别加载错误。

v1.3.6

  • 重构: 重构冲突配方选择界面,优化冲突配方的批量展示与交互流程。

v1.3.5

  • 修复: 修复滚轮滚动导致的空指针异常 (NPE) 闪退。
  • 修复: 修复高分辨率/放大字体下标题自动换行的问题。
  • 优化: 全面引入 GTNH ModularUI (v1.3.1) 框架重构所有 GUI。
  • 优化: 按钮现在具有标准的 Minecraft 三维边框贴图。

v1.3.4

  • 新增: 交互式配方冲突选择功能 — 当多个配方产出同一产物时,现在会弹出 GUI 供玩家手动挑选。
  • 新增: 下拉框滚动支持 — 电压选择界面现在支持鼠标滚轮滚动并带有视觉指标条。
  • 优化: 完善了 AE2 现代风格界面体验与代码逻辑重构。

v1.3.3

  • 新增: 无线提取功能支持 — 可通过 ME 安全终端绑定网络并自动从网络中提取空白样板。
  • 优化: 适配 GTNH 版 AE2 rv3 API 兼容性,优化代码结构与异常处理。

v1.3.2

  • 修复: 修复液滴样板为负数的错误

v1.3.1

  • 修复: 电压等级过滤算法边界值错误,EU 值为 33, 129, 513 等边界值时会被错误归类
  • 新增: 补全 GTNH 完整电压等级支持 (UHV, UEV, UIV, UMV, UXV)
  • 优化: 电压等级计算算法改用阈值递增方式,确保边界值正确匹配

v1.2.1

  • 新增矿辞替换规则配置文件支持
  • 新增电压等级精确过滤功能
  • 优化 GUI 界面显示

v1.1.0

  • 新增虚拟仓储系统
  • 新增样板预览与详情查看
  • 新增批量导出到容器功能

v1.0.0

  • 初始版本发布
  • 支持批量编码 GT 配方为 AE2 样板
  • 支持矿物词典正则过滤
  • 支持黑名单过滤

📄 许可证

本项目依据 MIT License 许可协议开源发布。

About

GTNH / Minecraft 1.7.10 模组:批量生成 AE2 编码样板,支持配方过滤、缓存与无线取材。

Topics

Resources

Stars

16 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages