コード例 #1
0
ファイル: Chunk.cs プロジェクト: SvenEV/OrangeBugReloaded
 public void SetMetadata(Point position, TileMetadata value)
     => _tileMetadata[Size * position.Y + position.X] = value;
コード例 #2
0
ファイル: Map.cs プロジェクト: SvenEV/OrangeBugReloaded
        /// <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;
        }