Esempio n. 1
0
    /// <summary>
    /// Updates the block of a chunk described by the given block update parameters.
    /// </summary>
    /// <param name="blockUpdate">The parameters of which block to update and what to update it to.</param>
    private static void UpdateBlock(Block.BlockUpdateParameters blockUpdate)
    {
        Vector3Int chunkPos    = blockUpdate.WorldPos.WorldPosToChunkPos();
        Vector3Int internalPos = blockUpdate.WorldPos.WorldPosToInternalPos();

        if (TryGetChunk(chunkPos, out Chunk chunk) == true)
        {
            chunk.UpdateBlock(internalPos, blockUpdate.Block);
        }
    }
Esempio n. 2
0
 /// <summary>
 /// Adds an action to the queue for the world thread to run.
 /// </summary>
 /// <param name="action">The action to add.</param>
 public static void AddBlockUpdateToQueue(Block.BlockUpdateParameters blockUpdate)
 {
     blockUpdateQueue.Enqueue(blockUpdate);
 }