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
FluidStack
s 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 SlotDisplay
displayForSingleFluid
(Holder<Fluid> holder) abstract boolean
fluids()
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 int
hashCode()
abstract boolean
isSimple()
Returns whether this fluid ingredient always requires direct stack testing.static FluidIngredient
static FluidIngredient
static FluidIngredient
static FluidIngredient
of
(FluidStack... fluids) abstract boolean
test
(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:
test
in interfacePredicate<FluidStack>
- Parameters:
fluidStack
- the stack to test- Returns:
true
if the stack matches,false
otherwise
-
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:
true
if this ingredient ignores NBT data when matching stacks,false
otherwise- 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
-