/// <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); } } } }