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    }