public bool IsSolid(WixelDirection direction) { if (FaceInformation.Count == 0) { return(false); } WixelDirectionInformation faceInfo = GetInformationByDirection(direction); return(faceInfo.IsSolid); }
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); }
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); }
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); }
public Vector2 TexturePosition(WixelDirection direction) { WixelDirectionInformation faceInfo = GetInformationByDirection(direction); return(faceInfo.Tile); }