]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/client/renderers/Renderer.java
Update to 1.17.1 (#124)
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / Renderer.java
index 92479973ed4c4bd7ac0dbdef9831544119c5ded5..8c354f1581f2e159c9df0c99547435ba2f10271f 100644 (file)
@@ -5,43 +5,47 @@ import net.minecraft.client.render.BufferBuilder;
 import net.minecraft.client.render.Tessellator;
 import net.minecraft.client.render.VertexFormat;
 import net.minecraft.client.render.VertexFormats;
+import net.minecraft.client.util.math.MatrixStack;
 
 import java.awt.*;
 
 public class Renderer {
-    private final int glMode;
+    private final VertexFormat.DrawMode glMode;
 
     static Renderer startLines() {
         return new Renderer(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR);
     }
 
     static Renderer startLineLoop() {
-        return new Renderer(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR);
+        return new Renderer(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR);
     }
 
     public static Renderer startQuads() {
         return new Renderer(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_COLOR);
     }
 
-    static Renderer startPoints() {
-        return new Renderer(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR);
-    }
-
     public static Renderer startTextured() {
         return new Renderer(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR);
     }
 
-    private static final Tessellator tessellator = new Tessellator(2097152);
+    private static final Tessellator tessellator = Tessellator.getInstance();
     private static final BufferBuilder bufferBuilder = tessellator.getBuffer();
 
     private int red;
     private int green;
     private int blue;
     private int alpha;
+    private MatrixStack matrixStack;
 
     private Renderer(VertexFormat.DrawMode glMode, VertexFormat vertexFormat) {
         bufferBuilder.begin(glMode, vertexFormat);
-        this.glMode = glMode.mode;
+        this.glMode = glMode;
+    }
+
+    public Renderer setMatrixStack(MatrixStack stack) {
+        this.matrixStack = stack;
+        matrixStack.push();
+        return this;
     }
 
     public Renderer setColor(Color color) {
@@ -74,9 +78,11 @@ public class Renderer {
     }
 
     public Renderer addPoint(double x, double y, double z) {
+        matrixStack.push();
         pos(x, y, z);
         color();
         end();
+        matrixStack.pop();
         return this;
     }
 
@@ -89,14 +95,15 @@ public class Renderer {
     }
 
     public void render() {
-        if (glMode == RenderHelper.QUADS) {
+        if (glMode == VertexFormat.DrawMode.QUADS) {
             bufferBuilder.setCameraPosition((float) Camera.getX(), (float) Camera.getY(), (float) Camera.getZ());
         }
         tessellator.draw();
+        matrixStack.pop();
     }
 
     private void pos(double x, double y, double z) {
-        bufferBuilder.vertex(x, y, z);
+        bufferBuilder.vertex(matrixStack.peek().getModel(), (float) x, (float) y, (float) z);
     }
 
     private void tex(double u, double v) {
@@ -104,7 +111,7 @@ public class Renderer {
     }
 
     private void color() {
-        bufferBuilder.color(red, green, blue, alpha);
+        bufferBuilder.color(red / 255F, green / 255F, blue / 255F, alpha / 255F);
     }
 
     private void end() {