/// <summary>
        /// Add a chunk.
        /// </summary>
        /// <param name="chunk">The chunk to add.</param>
        public void AddChunk(TerrainChunk chunk)
        {
            lock (this.chunksLock)
            {
                this.chunks.Add(chunk.Index, chunk);
            }

            if (this.ChunkAdded != null)
            {
                this.ChunkAdded(this, chunk.Index);
            }
        }
 /// <summary>
 /// Try to get the chunk.
 /// </summary>
 /// <param name="chunkIndex">The chunk index.</param>
 /// <param name="chunk">The chunk.</param>
 /// <returns>True if the chunk exists.</returns>
 public bool TryGetChunk(Vector2I chunkIndex, out TerrainChunk chunk)
 {
     return this.chunks.TryGetValue(chunkIndex, out chunk);
 }