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.minecraftforge.event.world.*; 008 009 public class PopulateChunkEvent extends ChunkProviderEvent 010 { 011 public final World world; 012 public final Random rand; 013 public final int chunkX; 014 public final int chunkZ; 015 public final boolean hasVillageGenerated; 016 017 public PopulateChunkEvent(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) 018 { 019 super(chunkProvider); 020 this.world = world; 021 this.rand = rand; 022 this.chunkX = chunkX; 023 this.chunkZ = chunkZ; 024 this.hasVillageGenerated = hasVillageGenerated; 025 } 026 027 public static class Pre extends PopulateChunkEvent 028 { 029 public Pre(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) 030 { 031 super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated); 032 } 033 } 034 035 public static class Post extends PopulateChunkEvent 036 { 037 public Post(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) 038 { 039 super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated); 040 } 041 } 042 043 /** 044 * This event is fired when a chunk is populated with a terrain feature. 045 * 046 * You can set the result to DENY to prevent the default generation 047 * of a terrain feature. 048 */ 049 @HasResult 050 public static class Populate extends PopulateChunkEvent 051 { 052 /** Use CUSTOM to filter custom event types 053 */ 054 public static enum EventType { DUNGEON, FIRE, GLOWSTONE, ICE, LAKE, LAVA, NETHER_LAVA, CUSTOM } 055 056 public final EventType type; 057 058 public Populate(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated, EventType type) 059 { 060 super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated); 061 this.type = type; 062 } 063 } 064 }