package net.glowstone.generator.populators; import net.glowstone.generator.decorators.nether.FireDecorator; import net.glowstone.generator.decorators.nether.GlowstoneDecorator; import net.glowstone.generator.decorators.nether.LavaDecorator; import net.glowstone.generator.decorators.nether.MushroomDecorator; import net.glowstone.generator.populators.nether.OrePopulator; import org.bukkit.Chunk; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.generator.BlockPopulator; import java.util.ArrayList; import java.util.List; import java.util.Random; public class NetherPopulator extends BlockPopulator { private final List<BlockPopulator> inGroundPopulators = new ArrayList<>(); private final List<BlockPopulator> onGroundPopulators = new ArrayList<>(); private final OrePopulator orePopulator = new OrePopulator(); private final LavaDecorator flowingLavaDecorator = new LavaDecorator(true); private final FireDecorator fireDecorator = new FireDecorator(); private final GlowstoneDecorator glowstoneDecorator1 = new GlowstoneDecorator(true); private final GlowstoneDecorator glowstoneDecorator2 = new GlowstoneDecorator(); private final MushroomDecorator brownMushroomDecorator = new MushroomDecorator(Material.BROWN_MUSHROOM); private final MushroomDecorator redMushroomDecorator = new MushroomDecorator(Material.RED_MUSHROOM); private final LavaDecorator lavaDecorator = new LavaDecorator(); public NetherPopulator() { inGroundPopulators.add(orePopulator); onGroundPopulators.add(flowingLavaDecorator); onGroundPopulators.add(fireDecorator); onGroundPopulators.add(glowstoneDecorator1); onGroundPopulators.add(glowstoneDecorator2); onGroundPopulators.add(fireDecorator); onGroundPopulators.add(brownMushroomDecorator); onGroundPopulators.add(redMushroomDecorator); onGroundPopulators.add(lavaDecorator); flowingLavaDecorator.setAmount(8); fireDecorator.setAmount(1); glowstoneDecorator1.setAmount(1); glowstoneDecorator2.setAmount(1); brownMushroomDecorator.setAmount(1); redMushroomDecorator.setAmount(1); lavaDecorator.setAmount(16); } @Override public void populate(World world, Random random, Chunk chunk) { populateInGround(world, random, chunk); populateOnGround(world, random, chunk); } private void populateInGround(World world, Random random, Chunk chunk) { for (BlockPopulator populator : inGroundPopulators) { populator.populate(world, random, chunk); } } private void populateOnGround(World world, Random random, Chunk chunk) { for (BlockPopulator populator : onGroundPopulators) { populator.populate(world, random, chunk); } } }