Skip to content

Fix all recipe types to respect crafting remaining items #8556

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: mc1.20.1/dev
Choose a base branch
from

Conversation

hlysine
Copy link

@hlysine hlysine commented May 26, 2025

Some items in Minecraft contains "crafting remaining items" which are left behind when the item is used in crafting, e.g. empty buckets are left behind when crafting a cake with milk buckets. This is also how mods implement inconsumable crafting ingredients. However, over half of Create's recipe types do not respect this method, causing unexpected results such as #4853 and #4963.

Seeing that this issue has been in Create for years and I'm already patching one aspect of it in Create: Connected, I've decided to upstream the patch and fix all recipe types once and for all.

Recipe types that already return crafting remaining items include:

  • Automated shaped crafting
  • Mechanical crafting
  • Mixing
  • Compacting

Recipe types that did not return remaining items but are fixed in this PR include:

  • Crushing
  • Deploying
  • Fan processing (bulk blasting and smoking removes the remainder to be consistent with vanilla furnace behavior)
  • Manual item application
  • Milling
  • Pressing
  • Sandpaper polishing
  • Sawing

For your convenience, here's a datapack that adds all types of recipes for lava buckets, so you can verify that an empty bucket remains after processing: crafting-remaining-items-data.zip

@RaymondBlaze
Copy link
Contributor

The changes to RecipeApplier#applyRecipeOn for fan processing probably needs more investigation.

The fan smoking and blasting are using vanilla furnace recipes which does not respect remainders by design, and this PR keeps such behaviour by not touching the non-processing recipes' remainders.

However it could be confusing that the method handles remainder differently for Processing Recipe and other recipes, so maybe a overload that accepts a boolean parameter specifying if remainders should be respected.

This follows vanilla furnace behavior
@VoidLeech VoidLeech added the pr type: fix PR fixes a bug label Jun 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr type: fix PR fixes a bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants