    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}