示例#1
0
 public void SetMetadata(Point position, TileMetadata value)
     => _tileMetadata[Size * position.Y + position.X] = value;
示例#2
0
        /// <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;
        }