    001    package net.minecraftforge.event.terraingen;
    002
    003    import net.minecraft.world.biome.BiomeGenBase;
    004    import net.minecraft.world.chunk.IChunkProvider;
    005    import net.minecraftforge.event.*;
    006
    007    public 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 = sizeX;
    067                this.sizeZ = sizeZ;
    068            }
    069
    070        }
    071    }