001package net.minecraft.world.chunk;
002
003import java.util.List;
004import net.minecraft.entity.EnumCreatureType;
005import net.minecraft.util.IProgressUpdate;
006import net.minecraft.world.ChunkPosition;
007import net.minecraft.world.World;
008
009public 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}