Fix all recipe types to respect crafting remaining items #8556
+67
−18
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:
Recipe types that did not return remaining items but are fixed in this PR include:
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