public void Store(Chunk chunk, ChunkManager manager) { int x = chunk.Coords.X & _dimMask; int z = chunk.Coords.Z & _dimMask; if (Chunks[x, z] != null) { LoadedChunks.Remove(Chunks[x, z]); manager.PrepareChunkForUnload(Chunks[x, z]); } Chunks[x, z] = chunk; LoadedChunks.Add(chunk); ChunksAddedSinceSort = true; }
public void UnloadAll(ChunkManager manager) { for (int i = 0; i < LoadedChunks.Count; i++) { manager.PrepareChunkForUnload(LoadedChunks[i]); } LoadedChunks.Clear(); for (int x = 0; x <= _dimMask; x++) { for (int z = 0; z <= _dimMask; z++) { Chunks[x, z] = null; } } }