Exemplo n.º 1
0
    public Color GetBlock(Vector3 localPos)
    {
        Vector3i pos = new Vector3i(localPos);

        if (pos.y < 0)
        {
            return(Color.black);
        }

        if (pos.x < 0 || pos.z < 0 ||
            pos.y >= size || pos.x >= size || pos.z >= size)
        {
            VoxelChunk c = VoxelChunk.GetChunck(chunk.myPosition + (localPos / VoxelChunk.blocksPerUnit));
            if (c == null || c == chunk)
            {
                return(new Color());                        // return Color.white;
            }
            else
            {
                Vector3 local = (chunk.myPosition + (localPos / VoxelChunk.blocksPerUnit)) - c.myPosition;
                local *= VoxelChunk.blocksPerUnit;
                return(c.map.GetBlock(local));
            }
        }
        return(map[pos.x, pos.y, pos.z]);
    }