配置配方逻辑
MBD2 21.1.1配方逻辑将一个机器定义连接到一个 MBDRecipeType。只有机器拥有可处理配方内容的兼容 handler proxy 时才会搜索。

设置
| 设置 | Runtime value 键 | 效果 |
|---|---|---|
| Enable | recipe_logic.enable | 配方逻辑是否运行 |
| Recipe type | — | 该机器搜索的 registry ID |
| Recipe damping value | recipe_logic.damping | 每个等待 tick 损失的进度,下限为 0。填 0 表示等待时进度冻结 |
| Consume inputs after working | recipe_logic.consume_inputs_after_working | 把普通输入的消耗推迟到完成时。每个工作 tick 都会重新模拟这些输入,输入消失会中断配方 |
| Always search recipe | recipe_logic.always_search | 每条配方完成后强制重新搜索,而不是复用缓存的那条 |
| Always modify recipe | recipe_logic.always_modify | 每轮重新应用修饰器。当 tier、升级件或机器数据会在两轮之间改变最终配方时需要它 |
| Recipe modifiers | — | 对匹配到的配方施加数量、时长与并行变换 |
上表中带键的设置同时也是 runtime value,蓝图、脚本或 UI 可以只为一台放置的机器修改它,而不动定义。
接线检查表
- 在解析机器定义前注册或导出配方类型。
- 选择准确的带命名空间 ID。
- 为候选配方使用的每种 capability 添加至少一个 handler Trait。
- 为每个配方方向设置 handler IO。
- 分别测试普通内容与 per-tick 内容。
- 视觉需要反映状态时添加
waiting和working状态。 - 从生成 UI 测试配方查看器查询。
工作期间还会重新检查条件。天气、红石、转动、热、压力或其他条件变化时配方可能进入等待;等待不等于重置,等待要付出多少进度由 damping value 决定。