Skip to content

fix: keep meat on slaughter roasts - #28

Open
Drefvelin wants to merge 1 commit into
mainfrom
fix/slaughter-roast-meat
Open

Drefvelin wants to merge 1 commit into
mainfrom
fix/slaughter-roast-meat

Conversation

@Drefvelin

Copy link
Copy Markdown
Contributor

Summary

  • Slaughter treated the trailing bone as the last roast cut, so a one-cut animal (low care, the usual case) dropped the skeleton stage with 0 food. One-star raw nutrition stayed at 1.1 because that is the batch level (8 × 0.28 × raw 0.5), not because the meat was gone.
  • The drop then applied the edible-cut count as a model stage, which is the meaty end of the model list. The next inventory update rewrote it to the skeleton.
  • Yield now keeps that many edible cuts, leaves the bone after the last meat, and lets the normal carve stage (nextIndex + 1) pick the model.

Documentation impact

  • System docs updated for every owned path in docs/manifest.json
  • Or docs/impact-waiver.md changed in this PR with docs-impact: none and a reason

Contract

  • Affected behavior: mature slaughter roasts keep roast-cuts edible portions. min-roast-cuts 1 is the last meat cut plus the bone, with that cut's food, on the stage just before the skeleton. A full yield still starts at cut 0.
  • Tests run (mvn test, or why not): PortionRulesTest (includes the new yield cases) and HusbandryRepositoryTest. The full suite's only local failure was SQLite's native library refusing to map from noexec /tmp; those repository tests pass with an executable temp directory.
  • Player wiki (ProvinceSystem /wiki/cooking or related pages): no change

Notes

  • Config source is src/main/resources. Do not edit target/.
  • plugin.yml version and pom.xml version are known drift. Do not mix a version bump into unrelated work.
  • cookware.yml is not loaded.

Test plan

  • Kill a mature low-care cow, pig, and chicken. The roast is not the bare skeleton, food is above 0, and the model does not snap to empty on the next inventory update.
  • Kill a high-care animal. The roast is the whole model (raw_1) with the full cut-food sum.
  • Carve the low-yield roast once. It yields one meat portion, then the bone.
  • Milk and eggs still build, since those foods have no carve sequence.

Made with Cursor

A one-cut carcass was the trailing bone, so the drop was a skeleton with 0 food. The cut count was also applied as a model stage, and the next item update replaced that with the empty roast.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

1 participant