Skip to content

Conversation

dudek26
Copy link

@dudek26 dudek26 commented Aug 9, 2025

My solution for #9066:

  • Moved most of BasinRecipe functionality to a new AbstractBasinRecipe class, which is an extension of ProcessingRecipe instead of StandardProcessingRecipe and has <P extends ProcessingRecipeParams> type parameter.
  • Added BasinRecipe.Builder and BasinRecipe.Serializer (basin equivalents of StandardProcessingRecipe's builder and serializer).
  • Updated registration of basin-related recipe types.
  • (API) Updated Mixing and Compacting recipe generators.
    • Create's own data generators remain unaffected.
  • Added <R extends AbstractBasinRecipe<?>> type parameter to BasinCategory for basin recipes with custom parameters.

Compatibility issues:

  • As BasinRecipe no longer extends StandardProcessingRecipe, addons would have to update their custom recipe types' registration methods.
  • Addons with recipe categories extending BasinCategory would have to specify the new type parameter.

Other than that, I tried to make the changes as compatible as possible. AbstractBasinRecipe's static methods could still be accessed via BasinRecipe. Recipes that don't require custom ProcessingRecipeParams could extend BasinRecipe and use generators provided by API, while addons would be able use AbstractBasinRecipe for basin recipes with custom parameters.

dudek26 and others added 2 commits August 9, 2025 00:41
- add support for custom ProcessingRecipeParams in AbstractBasinRecipe by extending ProcessingRecipe instead of StandardProcessingRecipe
- make BasinRecipe extend AbstractBasinRecipe, move most of its functionality - for basic Basin recipes
- add type parameter to BasinCategory (JEI)
- move basin recipe type definition to BasinRecipe
@VoidLeech VoidLeech added the area: api Issue or PR is related to API label Aug 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: api Issue or PR is related to API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants