Recipe Rewrite (API Only)
Description
This PR supersedes #4078
Description from #4078
Hey guys, this is my attempt at the recipe rewrite.
I have written up an ADR that goes over how the new API currently works, but in short:
- Recipe system sucks
- Can't translate recipes in the dispenser (like crafting Copper Wire on the top row)
- Items can only have one* recipe (mostly)
- Can't have true shapeless recipes
Any feedback on the API or discussion around the new recipe system in general would be greatly appreciated!
Proposed changes
- Adds a new recipe API which:
- Allows recipe inputs with multiple options (e.g. Vanilla/Slimefun Copper)
- Allows true shaped/shapeless recipes (does not replace the old versions)
- Allows machines and workstations to search recipes more efficiently
Related Issues (if applicable)
N/A
Checklist
- [ ] I have fully tested the proposed changes and promise that they will not break everything into chaos.
- [ ] I have also tested the proposed changes in combination with various popular addons and can confirm my changes do not break them.
- [ ] I have made sure that the proposed changes do not break compatibility across the supported Minecraft versions (1.16.* - 1.20.*).
- [x] I followed the existing code standards and didn't mess up the formatting.
- [x] I did my best to add documentation to any public classes or methods I added.
- [x] I have added
NonnullandNullableannotations to my methods to indicate their behaviour for null values - [x] I added sufficient Unit Tests to cover my code.
Your Pull Request was automatically labelled as: "🔧 API" Thank you for contributing to this project! ❤️
yup thats my prio rn
Slimefun preview build
A Slimefun preview build is available for testing! Commit: 0e8b2632
https://preview-builds.walshy.dev/download/Slimefun/4093/0e8b2632
Note: This is not a supported build and is only here for the purposes of testing. Do not run this on a live server and do not report bugs anywhere but this PR!
unit tests should be done, if i missed something lmk
Might be worth waiting for the item stack component changes before doing much more with this