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