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 }