    001package net.minecraftforge.event.terraingen;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import net.minecraft.world.biome.BiomeDecorator;
    006import net.minecraft.world.biome.BiomeGenBase;
    007import net.minecraftforge.event.*;
    008
    009public 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}