示例#1
0
        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;
        }
示例#2
0
        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;
                }
            }
        }