package net.minecraft.world.level.levelgen.placement; import com.mojang.serialization.Codec; import java.util.stream.Stream; import net.minecraft.core.BlockPos; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.util.RandomSource; public abstract class PlacementModifier { public static final Codec CODEC = BuiltInRegistries.PLACEMENT_MODIFIER_TYPE .byNameCodec() .dispatch(PlacementModifier::type, PlacementModifierType::codec); public abstract Stream getPositions(PlacementContext context, RandomSource random, BlockPos pos); public abstract PlacementModifierType type(); }