package net.minecraft.world.chunk;
import java.util.List;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.util.IProgressUpdate;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
public interface IChunkProvider
{
/**
* Checks to see if a chunk exists at x, y
*/
boolean chunkExists(int var1, int var2);
/**
* Will return back a chunk, if it doesn't exist and its not a MP client it will generates all the blocks for the
* specified chunk from the map seed and chunk seed
*/
Chunk provideChunk(int var1, int var2);
/**
* loads or generates the chunk at the chunk location specified
*/
Chunk loadChunk(int var1, int var2);
/**
* Populates chunk with ores etc etc
*/
void populate(IChunkProvider var1, int var2, int var3);
/**
* Two modes of operation: if passed true, save all Chunks in one go. If passed false, save up to two chunks.
* Return true if all chunks have been saved.
*/
boolean saveChunks(boolean var1, IProgressUpdate var2);
/**
* Unloads the 100 oldest chunks from memory, due to a bug with chunkSet.add() never being called it thinks the list
* is always empty and will not remove any chunks.
*/
boolean unload100OldestChunks();
/**
* Returns if the IChunkProvider supports saving.
*/
boolean canSave();
/**
* Converts the instance data to a readable string.
*/
String makeString();
/**
* Returns a list of creatures of the specified type that can spawn at the given location.
*/
List getPossibleCreatures(EnumCreatureType var1, int var2, int var3, int var4);
/**
* Returns the location of the closest structure of the specified type. If not found returns null.
*/
ChunkPosition findClosestStructure(World var1, String var2, int var3, int var4, int var5);
int getLoadedChunkCount();
void recreateStructures(int var1, int var2);
}