From 8e034cf328847a9f1eae1b4b7bfdae0e8ac71d08 Mon Sep 17 00:00:00 2001 From: makamys Date: Sat, 11 Jun 2022 14:21:16 +0200 Subject: Make disabling chunk simplification work again --- .../java/makamys/neodymium/renderer/ChunkMesh.java | 44 +++++++++++----------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/main/java/makamys/neodymium/renderer/ChunkMesh.java b/src/main/java/makamys/neodymium/renderer/ChunkMesh.java index e175167..1c979b7 100644 --- a/src/main/java/makamys/neodymium/renderer/ChunkMesh.java +++ b/src/main/java/makamys/neodymium/renderer/ChunkMesh.java @@ -103,28 +103,30 @@ public class ChunkMesh extends Mesh { quads.add(quad); } - ArrayList> quadsByPlaneDir = new ArrayList<>(); // XY, XZ, YZ - for(int i = 0; i < 3; i++) { - quadsByPlaneDir.add(new ArrayList()); - } - for(MeshQuad quad : quads) { - if(quad.plane != MeshQuad.Plane.NONE) { - quadsByPlaneDir.get(quad.plane.ordinal() - 1).add(quad); + if(Config.simplifyChunkMeshes) { + ArrayList> quadsByPlaneDir = new ArrayList<>(); // XY, XZ, YZ + for(int i = 0; i < 3; i++) { + quadsByPlaneDir.add(new ArrayList()); } - } - for(int plane = 0; plane < 3; plane++) { - quadsByPlaneDir.get(plane).sort(MeshQuad.QuadPlaneComparator.quadPlaneComparators[plane]); - } - - for(int plane = 0; plane < 3; plane++) { - List planeDirQuads = quadsByPlaneDir.get(plane); - int planeStart = 0; - for(int quadI = 0; quadI < planeDirQuads.size(); quadI++) { - MeshQuad quad = planeDirQuads.get(quadI); - MeshQuad nextQuad = quadI == planeDirQuads.size() - 1 ? null : planeDirQuads.get(quadI + 1); - if(!quad.onSamePlaneAs(nextQuad)) { - simplifyPlane(planeDirQuads.subList(planeStart, quadI + 1)); - planeStart = quadI + 1; + for(MeshQuad quad : quads) { + if(quad.plane != MeshQuad.Plane.NONE) { + quadsByPlaneDir.get(quad.plane.ordinal() - 1).add(quad); + } + } + for(int plane = 0; plane < 3; plane++) { + quadsByPlaneDir.get(plane).sort(MeshQuad.QuadPlaneComparator.quadPlaneComparators[plane]); + } + + for(int plane = 0; plane < 3; plane++) { + List planeDirQuads = quadsByPlaneDir.get(plane); + int planeStart = 0; + for(int quadI = 0; quadI < planeDirQuads.size(); quadI++) { + MeshQuad quad = planeDirQuads.get(quadI); + MeshQuad nextQuad = quadI == planeDirQuads.size() - 1 ? null : planeDirQuads.get(quadI + 1); + if(!quad.onSamePlaneAs(nextQuad)) { + simplifyPlane(planeDirQuads.subList(planeStart, quadI + 1)); + planeStart = quadI + 1; + } } } } -- cgit