Interface IFlagPole<OBJECT,OBJECT_STACK>

All Known Implementing Classes:
AbstractFlagPole, ComponentHolderFlagPole, FluidFlagPole, GenericFlagPole, ItemFlagPole, UnflaggableFlagPole

public interface IFlagPole<OBJECT,OBJECT_STACK>
A specific instance of a flaggable object, storing the specific Flags that object posseses.
See Also:
  • Method Details

    • get

      static Optional<IFlagPole<?,?>> get(Object object)
    • perpetuate

      static <OBJECT> void perpetuate(Stream<OBJECT> inputs, Stream<OBJECT> outputs)
      Parameters:
      inputs -
      outputs -
      See Also:
    • perpetuate

      static <OBJECT> void perpetuate(Stream<OBJECT> inputs, Stream<OBJECT> outputs, Function<OBJECT,IFlagPole<?,?>> flagpoleGetter)
      Type Parameters:
      OBJECT - Type of the flaggable object
      Parameters:
      inputs -
      outputs -
      flagpoleGetter -
    • perpetuate

      static void perpetuate(Stream<net.minecraft.world.item.ItemStack> itemInputs, Stream<net.neoforged.neoforge.fluids.FluidStack> fluidInputs, double fluidWeight, Stream<net.minecraft.world.item.ItemStack> itemOutputs, Stream<net.neoforged.neoforge.fluids.FluidStack> fluidOutputs)
    • getFlaggable

      Flaggable<OBJECT,OBJECT_STACK> getFlaggable()
    • getType

      OBJECT getType()
    • getAmount

      double getAmount()
    • save

      void save()
      Called whenever the IFlagPole is changed, to save the changes to the underlying object.
    • has

      boolean has(net.minecraft.core.Holder<Flag> flagHolder)
    • hasAnyFlag

      boolean hasAnyFlag()
    • hasAnyExtrinsicFlag

      boolean hasAnyExtrinsicFlag()
    • streamAllFlags

      Stream<net.minecraft.core.Holder<Flag>> streamAllFlags()
    • streamOrphanExtrinsicFlags

      Stream<net.minecraft.core.Holder<Flag>> streamOrphanExtrinsicFlags()
      Stream all Flags in this FlagPole that:
      • Are not intrinsic
      • Have no parents in this FlagPole
      This is the minimum set of Flags needed to uniquely define a FlagPole instance.
      Returns:
      Distinct Stream of Flags
    • streamShownFlags

      default Stream<net.minecraft.core.Holder<Flag>> streamShownFlags()
    • streamShownAbsentFlags

      default Stream<net.minecraft.core.Holder<Flag>> streamShownAbsentFlags()
    • flag

      boolean flag(net.minecraft.core.Holder<Flag> flagHolder)
    • flagAll

      boolean flagAll(Stream<net.minecraft.core.Holder<Flag>> flagsStream)
      Add several Flags, and
      Parameters:
      flagsStream -
      Returns:
    • unflag

      boolean unflag(net.minecraft.core.Holder<Flag> flagHolder)
      Remove a Flag and any children it has that don't belong to another parent. If the Flag has any parents in this FlagPole, it will not be removed.
      Parameters:
      flagHolder -
      Returns:
      Whether this FlagPole changed
      See Also:
    • unflagOnly

      boolean unflagOnly(net.minecraft.core.Holder<Flag> flagHolder)
      Remove a Flag, but not any of its children. If the Flag has any parents in this FlagPole, it will not be removed.
      Parameters:
      flagHolder -
      Returns:
      Whether this FlagPole changed (the Flag was removed)
      See Also:
    • clearFlags

      boolean clearFlags()
      Remove all extrinsic Flags.
      Returns:
      Whether this FlagPole changed (whether it had any extrinsic Flags)
    • isIntrinsic

      boolean isIntrinsic(net.minecraft.core.Holder<Flag> flagHolder)
    • streamIntrinsicFlags

      Stream<net.minecraft.core.Holder<Flag>> streamIntrinsicFlags()
    • streamShownIfAbsentFlags

      Stream<net.minecraft.core.Holder<Flag>> streamShownIfAbsentFlags()