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) {
}
public Renderer addPoint(double x, double y, double z) {
+ matrixStack.push();
pos(x, y, z);
color();
end();
+ matrixStack.pop();
return this;
}
}
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) {
}
private void color() {
- bufferBuilder.color(red, green, blue, alpha);
+ bufferBuilder.color(red / 255F, green / 255F, blue / 255F, alpha / 255F);
}
private void end() {