001    package net.minecraftforge.event.terraingen;
002    
003    import cpw.mods.fml.common.Side;
004    import cpw.mods.fml.common.asm.SideOnly;
005    import net.minecraft.src.*;
006    import net.minecraftforge.event.*;
007    
008    public class BiomeEvent extends Event
009    {
010        public final BiomeGenBase biome;
011    
012        public BiomeEvent(BiomeGenBase biome)
013        {
014            this.biome = biome;
015        }
016        
017        public static class CreateDecorator extends BiomeEvent
018        {
019            public final BiomeDecorator originalBiomeDecorator;
020            public BiomeDecorator newBiomeDecorator;
021            
022            public CreateDecorator(BiomeGenBase biome, BiomeDecorator original)
023            {
024                super(biome);
025                originalBiomeDecorator = original;
026                newBiomeDecorator = original;
027            }
028        }
029    
030        public static class BlockReplacement extends BiomeEvent
031        {
032            public final int original;
033            public int replacement;
034    
035            public BlockReplacement(BiomeGenBase biome, int original, int replacement)
036            {
037                super(biome);
038                this.original = original;
039                this.replacement = replacement;
040            }
041        }
042        
043    
044        @SideOnly(Side.CLIENT)
045       public static class BiomeColor extends BiomeEvent
046        {
047            public final int originalColor;
048            public int newColor;
049            
050            public BiomeColor(BiomeGenBase biome, int original)
051            {
052                super(biome);
053                originalColor = original;
054                newColor = original;
055            }
056        }
057        
058        /**
059         * This event is fired when the village generator attempts to choose a block ID
060         * based on the village's biome.
061         * 
062         * You can set the result to DENY to prevent the default block ID selection.
063         */
064        @HasResult
065        public static class GetVillageBlockID extends BlockReplacement
066        {
067            public GetVillageBlockID(BiomeGenBase biome, int original, int replacement)
068            {
069                super(biome, original, replacement);
070            }
071        }
072        
073        /**
074         * This event is fired when the village generator attempts to choose a block
075         * metadata based on the village's biome.
076         * 
077         * You can set the result to DENY to prevent the default block metadata selection.
078         */
079        @HasResult
080        public static class GetVillageBlockMeta extends BlockReplacement
081        {
082            public GetVillageBlockMeta(BiomeGenBase biome, int original, int replacement)
083            {
084                super(biome, original, replacement);
085            }
086        }
087        
088        /**
089         * This event is fired when a biome is queried for its grass color. 
090         */
091    
092        @SideOnly(Side.CLIENT)
093        public static class GetGrassColor extends BiomeColor
094        {
095            public GetGrassColor(BiomeGenBase biome, int original)
096            {
097                super(biome, original);
098            }
099        }
100        
101        /**
102         * This event is fired when a biome is queried for its grass color. 
103         */
104        @SideOnly(Side.CLIENT)
105        public static class GetFoliageColor extends BiomeColor
106        {
107            public GetFoliageColor(BiomeGenBase biome, int original)
108            {
109                super(biome, original);
110            }
111        }
112        
113        /**
114         * This event is fired when a biome is queried for its water color. 
115         */
116        @SideOnly(Side.CLIENT)
117        public static class GetWaterColor extends BiomeColor
118        {
119            public GetWaterColor(BiomeGenBase biome, int original)
120            {
121                super(biome, original);
122            }
123        }
124    }