Class FluidIngredient
- All Implemented Interfaces:
Predicate<FluidStack>
- Direct Known Subclasses:
CompoundFluidIngredient,CustomDisplayFluidIngredient,DataComponentFluidIngredient,DifferenceFluidIngredient,IntersectionFluidIngredient,SimpleFluidIngredient
Ingredient,
that is, a representation of both a predicate to test
FluidStacks against, and a list of matching stacks
for e.g. display purposes.
The most common use for fluid ingredients is found in modded recipe inputs,
for example crafting mechanics accepting a list of different fluids;
since those mechanics even rely on a certain amount of a fluid being present,
and fluid ingredients inherently do not hold any information with respect to fluid amount;
you may also want to take a look at SizedFluidIngredient!
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final com.mojang.serialization.Codec<FluidIngredient> static final StreamCodec<RegistryFriendlyByteBuf, Optional<FluidIngredient>> static final StreamCodec<RegistryFriendlyByteBuf, FluidIngredient> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondisplay()Returns a slot display for this ingredient, used for display on the client-side.static SlotDisplaydisplayForSingleFluid(Holder<Fluid> holder) abstract booleanfluids()Returns a cached list of all Fluid holders that this ingredient accepts.Returns a stream of fluids accepted by this ingredient.abstract FluidIngredientType<?> getType()Returns The type of this fluid ingredient..abstract inthashCode()abstract booleanisSimple()Returns whether this fluid ingredient always requires direct stack testing.static FluidIngredientstatic FluidIngredientstatic FluidIngredientstatic FluidIngredientof(FluidStack... fluids) abstract booleantest(FluidStack fluidStack) Checks if a given fluid stack matches this ingredient.
-
Field Details
-
CODEC
-
STREAM_CODEC
-
OPTIONAL_STREAM_CODEC
public static final StreamCodec<RegistryFriendlyByteBuf,Optional<FluidIngredient>> OPTIONAL_STREAM_CODEC -
fluids
-
-
Constructor Details
-
FluidIngredient
public FluidIngredient()
-
-
Method Details
-
fluids
Returns a cached list of all Fluid holders that this ingredient accepts. This list is immutable and thus can and should not be modified by the caller!- Returns:
- a cached list of all Fluid holders that this ingredient accepts
- See Also:
-
test
Checks if a given fluid stack matches this ingredient. The stack must not be modified in any way.- Specified by:
testin interfacePredicate<FluidStack>- Parameters:
fluidStack- the stack to test- Returns:
trueif the stack matches,falseotherwise
-
generateFluids
Returns a stream of fluids accepted by this ingredient.For compatibility reasons, implementations should follow the same guidelines as for custom item ingredients, i.e.:
- Returned fluids are generally used for display purposes, and need not be exhaustive or perfectly accurate, as ingredients may additionally filter by e.g. data component values.
- An exception is ingredients that are simple,
for which it is important that this stream corresponds exactly all fluids accepted by
test(FluidStack)! - At least one stack should always be returned, so that the ingredient is not considered empty. Empty ingredients may invalidate recipes!
Note: no caching needs to be done by the implementation, this is already handled by
fluids!- Returns:
- a stream of all fluid stacks this ingredient accepts.
Note: No guarantees are made as to the amount of the fluid, as FluidIngredients are generally not meant to match by amount and these stacks are mostly used for display.
- See Also:
-
display
Returns a slot display for this ingredient, used for display on the client-side.- Returns:
- a slot display for this ingredient, used for display on the client-side
- See Also:
-
isSimple
public abstract boolean isSimple()Returns whether this fluid ingredient always requires direct stack testing.- Returns:
trueif this ingredient ignores NBT data when matching stacks,falseotherwise- See Also:
-
getType
Returns The type of this fluid ingredient..The type must be registered to
NeoForgeRegistries.FLUID_INGREDIENT_TYPES.- Returns:
- The type of this fluid ingredient.
-
hashCode
public abstract int hashCode() -
equals
-
displayForSingleFluid
-
of
-
of
-
of
-
of
-