AE2 Recursion 使用文档
递归 / 自增配方的黑盒合成器。把会成环的 AE2 样板塞进递归代理合成器,算出净变换后挂到 ME 上,终端里当普通配方下单。
说人话:编写样板,本模组通过算法算出实际消耗/产出,算好补充好催化剂=>下单!
反馈邮箱:service@skymirror.top(请附日志)
1. 这是什么
原版 AE2 遇到 1A + 1B → 2A 这类循环/自增配方会算爆或算不出来。
本模组提供 递归代理合成器:
- 接收 AE2 已编码样板
- 检测样板之间的环
- 算出净变换(净产出 / 净消耗 / 种子)
- 挂到 ME 网络当一条可下单配方
例:1A + 1B → 2A 的净变换是 消耗 1B,净产出 1A;A 是催化剂,要 1 个种子。
2. 环境要求
| 版本 | 环境 | 状态 |
|---|---|---|
| 1.20.1 | Forge 47.3+ / AE2 15.4.10+ | 支持(GTL 最新版、GTO 0.5.6 Beta) |
| 1.21.1 | NeoForge 21.1+ / AE2 19.2.17+ | 支持 |
可选附属:
- Applied-Mekanistics — 化学品样板
- GregTech / GTO — 机配方、虚拟催化剂
- Applied Flux — ME 网络扣 FE
- Jade / GuideME — 提示与手册
3. 快速上手
- 准备至少25个递归代理机械方块+1递归代理合成器,摆成333中间空心,找一个面中间放递归代理合成器,并将主方块接入ME网络(无线也行)
- 找环:一组样板构成
1A+1B=2A之类的递归。 - 原样编码:在 AE2 样板终端编码,催化剂、副产物都写上,不要省。
- 放入代理:样板插进递归代理合成器(只收 AE2 已编码样板)。
- 看实际消耗/产出:
- 净产出 / 净消耗 / 种子
- 补充种子:点按钮从 ME 把催化剂扣进机器。种子是代价,禁止取出。
- 状态 = 合成就绪 → 终端下单。
悬停物品按住 G 可打开模组内 GuideME 手册。
4. 样板怎么写
必须
- 用 AE2 样板终端(或 JEI/EMI +)编码的已编码样板
- 与真实世界配方一致:产物、原料、数量都对
- 催化剂(包括GT的虚拟物品)不要省(含流体/虚拟物品),缺 key 会被拒
- 副产物按实际配方写
会被拒
- 非 AE2 样板
- 伪造产物、删催化剂
- 与注册的配方对不上
界面顶部会提示「样板与世界配方不一致」;服务端日志:
[AE2Recursion][verify] reject pattern INVALID_IO patternIn=... patternOut=... closest=...
GTO 虚拟催化剂
GTO 会把模具/纳米催化剂编码成:
gtmthings:virtual_item_provider{m:"gtocore",n:"infuscolium_nanites"}
- 校验时解析成实物 key(
gtocore:infuscolium_nanites)对表 - 每个虚拟项 → 种子区 1 个实物 ×1
- 同类 NBT 只备 1 个
5. 界面说明
| 区域 | 含义 |
|---|---|
| 左侧样板槽 | 只收 AE2 已编码样板;已有环时锁定,要先取完再换 |
| 净产出 | 每次做完交回网络的成品 |
| 净消耗 | 下单时 ME 抽走的原料 |
| 种子 | 先备好的催化剂;禁止取出(拆方块也不还) |
| 右上状态 | 递归计算中 / 合成就绪 / 无法成环 / 低电量 / 缺种子… |
| 补充种子 | 从 ME 按需求量抽取进机器(上限实质无限制) |
Jade:在线 / 缺频道 + 合成状态。
6. 配置
config/ae2recursion-common.toml(首次启动生成,改完重启)
| 键 | 默认 | 说明 |
|---|---|---|
| idlePowerAe | 1024.0 | 待机 AE/t |
| patternSlots | 9 | 样板格(1–16)。越多越复杂,计算难度指数上升;改完重进区块或拆放方块 |
| extraCosts | [] | 每次合成额外代价。命名空间:物品=数量。改完重启 |
| craftPowerAe | 256.0 | 每次成功合成 AE |
| craftPowerFe | 512 | 允许 FE 时每次扣 FE |
| allowMeNetworkFe | false | 允许扣 ME 网络 FE(需 Applied Flux)。顺序:网络 FE → 机器 FE → AE |
额外代价示例:
extraCosts = ["minecraft:redstone=4", "minecraft:gold_ingot=1"]
7. 性能与缓存
| 机制 | 行为 |
|---|---|
| 环求解 | 后台异步;大单仿真 2 万步封顶后改上限算法 |
| 配方索引 | 6 万条 I/O 倒排 + 60s TTL;有旧索引不阻塞主线程 |
| 样板校验 | 倒排候选 + 结果缓存;0 候选回退全表(保证真配方能中) |
| 缓存 | 样板签名持久化;样板未变不重算,拆/换才清缓存 |
进档短暂显示「递归计算中」属正常;样板没动应很快变回「合就绪」。
8. 常见问题
样板放不进去
日志搜 INVALID_IO。看 closest= 是否对上预期配方、patternIn/Out 是否和配方一致。催化剂不能省。
状态一直「递归计算中」
样板太复杂或太多。减格子(patternSlots)或拆成多个。
下单报「无法生成算子」
GTO crafting2 只认原生 AEProcessingPattern。当前版本已用原生类型暴露净变换;若仍报,发日志。
进档很卡
发 log 时间戳到邮箱反馈。
9. 日志关键字
[AE2Recursion][verify] recipe IO index size=… (gtExtra=…)
[AE2Recursion][verify] gtolib RecipeBuilder.values() indexed N
[AE2Recursion][verify] reject pattern INVALID_IO …
[AE2Recursion][proxy] 样板集变化 → …
gtExtra>0:GTO 机配方已进索引INVALID_IO … closest=:插入被拒对照
10. 更新日志
26.9.25
- 单方块变成单方块结构
- 被动耗能提示100倍,工作耗能提升1000倍
- 优化算法,提高计算速度
- 修复已知问题
评论