    001    package net.minecraftforge.event.terraingen;
    002
    003    import java.util.Random;
    004
    005    import net.minecraft.world.World;
    006    import net.minecraftforge.event.*;
    007
    008    public class DecorateBiomeEvent extends Event
    009    {
    010        public final World world;
    011        public final Random rand;
    012        public final int chunkX;
    013        public final int chunkZ;
    014
    015        public DecorateBiomeEvent(World world, Random rand, int worldX, int worldZ)
    016        {
    017            this.world = world;
    018            this.rand = rand;
    019            this.chunkX = worldX;
    020            this.chunkZ = worldZ;
    021        }
    022
    023        public static class Pre extends DecorateBiomeEvent
    024        {
    025            public Pre(World world, Random rand, int worldX, int worldZ)
    026            {
    027                super(world, rand, worldX, worldZ);
    028            }
    029        }
    030
    031        public static class Post extends DecorateBiomeEvent
    032        {
    033            public Post(World world, Random rand, int worldX, int worldZ)
    034            {
    035                super(world, rand, worldX, worldZ);
    036            }
    037        }
    038
    039        /**
    040         * This event is fired when a chunk is decorated with a biome feature.
    041         *
    042         * You can set the result to DENY to prevent the default biome decoration.
    043         */
    044        @HasResult
    045        public static class Decorate extends DecorateBiomeEvent
    046        {
    047            /** Use CUSTOM to filter custom event types
    048             */
    049            public static enum EventType { BIG_SHROOM, CACTUS, CLAY, DEAD_BUSH, LILYPAD, FLOWERS, GRASS, LAKE, PUMPKIN, REED, SAND, SAND_PASS2, SHROOM, TREE, CUSTOM }
    050
    051            public final EventType type;
    052
    053            public Decorate(World world, Random rand, int worldX, int worldZ, EventType type)
    054            {
    055                super(world, rand, worldX, worldZ);
    056                this.type = type;
    057            }
    058        }
    059    }