Example #1
0
    public bool IsSolid(WixelDirection direction)
    {
        if (FaceInformation.Count == 0)
        {
            return(false);
        }

        WixelDirectionInformation faceInfo = GetInformationByDirection(direction);

        return(faceInfo.IsSolid);
    }
Example #2
0
    public Vector2[] FaceUVs(WixelDirection direction)
    {
        WixelDirectionInformation faceInfo = GetInformationByDirection(direction);

        Vector2[] UVs     = new Vector2[4];
        Vector2   tilePos = TexturePosition(direction);

        for (int i = 0; i < faceInfo.UVs.Count; i++)
        {
            Vector2 uvPoint       = faceInfo.UVs[i];
            Vector2 actualUVPoint = new Vector2
            {
                x = (tileSize * tilePos.x) + (tileSize * uvPoint.x),
                y = (tileSize * tilePos.y) + (tileSize * uvPoint.y),
            };

            UVs[i] = actualUVPoint;
        }

        return(UVs);
    }
Example #3
0
    private WixelChunkMeshData FaceData(WixelDirection direction, WixelChunk chunk, Vector3 worldPosition, WixelChunkMeshData meshData)
    {
        if (FaceInformation.Count == 0)
        {
            return(meshData);
        }

        WixelDirectionInformation faceInfo = GetInformationByDirection(direction);

        for (int i = 0; i < faceInfo.Vertices.Count; i++)
        {
            Vector3 vertexPosition = faceInfo.Vertices[i] * blockScale;
            Vector3 actualPosition = vertexPosition + worldPosition;

            meshData.AddVertex(actualPosition);
        }

        meshData.AddQuadTriangles();
        meshData.uv.AddRange(FaceUVs(direction));
        return(meshData);
    }
Example #4
0
    private WixelDirectionInformation GetInformationByDirection(WixelDirection direction)
    {
        WixelDirectionInformation result = null;

        for (int i = 0; i < FaceInformation.Count; i++)
        {
            WixelDirectionInformation current = FaceInformation[i];
            if (current.Direction != direction)
            {
                continue;
            }

            result = current;
            break;
        }

        if (result == null)
        {
            string message = string.Format("Could not find face data for Wixel {0}, Direction {1}", Name, direction.ToString());
            throw new DataException(message);
        }

        return(result);
    }
Example #5
0
    public Vector2 TexturePosition(WixelDirection direction)
    {
        WixelDirectionInformation faceInfo = GetInformationByDirection(direction);

        return(faceInfo.Tile);
    }