Interface CustomIngredient
public interface CustomIngredient
Interface that modders can implement to create new behaviors for
Ingredients.
This is not directly implemented on vanilla Ingredients, but conversions are possible:
toVanilla()converts a custom ingredient to a vanillaIngredient.FabricIngredientcan be used to check if a vanillaIngredientis custom, and retrieve the custom ingredient in that case.
The format for custom ingredients is as follows:
{
"fabric:type": "<identifier of the serializer>",
// extra ingredient data, dependent on the serializer
}
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionReturns the list of stacks that match this ingredient..Returns the serializer for this ingredient.booleanReturns whether this ingredient always requires direct stack testing.booleanChecks if a stack matches this ingredient.default IngredientReturns a newIngredientbehaving as defined by this custom ingredient.
-
Method Details
-
test
Checks if a stack matches this ingredient. The stack must not be modified in any way.- Parameters:
stack- the stack to test- Returns:
trueif the stack matches this ingredient,falseotherwise
-
getMatchingStacks
Returns the list of stacks that match this ingredient..The following guidelines should be followed for good compatibility:
- These stacks are generally used for display purposes, and need not be exhaustive or perfectly accurate.
- An exception is ingredients that don't require testing,
for which it is important that the returned stacks correspond exactly to all the accepted
Items. - At least one stack must be returned for the ingredient not to be considered empty.
- The ingredient should try to return at least one stack with each accepted
Item. This allows mods that inspect the ingredient to figure out which stacks it might accept.
Note: no caching needs to be done by the implementation, this is already handled by the ingredient itself.
- Returns:
- the list of stacks that match this ingredient.
-
requiresTesting
boolean requiresTesting()Returns whether this ingredient always requires direct stack testing.- Returns:
falseif this ingredient ignores NBT data when matching stacks,trueotherwise- See Also:
-
getSerializer
CustomIngredientSerializer<?> getSerializer()Returns the serializer for this ingredient.The serializer must have been registered using
CustomIngredientSerializer.register(net.fabricmc.fabric.api.recipe.v1.ingredient.CustomIngredientSerializer<?>).- Returns:
- the serializer for this ingredient
-
toVanilla
Returns a newIngredientbehaving as defined by this custom ingredient..- Returns:
- a new
Ingredientbehaving as defined by this custom ingredient
-