fix: keep pot soup through chunk reloads and restarts - #54
Conversation
A rebuilt pot reference kept raw food only. Mashed soup and boiled pieces were dropped from its state after any chunk reload (every chunk unload since 0.3.10) or restart, so: - the ladle found no soup and was set on the pot's ladle rest instead - breaking the pot dropped every soup ingredient back - carrying it showed the pieces and full liquid again The pot now restores mashed and boilable pieces, re-hides the mash and rebuilds its colours. Placing a non-food item such as the ladle on a cooking slot no longer throws. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughCooking slot handling now ignores non-food items without cancelling the event. Pot rebuilding restores eligible main ingredients and colours, reapplies the soup level, and uses shared display data for mashed ingredients. ChangesCooking Slot Handling
Pot Rebuild
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~12 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The change appears ready to merge after normal checks; no actionable risk remains from the reviewed slot-handling and pot-rebuild paths. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The reviewed paths restore soup state without showing a new privilege or cross-player access path. Risk remains low, though furniture-side slot enforcement and the full restart path were not verified here. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
A rabbit stirs the pot with care, Comment |
|
Tested on TFMCDev01 with both fix jars (Cooking #54 + InteractibleFurniture #30), mineflayer bot
No Cooking/InteractibleFurniture errors in latest.log. |
Bug
Bug report (Hashi): a pot of soup at 1/3 that was left to sit "bugs out". The ladle can't scoop and gets set on the pot instead, picking the pot up refills it, and breaking it gives every ingredient back.
Cause
CookingReference.rebuildFromFurniturekeeps raw food only. A soup's pieces are mashed and boiled (cooked= 3), so any rebuild drops them from the pot's state even though they stay in the furniture slots. A rebuild happens on every restart and, since 0.3.10 (#53), on every chunk reload. So walking away from a pot is enough.After the rebuild
isSoup()is false, so:ladle_slotrest (slotAddalso threw an NPE on the non-food ladle)remove()instead ofclear(), so the input slots drop every ingredientFix
PotReference.rebuildFromFurniturerestores the input slots holding mashed or pot-boilable food, hides the mashed pieces again, and rebuilds the colour list (water first, then the ingredients).CookingReference.slotAddignores non-food items the slot whitelists (the ladle rest) instead of throwing.The "refills itself" part on carry is fixed in InteractibleFurniture (placing a carried piece reset every slot's display data): TF-Minecraft/InteractibleFurniture companion PR.
Testing
mvn clean verifypasses locally.🤖 Generated with Claude Code
Summary by CodeRabbit