Class RarityFilterModifier

java.lang.Object
com.github.darksoulq.abyssallib.world.gen.placement.PlacementModifier
com.github.darksoulq.abyssallib.world.gen.placement.modifier.RarityFilterModifier

public class RarityFilterModifier extends PlacementModifier
A placement modifier that acts as a per-chunk probability gate.

Unlike the standard ChanceModifier which evaluates each generated vector individually, the RarityFilterModifier evaluates the probability exactly once per stream execution. If the probability check fails, it terminates the entire placement stream, effectively skipping feature generation for the current chunk.

  • Field Details

  • Constructor Details

    • RarityFilterModifier

      public RarityFilterModifier(int chance)
      Constructs a new RarityFilterModifier.
      Parameters:
      chance - The probability fraction denominator (e.g., 50 means 1-in-50 chance per chunk).
  • Method Details

    • getPositions

      public Stream<org.bukkit.util.Vector> getPositions(PlacementContext context, Stream<org.bukkit.util.Vector> positions)
      Evaluates a single probability check to determine if the position stream should proceed.
      Specified by:
      getPositions in class PlacementModifier
      Parameters:
      context - The current placement context providing the seeded random instance.
      positions - The incoming stream of potential placement vectors.
      Returns:
      The unmodified position stream if the check passes, or an empty stream if it fails.
    • getType

      public PlacementModifierType<?> getType()
      Retrieves the specific type definition for this modifier.
      Specified by:
      getType in class PlacementModifier
      Returns:
      The placement modifier type associated with this rarity filter modifier.