001    package net.minecraftforge.event.terraingen;
002    
003    import java.util.Random;
004    
005    import net.minecraft.src.*;
006    import net.minecraftforge.common.*;
007    import net.minecraftforge.event.Event.*;
008    import net.minecraftforge.event.terraingen.DecorateBiomeEvent.*;
009    import net.minecraftforge.event.terraingen.OreGenEvent.*;
010    import net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.*;
011    import net.minecraftforge.event.terraingen.PopulateChunkEvent.*;
012    
013    public abstract class TerrainGen
014    {
015        public static NoiseGeneratorOctaves[] getModdedNoiseGenerators(World world, Random rand, NoiseGeneratorOctaves[] original)
016        {
017            InitNoiseGensEvent event = new InitNoiseGensEvent(world, rand, original);
018            MinecraftForge.TERRAIN_GEN_BUS.post(event);
019            return event.newNoiseGens;
020        }
021    
022        public static MapGenBase getModdedMapGen(MapGenBase original, InitMapGenEvent.EventType type)
023        {
024            InitMapGenEvent event = new InitMapGenEvent(type, original);
025            MinecraftForge.TERRAIN_GEN_BUS.post(event);
026            return event.newGen;
027        }
028        
029        public static boolean populate(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated, Populate.EventType type)
030        {
031            PopulateChunkEvent.Populate event = new PopulateChunkEvent.Populate(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated, type);
032            MinecraftForge.TERRAIN_GEN_BUS.post(event);
033            return event.getResult() != Result.DENY;
034        }
035        
036        public static boolean decorate(World world, Random rand, int chunkX, int chunkZ, Decorate.EventType type)
037        {
038            Decorate event = new Decorate(world, rand, chunkX, chunkZ, type);
039            MinecraftForge.TERRAIN_GEN_BUS.post(event);
040            return event.getResult() != Result.DENY;
041        }
042        
043        public static boolean generateOre(World world, Random rand, WorldGenerator generator, int worldX, int worldZ, GenerateMinable.EventType type)
044        {
045            GenerateMinable event = new GenerateMinable(world, rand, generator, worldX, worldZ, type);
046            MinecraftForge.ORE_GEN_BUS.post(event);
047            return event.getResult() != Result.DENY;
048        }
049        
050        public static boolean saplingGrowTree(World world, Random rand, int x, int y, int z)
051        {
052            SaplingGrowTreeEvent event = new SaplingGrowTreeEvent(world, rand, x, y, z);
053            MinecraftForge.TERRAIN_GEN_BUS.post(event);
054            return event.getResult() != Result.DENY;
055        }
056    }