package net.minecraft.world.level.levelgen.placement; import net.minecraft.world.level.levelgen.feature.configurations.DecoratorConfiguration; import net.minecraft.world.level.levelgen.Heightmap; import java.util.stream.Stream; import net.minecraft.core.BlockPos; import java.util.Random; import net.minecraft.world.level.levelgen.ChunkGeneratorSettings; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.LevelAccessor; import com.mojang.datafixers.Dynamic; import java.util.function.Function; public class ChanceTopSolidHeightmapDecorator extends FeatureDecorator { public ChanceTopSolidHeightmapDecorator(final Function, ? extends ChanceDecoratorConfiguration> function) { super(function); } @Override public Stream getPositions(final LevelAccessor bju, final ChunkGenerator bzx, final Random random, final ChanceDecoratorConfiguration cja, final BlockPos fk) { if (random.nextFloat() < 1.0f / cja.chance) { final int integer7 = random.nextInt(16) + fk.getX(); final int integer8 = random.nextInt(16) + fk.getZ(); final int integer9 = bju.getHeight(Heightmap.Types.OCEAN_FLOOR_WG, integer7, integer8); return Stream.of(new BlockPos(integer7, integer9, integer8)); } return Stream.empty(); } }