package net.minecraft.world.level.levelgen.placement; import com.mojang.serialization.MapCodec; import java.util.function.Supplier; import java.util.stream.Stream; import net.minecraft.core.BlockPos; import net.minecraft.util.RandomSource; public class InSquarePlacement extends PlacementModifier { private static final InSquarePlacement INSTANCE = new InSquarePlacement(); public static final MapCodec CODEC = MapCodec.unit((Supplier)(() -> INSTANCE)); public static InSquarePlacement spread() { return INSTANCE; } @Override public Stream getPositions(final PlacementContext context, final RandomSource random, final BlockPos origin) { int x = random.nextInt(16) + origin.getX(); int z = random.nextInt(16) + origin.getZ(); return Stream.of(new BlockPos(x, origin.getY(), z)); } @Override public PlacementModifierType type() { return PlacementModifierType.IN_SQUARE; } }