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