From f830c53341e2f1bcfb2228a7fbf7a8b392a1e992 Mon Sep 17 00:00:00 2001 From: ah-OOG-ah <75745146+ah-OOG-ah@users.noreply.github.com> Date: Sun, 31 Mar 2024 13:08:31 -0400 Subject: [PATCH] Fix AIOOBE for non-quad Faces (#15) --- src/main/java/net/malisis/core/renderer/element/Face.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/malisis/core/renderer/element/Face.java b/src/main/java/net/malisis/core/renderer/element/Face.java index 1117b9b..f685ef3 100644 --- a/src/main/java/net/malisis/core/renderer/element/Face.java +++ b/src/main/java/net/malisis/core/renderer/element/Face.java @@ -28,7 +28,7 @@ public class Face implements ITransformable.Translate, ITransformable.Rotate { protected String name; protected Vertex[] vertexes; protected RenderParameters params = new RenderParameters(); - private final float[][] scratch = new float[4][2]; + private float[][] scratch; private static final int[] dirs = { Vertex.NORTH, Vertex.SOUTH, Vertex.EAST, Vertex.WEST, Vertex.UP, Vertex.DOWN }; private static final String[] strdirs = { "North", "South", "East", "West", "Top", "Bottom" }; @@ -38,6 +38,7 @@ public void reset() { public Face(Vertex[] vertexes, RenderParameters params) { this.vertexes = vertexes; + this.scratch = new float[vertexes.length][2]; this.params = params != null ? params : this.params; this.setName(null); } @@ -57,6 +58,7 @@ public Face(Face face) { public Face(Face face, RenderParameters params) { Vertex[] faceVertexes = face.getVertexes(); this.vertexes = new Vertex[faceVertexes.length]; + this.scratch = new float[faceVertexes.length][2]; for (int i = 0; i < faceVertexes.length; i++) vertexes[i] = new Vertex(faceVertexes[i]); this.params = params != null ? params : this.params; name = face.name; @@ -68,6 +70,7 @@ public void copy(Face f) { boolean init = false; if (this.vertexes.length != f.vertexes.length) { this.vertexes = new Vertex[f.vertexes.length]; + this.scratch = new float[f.vertexes.length][2]; init = true; }