Skip to content

Plan recipe batches within container capacity 添加受容器容量约束的配方批次规划 - #246

Merged
PigeonNian merged 1 commit into
Anvil-Dev:dev/26.3from
WhereisFff:codex/fix-5961-batches-26.3
Nov 8, 2026
Merged

PigeonNian merged 1 commit into
Anvil-Dev:dev/26.3from
WhereisFff:codex/fix-5961-batches-26.3

Conversation

@WhereisFff

Copy link
Copy Markdown
Contributor

feat(recipe): 添加受容器容量约束的批次规划

  • 基于库存快照选择能容纳全部产物的最长连续批次,支持满槽压缩
  • 保留未加工原料及可复用催化剂,阻止本轮产物再次参与输入
  • 预计算随机与组件函数结果,在库存提交成功后执行选中批次副作用
  • 补充鱼缸接入、槽位限制和外部资源校验的接口文档
  • resolved #5961

- 基于库存快照选择能容纳全部产物的最长连续批次,支持满槽压缩
- 保留未加工原料及可复用催化剂,阻止本轮产物再次参与输入
- 预计算随机与组件函数结果,在库存提交成功后执行选中批次副作用
- 补充鱼缸接入、槽位限制和外部资源校验的接口文档
@PigeonNian
PigeonNian merged commit 26c1591 into Anvil-Dev:dev/26.3 Nov 8, 2026
1 check passed

@Gugle2308 Gugle2308 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

结论:PR #246 已关闭并合并,按规范不发布任何审查评论

未发表评论。 依据全局规范第 1 条:当 PR 的操作或状态为 closed 或 labeled 时,应立即停止,不发布任何评论。

实测状态

项 值
state closed
merged true
closed_at / merged_at 2026-11-08T04:52:04Z
base dev/26.3 @ ba1e3ac3
head 446244a5(codex/fix-5961-batches-26.3)
规模 5 文件 +446/−11(比其他线多 7 行,因为 SpawnItem(Holder<Item>, …) 构造器按 26.3 换行风格重排,且 count 类型为 ContextIntProvider)
已有 review 1 条 APPROVED

全族 7 条线已全部合并

PR 目标分支 状态
#240 dev/1.21.1 ✅ merged
#241 dev/26.1 ✅ merged
#242 dev/1.21.11 ✅ merged
#243 dev/1.21.4 ✅ merged
#244 dev/1.21.8 ✅ merged
#245 dev/26.2 ✅ merged
#246 dev/26.3 ✅ merged(本轮)

ItemBatchPlan.java(344 行算法本体)、IPlannedItemOutcome、PlannedItem 七线逐字节相同;仅 SpawnItem.java 与 README 既有示例因线别 API 不同(ItemStack↔ItemStackTemplate、ResourceLocation↔Identifier、ContextIntProvider、Blocks.CUT_COPPER_STAIRS.waxed()、EntityTypes.COW)。

合并时仍未修复的遗留项(7 条线同源,均成立于当前主干)

由于 7 条线内容同源,我在 #240–#242、#245 审查中提出的问题在所有线合并时都未修复:

  1. ChooseOneOutcome 未实现 IPlannedItemOutcome(ChooseOneOutcome.java:26,Choice(IRecipeOutcome<?>, …) 可持有 SpawnItem,:84 直接 acceptWithChance)——choose_one 产物的配方无法参与容量规划,但执行时仍产出 → #5961 描述的产物溢出对这类配方依旧复现;AnvilCraft ItemCrushRecipeLoader.java:94 正在使用该模式。这是唯一影响功能目标的一条。
  2. 344 行回溯搜索 + 公开 API 零单元测试(module.recipe/src/test 仍不存在)。
  3. fillEmpty 无搜索预算上限,且 plan 每轮批次从头重跑 fit。
  4. resolved #5961 跨仓引用不生效;库侧 API 合入 ≠ AnvilCraft 侧 issue 已修复。
  5. commit() 的 batches == 0 早退不调用库存回调、effect 抛异常会中断后续 effect,均未在 README 说明。

⚠️ 全部 PR 已合并关闭,无法再在原 PR 上评论;若要推进只能开新的跟进 issue / PR。需要我起草针对第 1 条(ChooseOneOutcome 规划缺口)的跟进 issue 文本吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants