diff --git a/client/net/minecraftforge/client/model/obj/Face.java b/client/net/minecraftforge/client/model/obj/Face.java index f47951b1d8..aeda2a3e43 100644 --- a/client/net/minecraftforge/client/model/obj/Face.java +++ b/client/net/minecraftforge/client/model/obj/Face.java @@ -31,7 +31,7 @@ public class Face float averageU = 0F; float averageV = 0F; - if (textureCoordinates.length != 0) + if ((textureCoordinates != null) && (textureCoordinates.length > 0)) { for (int i = 0; i < textureCoordinates.length; ++i) { @@ -48,7 +48,7 @@ public class Face for (int i = 0; i < vertices.length; ++i) { - if (textureCoordinates.length != 0) + if ((textureCoordinates != null) && (textureCoordinates.length > 0)) { offsetU = textureOffset; offsetV = textureOffset; diff --git a/client/net/minecraftforge/client/model/obj/WavefrontObject.java b/client/net/minecraftforge/client/model/obj/WavefrontObject.java index 37291745ec..55603fbbba 100644 --- a/client/net/minecraftforge/client/model/obj/WavefrontObject.java +++ b/client/net/minecraftforge/client/model/obj/WavefrontObject.java @@ -341,13 +341,13 @@ public class WavefrontObject implements IModelCustom } } - face.vertices = new Vertex[tokens.length]; - face.textureCoordinates = new TextureCoordinate[tokens.length]; - face.vertexNormals = new Vertex[tokens.length]; - // f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 ... if (isValidFace_V_VT_VN_Line(line)) { + face.vertices = new Vertex[tokens.length]; + face.textureCoordinates = new TextureCoordinate[tokens.length]; + face.vertexNormals = new Vertex[tokens.length]; + for (int i = 0; i < tokens.length; ++i) { subTokens = tokens[i].split("/"); @@ -362,6 +362,9 @@ public class WavefrontObject implements IModelCustom // f v1/vt1 v2/vt2 v3/vt3 ... else if (isValidFace_V_VT_Line(line)) { + face.vertices = new Vertex[tokens.length]; + face.textureCoordinates = new TextureCoordinate[tokens.length]; + for (int i = 0; i < tokens.length; ++i) { subTokens = tokens[i].split("/"); @@ -375,6 +378,9 @@ public class WavefrontObject implements IModelCustom // f v1//vn1 v2//vn2 v3//vn3 ... else if (isValidFace_V_VN_Line(line)) { + face.vertices = new Vertex[tokens.length]; + face.vertexNormals = new Vertex[tokens.length]; + for (int i = 0; i < tokens.length; ++i) { subTokens = tokens[i].split("//"); @@ -388,6 +394,8 @@ public class WavefrontObject implements IModelCustom // f v1 v2 v3 ... else if (isValidFace_V_Line(line)) { + face.vertices = new Vertex[tokens.length]; + for (int i = 0; i < tokens.length; ++i) { face.vertices[i] = vertices.get(Integer.parseInt(tokens[i]) - 1);