Class WaterDepthFilterModifier

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

public class WaterDepthFilterModifier extends PlacementModifier
A placement modifier that filters positions based on the depth of the water column above them.

This modifier is strictly utilized for aquatic feature generation (such as seagrass, kelp, or coral), ensuring that the target placement block is submerged under a specific maximum depth of contiguous water.

  • Field Details

  • Constructor Details

    • WaterDepthFilterModifier

      public WaterDepthFilterModifier(int maxDepth)
      Constructs a new WaterDepthFilterModifier.
      Parameters:
      maxDepth - The maximum tolerable water depth.
  • Method Details

    • getPositions

      public Stream<org.bukkit.util.Vector> getPositions(PlacementContext context, Stream<org.bukkit.util.Vector> positions)
      Filters the incoming positions by scanning the Y-axis upward to count contiguous water.
      Specified by:
      getPositions in class PlacementModifier
      Parameters:
      context - The current placement context.
      positions - The incoming stream of potential placement vectors.
      Returns:
      A filtered stream containing only vectors submerged within the allowed depth limits.
    • 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 water depth filter modifier.