Beispiel #1
0
        /// <summary>
        /// Returns a chunk
        /// </summary>
        /// <returns></returns>
        private Chunk FetchChunk(int chunkX, int chunkY)
        {
            ChunkAccess storage = this.Chunks[chunkX, chunkY];

            storage.Recorder.Access();

            if (storage.Chunk == null)
            {
                return(World.Storage.LoadChunk(chunkX, chunkY, this.DimensionID));
            }
            else
            {
                return(storage.Chunk);
            }
        }
        public IEnumerator <Tile> GetEnumerator()
        {
            for (int x = 0; x < this.Width; x++)
            {
                for (int y = 0; y < this.Height; y++)
                {
                    ChunkAccess item = this.Chunks[x, y];

                    if (item.Chunk == null)
                    {
                        this.Chunks[x, y].Chunk = this.FetchChunk(x, y);
                    }

                    foreach (Tile item2 in item.Chunk)
                    {
                        yield return(item2);
                    }
                }
            }
        }