]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Stop using Tessellator
authorIrtimaled <irtimaled@gmail.com>
Sun, 24 Mar 2019 07:50:25 +0000 (00:50 -0700)
committerIrtimaled <irtimaled@gmail.com>
Mon, 25 Mar 2019 03:56:28 +0000 (20:56 -0700)
src/main/java/com/irtimaled/bbor/client/gui/BoundingBoxTypeButton.java
src/main/java/com/irtimaled/bbor/client/gui/SettingsScreen.java
src/main/java/com/irtimaled/bbor/client/renderers/AbstractRenderer.java
src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java
src/main/java/com/irtimaled/bbor/client/renderers/Renderer.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/client/renderers/SlimeChunkRenderer.java
src/main/java/com/irtimaled/bbor/client/renderers/VillageRenderer.java
src/main/java/com/irtimaled/bbor/client/renderers/WorldSpawnRenderer.java

index 814701654092210797bdd5790efc9d4298102601..b3e9d06667096b21d59f88a7faf69383ebd5292a 100644 (file)
@@ -20,17 +20,21 @@ public class BoundingBoxTypeButton extends BoolSettingButton {
         int bottom = top + height - 2;
 
         // top & left
-        drawRect(left, top, right, top + 1, color.getRGB());
-        drawRect(left, top, left + 1, bottom, color.getRGB());
+        drawRectangle(left, top, right, top + 1, color);
+        drawRectangle(left, top, left + 1, bottom, color);
 
         Color darker = color.darker();
         // bottom left & top right
-        drawRect(left, bottom - 2, left + 1, bottom, darker.getRGB());
-        drawRect(right - 1, top, right, top + 1, darker.getRGB());
+        drawRectangle(left, bottom - 2, left + 1, bottom, darker);
+        drawRectangle(right - 1, top, right, top + 1, darker);
 
         Color darkest = darker.darker();
         // bottom & right
-        drawRect(left + 1, bottom - 2, right, bottom, darkest.getRGB());
-        drawRect(right - 1, top + 1, right, bottom, darkest.getRGB());
+        drawRectangle(left + 1, bottom - 2, right, bottom, darkest);
+        drawRectangle(right - 1, top + 1, right, bottom, darkest);
+    }
+
+    private void drawRectangle(int left, int top, int right, int bottom, Color color) {
+        drawRect(left, top, right, bottom, color.getRGB());
     }
 }
index cbb0b8224445bf7fe04bd25da69dd3c6e81588e7..432e4343ee0e30faabc977bb73dae8ea63c38c8c 100644 (file)
@@ -1,16 +1,14 @@
 package com.irtimaled.bbor.client.gui;
 
 import com.irtimaled.bbor.client.ClientProxy;
+import com.irtimaled.bbor.client.renderers.Renderer;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.config.ConfigManager;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.gui.Gui;
 import net.minecraft.client.gui.GuiScreen;
 import net.minecraft.client.gui.IGuiEventListener;
-import net.minecraft.client.renderer.BufferBuilder;
 import net.minecraft.client.renderer.OpenGlHelper;
-import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
 import org.lwjgl.opengl.GL11;
 
 import java.util.HashSet;
