云镜之端

AE2递归模组文档

编写样板,本模组通过算法算出实际消耗/产出,算好补充好催化剂=>下单!

  • 作者
  • 1 分钟阅读
评论
AE2递归模组文档

AE2 Recursion 使用文档

递归 / 自增配方的黑盒合成器。把会成环的 AE2 样板塞进递归代理合成器,算出净变换后挂到 ME 上,终端里当普通配方下单。

说人话:编写样板,本模组通过算法算出实际消耗/产出,算好补充好催化剂=>下单!

反馈邮箱:service@skymirror.top(请附日志)


1. 这是什么

原版 AE2 遇到 1A + 1B → 2A 这类循环/自增配方会算爆或算不出来。

本模组提供 递归代理合成器:

  1. 接收 AE2 已编码样板
  2. 检测样板之间的环
  3. 算出净变换(净产出 / 净消耗 / 种子)
  4. 挂到 ME 网络当一条可下单配方

例:1A + 1B → 2A 的净变换是 消耗 1B,净产出 1A;A 是催化剂,要 1 个种子。


2. 环境要求

版本环境状态
1.20.1Forge 47.3+ / AE2 15.4.10+支持(GTL 最新版、GTO 0.5.6 Beta)
1.21.1NeoForge 21.1+ / AE2 19.2.17+支持

可选附属:

  • Applied-Mekanistics — 化学品样板
  • GregTech / GTO — 机配方、虚拟催化剂
  • Applied Flux — ME 网络扣 FE
  • Jade / GuideME — 提示与手册

3. 快速上手

  1. 准备至少25个递归代理机械方块+1递归代理合成器,摆成333中间空心,找一个面中间放递归代理合成器,并将主方块接入ME网络(无线也行)
  2. 找环:一组样板构成 1A+1B=2A 之类的递归。
  3. 原样编码:在 AE2 样板终端编码,催化剂、副产物都写上,不要省。
  4. 放入代理:样板插进递归代理合成器(只收 AE2 已编码样板)。
  5. 看实际消耗/产出:
    • 净产出 / 净消耗 / 种子
  6. 补充种子:点按钮从 ME 把催化剂扣进机器。种子是代价,禁止取出。
  7. 状态 = 合成就绪 → 终端下单。

悬停物品按住 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(首次启动生成,改完重启)

键默认说明
idlePowerAe1024.0待机 AE/t
patternSlots9样板格(1–16)。越多越复杂,计算难度指数上升;改完重进区块或拆放方块
extraCosts[]每次合成额外代价。命名空间:物品=数量。改完重启
craftPowerAe256.0每次成功合成 AE
craftPowerFe512允许 FE 时每次扣 FE
allowMeNetworkFefalse允许扣 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倍
  • 优化算法,提高计算速度
  • 修复已知问题

评论

推荐阅读

订阅邮件

订阅更新,及时收到最新文章。

作者