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