@@ -180,32 +178,20 @@ public class SettingsScreen extends GuiScreen {
     }
 
     private void drawScreen(int top, int bottom) {
-        Tessellator tessellator = Tessellator.getInstance();
-        BufferBuilder bufferBuilder = tessellator.getBuffer();
         this.mc.getTextureManager().bindTexture(Gui.OPTIONS_BACKGROUND);
 
         GL11.glDisable(GL11.GL_LIGHTING);
         GL11.glDisable(GL11.GL_FOG);
         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
 
-        bufferBuilder.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);
-        bufferBuilder.pos((double) 0, (double) bottom, 0.0D)
-                .tex((double) ((float) 0 / 32.0F), (double) ((float) bottom / 32.0F))
-                .color(32, 32, 32, 255)
-                .endVertex();
-        bufferBuilder.pos((double) this.width, (double) bottom, 0.0D)
-                .tex((double) ((float) this.width / 32.0F), (double) ((float) bottom / 32.0F))
-                .color(32, 32, 32, 255)
-                .endVertex();
-        bufferBuilder.pos((double) this.width, (double) top, 0.0D)
-                .tex((double) ((float) this.width / 32.0F), (double) ((float) top / 32.0F))
-                .color(32, 32, 32, 255)
-                .endVertex();
-        bufferBuilder.pos((double) 0, (double) top, 0.0D)
-                .tex((double) ((float) 0 / 32.0F), (double) ((float) top / 32.0F))
-                .color(32, 32, 32, 255)
-                .endVertex();
-        tessellator.draw();
+        Renderer.startTextured()
+                .setColor(32, 32, 32)
+                .setAlpha(255)
+                .addPoint(0, bottom, 0, 0, bottom / 32.0F)
+                .addPoint(this.width, bottom, 0, this.width / 32.0F, bottom / 32.0F)
+                .addPoint(this.width, top, 0, this.width / 32.0F, top / 32.0F)
+                .addPoint(0, top, 0, 0, top / 32.0F)
+                .render();
 
         GL11.glDisable(GL11.GL_DEPTH_TEST);
         GL11.glEnable(GL11.GL_BLEND);
