package net.glowstone.generator.decorators.overworld; import net.glowstone.generator.decorators.BlockDecorator; import net.glowstone.generator.objects.TallGrass; import org.bukkit.Chunk; import org.bukkit.GrassSpecies; import org.bukkit.World; import org.bukkit.material.LongGrass; import java.util.Random; public class TallGrassDecorator extends BlockDecorator { private double fernDensity; public final void setFernDensity(double fernDensity) { this.fernDensity = fernDensity; } @Override public void decorate(World world, Random random, Chunk source) { int sourceX = (source.getX() << 4) + random.nextInt(16); int sourceZ = (source.getZ() << 4) + random.nextInt(16); int sourceY = random.nextInt(Math.abs(world.getHighestBlockYAt(sourceX, sourceZ) << 1)); // the grass species can change on each decoration pass GrassSpecies species = GrassSpecies.NORMAL; if (fernDensity > 0 && random.nextFloat() < fernDensity) { species = GrassSpecies.FERN_LIKE; } new TallGrass(new LongGrass(species)).generate(world, random, sourceX, sourceY, sourceZ); } }