001    package net.minecraft.world.chunk;
002    
003    import java.util.List;
004    import net.minecraft.entity.EnumCreatureType;
005    import net.minecraft.util.IProgressUpdate;
006    import net.minecraft.world.ChunkPosition;
007    import net.minecraft.world.World;
008    
009    public interface IChunkProvider
010    {
011        /**
012         * Checks to see if a chunk exists at x, y
013         */
014        boolean chunkExists(int var1, int var2);
015    
016        /**
017         * Will return back a chunk, if it doesn't exist and its not a MP client it will generates all the blocks for the
018         * specified chunk from the map seed and chunk seed
019         */
020        Chunk provideChunk(int var1, int var2);
021    
022        /**
023         * loads or generates the chunk at the chunk location specified
024         */
025        Chunk loadChunk(int var1, int var2);
026    
027        /**
028         * Populates chunk with ores etc etc
029         */
030        void populate(IChunkProvider var1, int var2, int var3);
031    
032        /**
033         * Two modes of operation: if passed true, save all Chunks in one go.  If passed false, save up to two chunks.
034         * Return true if all chunks have been saved.
035         */
036        boolean saveChunks(boolean var1, IProgressUpdate var2);
037    
038        /**
039         * Unloads the 100 oldest chunks from memory, due to a bug with chunkSet.add() never being called it thinks the list
040         * is always empty and will not remove any chunks.
041         */
042        boolean unload100OldestChunks();
043    
044        /**
045         * Returns if the IChunkProvider supports saving.
046         */
047        boolean canSave();
048    
049        /**
050         * Converts the instance data to a readable string.
051         */
052        String makeString();
053    
054        /**
055         * Returns a list of creatures of the specified type that can spawn at the given location.
056         */
057        List getPossibleCreatures(EnumCreatureType var1, int var2, int var3, int var4);
058    
059        /**
060         * Returns the location of the closest structure of the specified type. If not found returns null.
061         */
062        ChunkPosition findClosestStructure(World var1, String var2, int var3, int var4, int var5);
063    
064        int getLoadedChunkCount();
065    
066        void recreateStructures(int var1, int var2);
067    }