@@ -215,43 +201,23 @@ public class SettingsScreen extends GuiScreen {
         GL11.glShadeModel(7425);
         GL11.glDisable(GL11.GL_TEXTURE_2D);
 
-        bufferBuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
-        bufferBuilder.pos((double) 0, (double) (top + 4), 0.0D)
-                .tex(0.0D, 1.0D)
-                .color(0, 0, 0, 0)
-                .endVertex();
-        bufferBuilder.pos((double) this.width, (double) (top + 4), 0.0D)
-                .tex(1.0D, 1.0D)
-                .color(0, 0, 0, 0)
-                .endVertex();
-        bufferBuilder.pos((double) this.width, (double) top, 0.0D)
-                .tex(1.0D, 0.0D)
-                .color(0, 0, 0, 255)
-                .endVertex();
-        bufferBuilder.pos((double) 0, (double) top, 0.0D)
-                .tex(0.0D, 0.0D)
-                .color(0, 0, 0, 255)
-                .endVertex();
-        tessellator.draw();
-
-        bufferBuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
-        bufferBuilder.pos((double) 0, (double) bottom, 0.0D)
-                .tex(0.0D, 1.0D)
-                .color(0, 0, 0, 255)
-                .endVertex();
-        bufferBuilder.pos((double) this.width, (double) bottom, 0.0D)
-                .tex(1.0D, 1.0D)
-                .color(0, 0, 0, 255)
-                .endVertex();
-        bufferBuilder.pos((double) this.width, (double) (bottom - 4), 0.0D)
-                .tex(1.0D, 0.0D)
-                .color(0, 0, 0, 0)
-                .endVertex();
-        bufferBuilder.pos((double) 0, (double) (bottom - 4), 0.0D)
-                .tex(0.0D, 0.0D)
-                .color(0, 0, 0, 0)
-                .endVertex();
-        tessellator.draw();
+        Renderer.startTextured()
+                .setAlpha(0)
+                .addPoint(0, top + 4, 0, 0, 1)
+                .addPoint(this.width, top + 4, 0, 1, 1)
+                .setAlpha(255)
+                .addPoint(this.width, top, 0, 1, 0)
+                .addPoint(0, top, 0, 0, 0)
+                .render();
+
+        Renderer.startTextured()
+                .setAlpha(255)
+                .addPoint(0, bottom, 0, 0, 1)
+                .addPoint(this.width, bottom, 0, 1, 1)
+                .setAlpha(0)
+                .addPoint(this.width, bottom - 4, 0, 1, 0)
+                .addPoint(0, bottom - 4, 0, 0, 0)
+                .render();
 
         GL11.glEnable(GL11.GL_TEXTURE_2D);
         GL11.glShadeModel(7424);
index 1063c1a26b50d77c5e94cb64a983443dd9cc3c4f..87d648436d50d0c3700c81bae784c8e95199a161 100644 (file)
@@ -2,9 +2,6 @@ package com.irtimaled.bbor.client.renderers;
 
 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
 import com.irtimaled.bbor.config.ConfigManager;
-import net.minecraft.client.renderer.BufferBuilder;
-import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
 import org.lwjgl.opengl.GL11;
 
 import java.awt.*;
@@ -14,28 +11,12 @@ public abstract class AbstractRenderer<T extends AbstractBoundingBox> {
 
     void renderBoundingBox(T boundingBox) {
         OffsetBox bb = new OffsetBox(boundingBox.getMinCoords(), boundingBox.getMaxCoords());
-        renderCuboid(bb, boundingBox.getColor(), fill());
+        renderCuboid(bb, boundingBox.getColor());
     }
 
-    boolean fill() {
-        return ConfigManager.fill.get();
-    }
-
-    void renderLine(OffsetPoint point1, OffsetPoint point2, Color color) {
-        int colorR = color.getRed();
-        int colorG = color.getGreen();
-        int colorB = color.getBlue();
-
-        Tessellator tessellator = Tessellator.getInstance();
-        BufferBuilder worldRenderer = tessellator.getBuffer();
-        worldRenderer.begin(GL11.GL_LINES, worldRenderer.getVertexFormat());
-        worldRenderer.pos(point1.getX(), point1.getY(), point1.getZ()).color(colorR, colorG, colorB, 255).endVertex();
-        worldRenderer.pos(point2.getX(), point2.getY(), point2.getZ()).color(colorR, colorG, colorB, 255).endVertex();
-        tessellator.draw();
-    }
 
-    void renderCuboid(OffsetBox bb, Color color, boolean fill) {
-        bb = bb.nudge();
+    void renderCuboid(OffsetBox bb, Color color) {
+        Boolean fill = ConfigManager.fill.get();
         if (fill) {
             renderFilledCuboid(bb, color);
         }
@@ -45,108 +26,64 @@ public abstract class AbstractRenderer<T extends AbstractBoundingBox> {
     private void renderFilledCuboid(OffsetBox bb, Color color) {
         GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL);
         GL11.glEnable(GL11.GL_BLEND);
-        renderCuboid(bb, 30, color);
+        renderCuboid(bb.nudge(), color, 30);
         GL11.glDisable(GL11.GL_BLEND);
         GL11.glEnable(GL11.GL_POLYGON_OFFSET_LINE);
         GL11.glPolygonOffset(-1.f, -1.f);
     }
 
-    private void renderUnfilledCuboid(OffsetBox bb, Color color) {
+    void renderUnfilledCuboid(OffsetBox bb, Color color) {
         GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
-        renderCuboid(bb, 255, color);
+        renderCuboid(bb.nudge(), color, 255);
     }
 
-    private void renderCuboid(OffsetBox bb, int alphaChannel, Color color) {
-        int colorR = color.getRed();
-        int colorG = color.getGreen();
-        int colorB = color.getBlue();
-
-        OffsetPoint min = bb.getMin();
-        OffsetPoint max = bb.getMax();
-
-        Tessellator tessellator = Tessellator.getInstance();
-        BufferBuilder worldRenderer = tessellator.getBuffer();
-
-        worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
-        worldRenderer.pos(min.getX(), min.getY(), min.getZ())
-                .color(colorR, colorG, colorB, alphaChannel)
-                .endVertex();
-        worldRenderer.pos(max.getX(), min.getY(), min.getZ())
-                .color(colorR, colorG, colorB, alphaChannel)
-                .endVertex();
-        worldRenderer.pos(max.getX(), min.getY(), max.getZ())
-                .color(colorR, colorG, colorB, alphaChannel)
-                .endVertex();
-        worldRenderer.pos(min.getX(), min.getY(), max.getZ())
-                .color(colorR, colorG, colorB, alphaChannel)
-                .endVertex();
-
-        if (min.getY() != max.getY()) {
-            worldRenderer.pos(min.getX(), max.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), max.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), max.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(min.getX(), max.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-
-            worldRenderer.pos(min.getX(), min.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(min.getX(), max.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), max.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), min.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-
-            worldRenderer.pos(min.getX(), min.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(min.getX(), max.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), max.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), min.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-
-            worldRenderer.pos(min.getX(), min.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(min.getX(), min.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(min.getX(), max.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(min.getX(), max.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-
-            worldRenderer.pos(max.getX(), min.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), min.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), max.getY(), max.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
-            worldRenderer.pos(max.getX(), max.getY(), min.getZ())
-                    .color(colorR, colorG, colorB, alphaChannel)
-                    .endVertex();
+    private void renderCuboid(OffsetBox box, Color color, int alpha) {
+        OffsetPoint min = box.getMin();
+        OffsetPoint max = box.getMax();
+
+        double minX = min.getX();
+        double minY = min.getY();
+        double minZ = min.getZ();
+
+        double maxX = max.getX();
+        double maxY = max.getY();
+        double maxZ = max.getZ();
+
+        Renderer renderer = Renderer.startQuads()
+                .setColor(color)
+                .setAlpha(alpha)
+                .addPoint(minX, minY, minZ)
+                .addPoint(maxX, minY, minZ)
+                .addPoint(maxX, minY, maxZ)
+                .addPoint(minX, minY, maxZ);
+
+        if (minY != maxY) {
+            renderer.addPoint(minX, maxY, minZ)
+                    .addPoint(maxX, maxY, minZ)
+                    .addPoint(maxX, maxY, maxZ)
+                    .addPoint(minX, maxY, maxZ)
+
+                    .addPoint(minX, minY, maxZ)
+                    .addPoint(minX, maxY, maxZ)
+                    .addPoint(maxX, maxY, maxZ)
+                    .addPoint(maxX, minY, maxZ)
+
+                    .addPoint(minX, minY, minZ)
+                    .addPoint(minX, maxY, minZ)
+                    .addPoint(maxX, maxY, minZ)
+                    .addPoint(maxX, minY, minZ)
+
+                    .addPoint(minX, minY, minZ)
+                    .addPoint(minX, minY, maxZ)
+                    .addPoint(minX, maxY, maxZ)
+                    .addPoint(minX, maxY, minZ)
+
+                    .addPoint(maxX, minY, minZ)
+                    .addPoint(maxX, minY, maxZ)
+                    .addPoint(maxX, maxY, maxZ)
+                    .addPoint(maxX, maxY, minZ);
         }
-        tessellator.draw();
+        renderer.render();
+
     }
 }
index b90bea8dbd55666b7f9a243bcae412834ebf015e..3689fd2c87c10b1334203435cbfb3f69dc911e7e 100644 (file)
@@ -5,6 +5,7 @@ import com.irtimaled.bbor.common.models.BoundingBoxMobSpawner;
 import com.irtimaled.bbor.common.models.Colors;
 import com.irtimaled.bbor.common.models.Coords;
 import com.irtimaled.bbor.config.ConfigManager;
+import org.lwjgl.opengl.GL11;
 
 import java.awt.*;
 
@@ -16,7 +17,7 @@ public class MobSpawnerRenderer extends AbstractRenderer<BoundingBoxMobSpawner>
         if (ConfigManager.renderMobSpawnerSpawnArea.get()) {
             renderBoundingBox(boundingBox);
         } else {
-            renderCuboid(new OffsetBox(coords, coords), color, fill());
+            renderCuboid(new OffsetBox(coords, coords), color);
         }
 
         if (!ConfigManager.renderMobSpawnerActivationLines.get()) return;
@@ -29,7 +30,9 @@ public class MobSpawnerRenderer extends AbstractRenderer<BoundingBoxMobSpawner>
         double distance = centerPoint.getDistance(playerPos);
         if (distance <= 20) {
             Color color = distance > 18 ? Color.RED : distance > 16 ? Colors.DARK_ORANGE : Color.GREEN;
-            renderLine(centerPoint, playerPos.offset(0, 0.1, 0), color);
+
+            GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
+            Renderer.startLines().setColor(color).addPoint(centerPoint).addPoint(playerPos.offset(0, 0.1, 0)).render();
         }
     }
 }
diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/Renderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/Renderer.java
new file mode 100644 (file)
index 0000000..4e47902
--- /dev/null
@@ -0,0 +1,98 @@
+package com.irtimaled.bbor.client.renderers;
+
+import net.minecraft.client.renderer.BufferBuilder;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
+import net.minecraft.client.renderer.vertex.VertexFormat;
+import org.lwjgl.opengl.GL11;
+
+import java.awt.*;
+
+public class Renderer {
+    static Renderer startLines() {
+        return new Renderer(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR);
+    }
+
+    static Renderer startQuads() {
+        return new Renderer(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
+    }
+
+    static Renderer startPoints() {
+        return new Renderer(GL11.GL_POINTS, DefaultVertexFormats.POSITION_COLOR);
+    }
+
+    public static Renderer startTextured() {
+        return new Renderer(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);
+    }
+
+    private Tessellator tessellator;
+    private BufferBuilder bufferBuilder;
+
+    private int red;
+    private int green;
+    private int blue;
+    private int alpha;
+
+    private Renderer(int glMode, VertexFormat vertexFormat) {
+        tessellator = Tessellator.getInstance();
+        bufferBuilder = tessellator.getBuffer();
+        bufferBuilder.begin(glMode, vertexFormat);
+    }
+
+    Renderer setColor(Color color) {
+        return setColor(color.getRed(), color.getGreen(), color.getBlue())
+                .setAlpha(color.getAlpha());
+    }
+
+    public Renderer setColor(int red, int green, int blue) {
+        this.red = red;
+        this.green = green;
+        this.blue = blue;
+        return this;
+    }
+
+    public Renderer setAlpha(int alpha){
+        this.alpha = alpha;
+        return this;
+    }
+
+    Renderer addPoint(OffsetPoint point) {
+        addPoint(point.getX(), point.getY(), point.getZ());
+        return this;
+    }
+
+    Renderer addPoint(double x, double y, double z) {
+        pos(x, y, z);
+        color();
+        end();
+        return this;
+    }
+
+    public Renderer addPoint(double x, double y, double z, double u, double v) {
+        pos(x, y, z);
+        tex(u, v);
+        color();
+        end();
+        return this;
+    }
+
+    public void render() {
+        tessellator.draw();
+    }
+
+    private void pos(double x, double y, double z) {
+        bufferBuilder.pos(x, y, z);
+    }
+
+    private void tex(double u, double v) {
+        bufferBuilder.tex(u,v);
+    }
+
+    private void color() {
+        bufferBuilder.color(red, green, blue, alpha);
+    }
+
+    private void end() {
+        bufferBuilder.endVertex();
+    }
+}
index b7d270a713bf8d3c7c4412be58b019226bac3b8e..d6e61f5e2ac6846cbfca72b5f3f851b351e59095 100644 (file)
@@ -11,15 +11,14 @@ public class SlimeChunkRenderer extends AbstractRenderer<BoundingBoxSlimeChunk>
     public void render(BoundingBoxSlimeChunk boundingBox) {
         OffsetBox bb = new OffsetBox(boundingBox.getMinCoords(), boundingBox.getMaxCoords());
         Color color = boundingBox.getColor();
-        renderCuboid(bb, color, fill());
+        renderCuboid(bb, color);
 
         double maxY = PlayerCoords.getMaxY(ConfigManager.slimeChunkMaxY.get());
         double dY = maxY - 39;
         if (dY > 0) {
             OffsetPoint min = bb.getMin().offset(0, 38, 0);
             OffsetPoint max = bb.getMax().offset(0, dY, 0);
-            bb = new OffsetBox(min, max);
-            renderCuboid(bb, color, fill());
+            renderCuboid(new OffsetBox(min, max), color);
         }
     }
 }
index 2bccb5d2895e9cec555b878a1290ac677adfafc7..6bcd66d15ce090c03e87d84f8f6e7e5a2034cd3a 100644 (file)
@@ -3,9 +3,6 @@ package com.irtimaled.bbor.client.renderers;
 import com.irtimaled.bbor.common.models.BoundingBoxVillage;
 import com.irtimaled.bbor.common.models.Coords;
 import com.irtimaled.bbor.config.ConfigManager;
-import net.minecraft.client.renderer.BufferBuilder;
-import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
 import org.lwjgl.opengl.GL11;
 
 import java.awt.*;
@@ -35,29 +32,24 @@ public class VillageRenderer extends AbstractRenderer<BoundingBoxVillage> {
         OffsetBox bb = new OffsetBox(offsetCenter, offsetCenter)
                 .grow(8, 3, 8);
 
-        renderCuboid(bb, boundingBox.getColor(), false);
+        renderUnfilledCuboid(bb, boundingBox.getColor());
     }
 
     private void renderVillageDoors(BoundingBoxVillage boundingBox) {
         OffsetPoint center = new OffsetPoint(boundingBox.getCenter())
                 .offset(boundingBox.getCenterOffsetX(), 0.0, boundingBox.getCenterOffsetZ());
         Color color = boundingBox.getColor();
-        int colorR = color.getRed();
-        int colorG = color.getGreen();
-        int colorB = color.getBlue();
 
         GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
-        Tessellator tessellator = Tessellator.getInstance();
-        BufferBuilder worldRenderer = tessellator.getBuffer();
-
-        worldRenderer.begin(GL11.GL_LINES, worldRenderer.getVertexFormat());
+        Renderer renderer = Renderer.startLines()
+                .setColor(color);
         for (Coords door : boundingBox.getDoors()) {
             OffsetPoint point = new OffsetPoint(door).offset(0.5, 0, 0.5);
 
-            worldRenderer.pos(point.getX(), point.getY(), point.getZ()).color(colorR, colorG, colorB, 255).endVertex();
-            worldRenderer.pos(center.getX(), center.getY(), center.getZ()).color(colorR, colorG, colorB, 255).endVertex();
+            renderer.addPoint(point)
+                    .addPoint(center);
         }
-        tessellator.draw();
+        renderer.render();
     }
 
     private void renderBoundingBoxVillageAsSphere(BoundingBoxVillage boundingBox) {
@@ -65,26 +57,19 @@ public class VillageRenderer extends AbstractRenderer<BoundingBoxVillage> {
                 .offset(boundingBox.getCenterOffsetX(), 0.0, boundingBox.getCenterOffsetZ());
         int radius = boundingBox.getRadius();
         Color color = boundingBox.getColor();
-        renderSphere(center, radius, color);
-    }
+        int density = ConfigManager.villageSphereDensity.get();
+        int dotSize = ConfigManager.villageSphereDotSize.get();
 
-    private void renderSphere(OffsetPoint center, double radius, Color color) {
         GL11.glEnable(GL11.GL_POINT_SMOOTH);
-        GL11.glPointSize(ConfigManager.villageSphereDotSize.get());
-
-        Tessellator tessellator = Tessellator.getInstance();
-        BufferBuilder worldRenderer = tessellator.getBuffer();
-        worldRenderer.begin(GL11.GL_POINTS, DefaultVertexFormats.POSITION_COLOR);
-        for (OffsetPoint point : buildPoints(center, radius)) {
-            worldRenderer.pos(point.getX(), point.getY(), point.getZ())
-                    .color(color.getRed(), color.getGreen(), color.getBlue(), 255)
-                    .endVertex();
-        }
-        tessellator.draw();
+        GL11.glPointSize(dotSize);
+        Renderer renderer = Renderer.startPoints()
+                .setColor(color);
+        buildPoints(center, (double) radius, density)
+                .forEach(renderer::addPoint);
+        renderer.render();
     }
 
-    private Set<OffsetPoint> buildPoints(OffsetPoint center, double radius) {
-        int density = ConfigManager.villageSphereDensity.get();
+    private Set<OffsetPoint> buildPoints(OffsetPoint center, double radius, int density) {
         int segments = 24 + (density * 8);
 
         Set<OffsetPoint> points = new HashSet<>(segments * segments);
index ec74116e74346b3e5a76b51b6f0267954ae0ed12..3859c2b60ae1d25d7a912263a8974346e8339efc 100644 (file)
@@ -16,7 +16,6 @@ public class WorldSpawnRenderer extends AbstractRenderer<BoundingBoxWorldSpawn>
 
         double y = PlayerCoords.getMaxY(ConfigManager.worldSpawnMaxY.get()) + 0.001F;
 
-        OffsetBox bb = new OffsetBox(minCoords.getX(), y, minCoords.getZ(), maxCoords.getX(), y, maxCoords.getZ());
-        renderCuboid(bb, color, false);
+        renderUnfilledCuboid(new OffsetBox(minCoords.getX(), y, minCoords.getZ(), maxCoords.getX(), y, maxCoords.getZ()), color);
     }
 }