    001package net.minecraftforge.event.terraingen;
    002
    003import net.minecraft.world.biome.BiomeGenBase;
    004import net.minecraft.world.chunk.IChunkProvider;
    005import net.minecraftforge.event.*;
    006
    007public class ChunkProviderEvent extends Event
    008{
    009
    010    public final IChunkProvider chunkProvider;
    011
    012    public ChunkProviderEvent(IChunkProvider chunkProvider)
    013    {
    014        this.chunkProvider = chunkProvider;
    015    }
    016
    017    /**
    018     * This event is fired when a chunks blocks are replaced by a biomes top and
    019     * filler blocks.
    020     *
    021     * You can set the result to DENY to prevent the default replacement.
    022     */
    023    @HasResult
    024    public static class ReplaceBiomeBlocks extends ChunkProviderEvent
    025    {
    026        public final int chunkX;
    027        public final int chunkZ;
    028        public final byte[] blockArray;
    029        public final BiomeGenBase[] biomeArray;
    030
    031        public ReplaceBiomeBlocks(IChunkProvider chunkProvider, int chunkX, int chunkZ, byte[] blockArray, BiomeGenBase[] biomeArray)
    032        {
    033            super(chunkProvider);
    034            this.chunkX = chunkX;
    035            this.chunkZ = chunkZ;
    036            this.blockArray = blockArray;
    037            this.biomeArray = biomeArray;
    038        }
    039
    040    }
    041
    042    /**
    043     * This event is fired before a chunks terrain noise field is initialized.
    044     *
    045     * You can set the result to DENY to substitute your own noise field.
    046     */
    047    @HasResult
    048    public static class InitNoiseField extends ChunkProviderEvent
    049    {
    050        public double[] noisefield;
    051        public final int posX;
    052        public final int posY;
    053        public final int posZ;
    054        public final int sizeX;
    055        public final int sizeY;
    056        public final int sizeZ;
    057
    058        public InitNoiseField(IChunkProvider chunkProvider, double[] noisefield, int posX, int posY, int posZ, int sizeX, int sizeY, int sizeZ)
    059        {
    060            super(chunkProvider);
    061            this.noisefield = noisefield;
    062            this.posX = posX;
    063            this.posY = posY;
    064            this.posZ = posZ;
    065            this.sizeX = sizeX;
    066            this.sizeY = sizeY;
    067            this.sizeZ = sizeZ;
    068        }
    069
    070    }
    071}