public void SetMetadata(Point position, TileMetadata value) => _tileMetadata[Size * position.Y + position.X] = value;
/// <inheritdoc/> public async Task<bool> SetMetadataAsync(Point position, TileMetadata value) { // TODO: Handle concurrency var chunk = await ChunkLoader.GetAsync(position / Chunk.Size); var oldMetadata = chunk.GetMetadata(position % Chunk.Size); if (!Equals(oldMetadata, value)) { // Update chunk chunk.SetMetadata(position % Chunk.Size, value); return true; } return false; }