X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Firtimaled%2Fbbor%2Fclient%2Frenderers%2FRenderBatch.java;h=016b45747277c812d6dc62bf8aa1da8f2c0f922f;hb=5e8953ae97badb54c36f66faabda137b3350c57b;hp=c2dfa8cfc34c4f570e19ed7dcdb81a0129551669;hpb=a6ee7e8e342c031cb5c385c145999ce7c6fc4b08;p=BoundingBoxOutlineReloaded.git diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/RenderBatch.java b/src/main/java/com/irtimaled/bbor/client/renderers/RenderBatch.java index c2dfa8c..016b457 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/RenderBatch.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/RenderBatch.java @@ -36,7 +36,7 @@ public class RenderBatch { lineBufferBuilder.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR); } - public static void drawSolidBox(MatrixStack.Entry matrixEntry, Box box, Color color, int alpha, boolean mask) { + public static void drawSolidBox(MatrixStack.Entry matrixEntry, Box box, Color color, int alpha, boolean mask, boolean sameX, boolean sameY, boolean sameZ) { final float minX = (float) box.minX; final float minY = (float) box.minY; final float minZ = (float) box.minZ; @@ -49,58 +49,55 @@ public class RenderBatch { final BufferBuilder bufferBuilder = mask ? RenderBatch.quadBufferBuilderMasked : RenderBatch.quadBufferBuilderNonMasked; - if (minX != maxX && minZ != maxZ) { + if (!sameX && !sameZ) { if (mask) quadMaskedCount.getAndIncrement(); else quadNonMaskedCount.getAndIncrement(); bufferBuilder.vertex(matrixEntry.getModel(), minX, minY, minZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, minZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, maxZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), minX, minY, maxZ).color(red, green, blue, alpha).next(); + if (!sameY) { + if (mask) quadMaskedCount.getAndIncrement(); + else quadNonMaskedCount.getAndIncrement(); + bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, minZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, maxZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, maxZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, minZ).color(red, green, blue, alpha).next(); + } } - if (minX != maxX && minZ != maxZ) { - if (mask) quadMaskedCount.getAndIncrement(); - else quadNonMaskedCount.getAndIncrement(); - bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, minZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, maxZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, maxZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, minZ).color(red, green, blue, alpha).next(); - } - - if (minX != maxX && minY != maxY) { + if (!sameX && !sameY) { if (mask) quadMaskedCount.getAndIncrement(); else quadNonMaskedCount.getAndIncrement(); bufferBuilder.vertex(matrixEntry.getModel(), minX, minY, minZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, minZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, minZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, minZ).color(red, green, blue, alpha).next(); + if (!sameZ) { + if (mask) quadMaskedCount.getAndIncrement(); + else quadNonMaskedCount.getAndIncrement(); + bufferBuilder.vertex(matrixEntry.getModel(), minX, minY, maxZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, maxZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, maxZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, maxZ).color(red, green, blue, alpha).next(); + } } - if (minY != maxY && minZ != maxZ) { - if (mask) quadMaskedCount.getAndIncrement(); - else quadNonMaskedCount.getAndIncrement(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, minZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, minZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, maxZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, maxZ).color(red, green, blue, alpha).next(); - } - - if (minX != maxX && minY != maxY) { - if (mask) quadMaskedCount.getAndIncrement(); - else quadNonMaskedCount.getAndIncrement(); - bufferBuilder.vertex(matrixEntry.getModel(), minX, minY, maxZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, maxZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, maxZ).color(red, green, blue, alpha).next(); - bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, maxZ).color(red, green, blue, alpha).next(); - } - - if (minY != maxY && minZ != maxZ) { + if (!sameY && !sameZ) { if (mask) quadMaskedCount.getAndIncrement(); else quadNonMaskedCount.getAndIncrement(); bufferBuilder.vertex(matrixEntry.getModel(), minX, minY, minZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), minX, minY, maxZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, maxZ).color(red, green, blue, alpha).next(); bufferBuilder.vertex(matrixEntry.getModel(), minX, maxY, minZ).color(red, green, blue, alpha).next(); + if (!sameX) { + if (mask) quadMaskedCount.getAndIncrement(); + else quadNonMaskedCount.getAndIncrement(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, minZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, minZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, maxY, maxZ).color(red, green, blue, alpha).next(); + bufferBuilder.vertex(matrixEntry.getModel(), maxX, minY, maxZ).color(red, green, blue, alpha).next(); + } } }