Class CompoundFluidIngredient

java.lang.Object
net.neoforged.neoforge.fluids.crafting.FluidIngredient
net.neoforged.neoforge.fluids.crafting.CompoundFluidIngredient
All Implemented Interfaces:
Predicate<FluidStack>

public final class CompoundFluidIngredient extends FluidIngredient
Fluid ingredient that matches if any of the child ingredients match. This type additionally represents the array notation used in FluidIngredient.CODEC internally.
See Also:
  • Field Details

  • Constructor Details

    • CompoundFluidIngredient

      public CompoundFluidIngredient(List<? extends FluidIngredient> children)
  • Method Details

    • of

      public static FluidIngredient of(FluidIngredient... children)
      Creates a compound ingredient from the given list of ingredients.
    • of

      public static FluidIngredient of(List<FluidIngredient> children)
      Creates a compound ingredient from the given list of ingredients.
    • of

      public static FluidIngredient of(Stream<FluidIngredient> stream)
    • generateStacks

      public Stream<FluidStack> generateStacks()
      Description copied from class: FluidIngredient
      Generates a stream of all fluid stacks this ingredient matches against.

      For compatibility reasons, implementations should follow the same guidelines as for custom item ingredients, i.e.:

      • These stacks are generally used for display purposes, and need not be exhaustive or perfectly accurate.
      • An exception is ingredients that are simple, for which it is important that the returned stacks correspond exactly to all the accepted Fluids.
      • At least one stack should always be returned, otherwise the ingredient may be considered accidentally empty.
      • The ingredient should try to return at least one stack with each accepted Fluid. This allows mods that inspect the ingredient to figure out which stacks it might accept.
      Specified by:
      generateStacks in class FluidIngredient
      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:
    • test

      public boolean test(FluidStack stack)
      Description copied from class: FluidIngredient
      Checks if a given fluid stack matches this ingredient. The stack must not be modified in any way.
      Specified by:
      test in interface Predicate<FluidStack>
      Specified by:
      test in class FluidIngredient
      Parameters:
      stack - the stack to test
      Returns:
      true if the stack matches, false otherwise
    • isSimple

      public boolean isSimple()
      Description copied from class: FluidIngredient
      Returns whether this fluid ingredient always requires direct stack testing.
      Specified by:
      isSimple in class FluidIngredient
      Returns:
      true if this ingredient ignores NBT data when matching stacks, false otherwise
      See Also:
    • getType

      public FluidIngredientType<?> getType()
      Description copied from class: FluidIngredient
      Returns The type of this fluid ingredient..

      The type must be registered to NeoForgeRegistries.FLUID_INGREDIENT_TYPES.

      Specified by:
      getType in class FluidIngredient
      Returns:
      The type of this fluid ingredient.
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class FluidIngredient
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in class FluidIngredient
    • children

      public List<FluidIngredient> children()