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 }