void UpdateIfEqual(int value1, int value2, WorldPos pos)
 {
     if (value1 == value2)
     {
         Chunk chunk = GetChunk(pos.x, pos.y, pos.z);
         if (chunk != null)
         {
             chunk.AddToUpdateList();
         }
     }
 }
        public void SetBlock(int x, int y, int z, BlockBase block)
        {
            Chunk chunk = GetChunk(x, y, z);

            if (chunk != null)
            {
                chunk.SetBlock(x - chunk.pos.x, y - chunk.pos.y, z - chunk.pos.z, block);
                chunk.AddToUpdateList();

                UpdateIfEqual(x - chunk.pos.x, 0, new WorldPos(x - 1, y, z));
                UpdateIfEqual(x - chunk.pos.x, Chunk.chunkSize - 1, new WorldPos(x + 1, y, z));
                UpdateIfEqual(y - chunk.pos.y, 0, new WorldPos(x, y - 1, z));
                UpdateIfEqual(y - chunk.pos.y, Chunk.chunkSize - 1, new WorldPos(x, y + 1, z));
                UpdateIfEqual(z - chunk.pos.z, 0, new WorldPos(x, y, z - 1));
                UpdateIfEqual(z - chunk.pos.z, Chunk.chunkSize - 1, new WorldPos(x, y, z + 1));
            }
        }