Interface IContamination<OBJECT,OBJECT_STACK>

All Known Implementing Classes:
ComponentHolderContamination, Contamination, FluidContamination, GenericContamination, IncontaminableContamination, ItemContamination

public interface IContamination<OBJECT,OBJECT_STACK>
A specific instance of a contaminable object, with the specific Contaminants that object posseses.
  • Method Details

    • get

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

      static 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,IContamination<?,?>> contaminationGetter)
      Type Parameters:
      OBJECT - Type of the contaminable object
      Parameters:
      inputs -
      outputs -
      contaminationGetter -
    • 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)
    • getContaminable

      Contaminable<OBJECT,OBJECT_STACK> getContaminable()
    • getType

      OBJECT getType()
    • getAmount

      double getAmount()
    • save

      void save()
    • has

      boolean has(net.minecraft.core.Holder<Contaminant> contaminantHolder)
    • hasAnyContaminant

      boolean hasAnyContaminant()
    • hasAnyExtrinsicContaminant

      boolean hasAnyExtrinsicContaminant()
    • streamAllContaminants

      Stream<net.minecraft.core.Holder<Contaminant>> streamAllContaminants()
    • streamOrphanExtrinsicContaminants

      Stream<net.minecraft.core.Holder<Contaminant>> streamOrphanExtrinsicContaminants()
      Stream all Contaminants in this Contamination that:
      • Are not intrinsic
      • Have no children in this Contamination
      Note that this is the minimum set of Contaminants needed to uniquely define a Contamination.
      Returns:
      Distinct Stream of Contaminants
    • streamShownContaminants

      default Stream<net.minecraft.core.Holder<Contaminant>> streamShownContaminants()
    • streamShownAbsentContaminants

      default Stream<net.minecraft.core.Holder<Contaminant>> streamShownAbsentContaminants()
    • contaminate

      boolean contaminate(net.minecraft.core.Holder<Contaminant> contaminantHolder)
    • contaminateAll

      boolean contaminateAll(Stream<net.minecraft.core.Holder<Contaminant>> contaminantsStream)
      Add several Contaminants, and
      Parameters:
      contaminantsStream -
      Returns:
    • decontaminate

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

      boolean decontaminateOnly(net.minecraft.core.Holder<Contaminant> contaminantHolder)
      Remove a Contaminant, but not any of its children. If the Contaminant has any parents in this Contamination, it will not be removed.
      Parameters:
      contaminantHolder -
      Returns:
      Whether this Contamination changed (the Contaminant was removed)
      See Also:
    • fullyDecontaminate

      boolean fullyDecontaminate()
      Remove all extrinsic Contaminants.
      Returns:
      Whether this Contamination changed (whether it had any extrinsic Contaminants)
    • isIntrinsic

      default boolean isIntrinsic(net.minecraft.core.Holder<Contaminant> contaminantHolder)
    • streamIntrinsicContaminants

      default Stream<net.minecraft.core.Holder<Contaminant>> streamIntrinsicContaminants()
    • streamShownIfAbsentContaminants

      default Stream<net.minecraft.core.Holder<Contaminant>> streamShownIfAbsentContaminants()