diff --git a/src/main/java/carpet/script/utils/ShapesRenderer.java b/src/main/java/carpet/script/utils/ShapesRenderer.java index 4d25c54d..51e7b86a 100644 --- a/src/main/java/carpet/script/utils/ShapesRenderer.java +++ b/src/main/java/carpet/script/utils/ShapesRenderer.java @@ -526,7 +526,7 @@ public class ShapesRenderer MultiBufferSource.BufferSource immediate = MultiBufferSource.immediate(new ByteBufferBuilder(RenderType.TRANSIENT_BUFFER_SIZE)); // text doesn't appear if backgroud is set ///script run draw_shape('label', 100, 'pos', [200, 100, 200], 'text', 'Hewwo World!', 'color', 0xffffffff, 'fill', 0x33333333) - textRenderer.drawInBatch(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.last().pose(), immediate, Font.DisplayMode.NORMAL, shape.textbck, 15728880); + textRenderer.drawInBatch(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.last().pose(), immediate, Font.DisplayMode.SEE_THROUGH, shape.textbck, 15728880); immediate.endBatch(); matrices.popPose(); ////RenderSystem.enableCull(); @@ -629,6 +629,7 @@ public class ShapesRenderer public static class RenderedPolyface extends RenderedShape { + // mode now can only be 4, 5, or 6 private static final VertexFormat.Mode[] faceIndices = new VertexFormat.Mode[]{ Mode.LINES, Mode.LINE_STRIP, Mode.DEBUG_LINES, Mode.DEBUG_LINE_STRIP, Mode.TRIANGLES, Mode.TRIANGLE_STRIP, Mode.TRIANGLE_FAN, Mode.QUADS}; @@ -637,10 +638,10 @@ public class ShapesRenderer RenderType.debugLineStrip(1), RenderType.debugLineStrip(1), RenderType.debugLineStrip(1), - RenderType.debugLineStrip(1), // TODO wrong - RenderType.debugLineStrip(1), // TODO wrong - RenderType.debugLineStrip(1), - RenderType.debugQuads() + RenderType.debugTriangleFan(), // TODO wrong + RenderType.debugTriangleFan(), // TODO wrong + RenderType.debugTriangleFan(), + RenderType.debugQuads() }; public RenderedPolyface(Minecraft client, ShapeDispatcher.ExpiringShape shape) @@ -714,7 +715,7 @@ public class ShapesRenderer drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); if (shape.inneredges) { - BufferBuilder builderr = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); + BufferBuilder builderr = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR); for (int i = 1; i < shape.vertexList.size() - 1; i++) { Vec3 vec = shape.vertexList.get(i); @@ -722,7 +723,7 @@ public class ShapesRenderer { vec = shape.relativiseRender(client.level, vec, partialTick); } - + builderr.addVertex((float) (vec0.x() - cx), (float) (vec0.y() - cy), (float) (vec0.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); builderr.addVertex((float) (vec.x() - cx), (float) (vec.y() - cy), (float) (vec.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); builderr.addVertex((float) (vec0.x() - cx), (float) (vec0.y() - cy), (float) (vec0.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); } @@ -776,9 +777,10 @@ public class ShapesRenderer } if (shape.mode == 4) { - BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); + // for (int i = 0; i < shape.vertexList.size(); i++) { + BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR); Vec3 vecA = shape.vertexList.get(i); if (shape.relative.get(i)) { @@ -799,13 +801,15 @@ public class ShapesRenderer builder.addVertex((float) (vecA.x() - cx), (float) (vecA.y() - cy), (float) (vecA.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); builder.addVertex((float) (vecB.x() - cx), (float) (vecB.y() - cy), (float) (vecB.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); - builder.addVertex((float) (vecB.x() - cx), (float) (vecB.y() - cy), (float) (vecB.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); + //builder.addVertex((float) (vecB.x() - cx), (float) (vecB.y() - cy), (float) (vecB.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); builder.addVertex((float) (vecC.x() - cx), (float) (vecC.y() - cy), (float) (vecC.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); - builder.addVertex((float) (vecC.x() - cx), (float) (vecC.y() - cy), (float) (vecC.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); + //builder.addVertex((float) (vecC.x() - cx), (float) (vecC.y() - cy), (float) (vecC.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); builder.addVertex((float) (vecA.x() - cx), (float) (vecA.y() - cy), (float) (vecA.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); + + drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); } - drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); + //drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); } } } @@ -865,7 +869,7 @@ public class ShapesRenderer drawCylinderWireframe(tesselator, (float) (vc.x - cx - dir * renderEpsilon), (float) (vc.y - cy - dir * renderEpsilon), (float) (vc.z - cz - dir * renderEpsilon), (float) (shape.radius + renderEpsilon), (float) (shape.height + 2 * dir * renderEpsilon), shape.axis, - shape.subdivisions, shape.radius == 0, + shape.subdivisions, shape.height == 0, shape.r, shape.g, shape.b, shape.a); } @@ -891,7 +895,7 @@ public class ShapesRenderer public static void drawLine(Tesselator tesselator, float x1, float y1, float z1, float x2, float y2, float z2, float red1, float grn1, float blu1, float alpha) { - BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); + BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR); builder.addVertex(x1, y1, z1).setColor(red1, grn1, blu1, alpha); builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha); drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); @@ -904,7 +908,8 @@ public class ShapesRenderer boolean xthick, boolean ythick, boolean zthick, float red1, float grn1, float blu1, float alpha, float red2, float grn2, float blu2) { - BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); + BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR); + /* old lines not using strip if (xthick) { builder.addVertex(x1, y1, z1).setColor(red1, grn2, blu2, alpha); @@ -946,6 +951,51 @@ public class ShapesRenderer builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha); builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha); + } + */ + + if (xthick) + + { + builder.addVertex(x1, y1, z1).setColor(red1, grn2, blu2, alpha); + builder.addVertex(x2, y1, z1).setColor(red1, grn2, blu2, alpha); + + builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x1, y2, z1).setColor(red1, grn1, blu1, alpha); + + builder.addVertex(x1, y2, z2).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha); + + builder.addVertex(x2, y1, z2).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x1, y1, z2).setColor(red1, grn1, blu1, alpha); + } + if (ythick) + { + builder.addVertex(x1, y1, z1).setColor(red2, grn1, blu2, alpha); + builder.addVertex(x1, y2, z1).setColor(red2, grn1, blu2, alpha); + + builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x2, y1, z1).setColor(red1, grn1, blu1, alpha); + + builder.addVertex(x2, y1, z2).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha); + + builder.addVertex(x1, y2, z2).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x1, y1, z2).setColor(red1, grn1, blu1, alpha); + } + if (zthick) + { + builder.addVertex(x1, y1, z1).setColor(red2, grn2, blu1, alpha); + builder.addVertex(x1, y1, z2).setColor(red2, grn2, blu1, alpha); + + builder.addVertex(x1, y2, z2).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x1, y2, z1).setColor(red1, grn1, blu1, alpha); + + builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha); + + builder.addVertex(x2, y1, z2).setColor(red1, grn1, blu1, alpha); + builder.addVertex(x2, y1, z1).setColor(red1, grn1, blu1, alpha); } drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); } @@ -1062,7 +1112,7 @@ public class ShapesRenderer drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); } } - else + /* else { BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); for (int i = 0; i <= num_steps180; i++) @@ -1074,7 +1124,7 @@ public class ShapesRenderer builder.addVertex(cx + x, cy, cz - z).setColor(red, grn, blu, alpha); } drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); - } + }*/ } else if (axis == Direction.Axis.X) @@ -1111,19 +1161,19 @@ public class ShapesRenderer drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); } } - else + /*else { - BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); - for (int i = 0; i <= num_steps180; i++) + BufferBuilder builder = tesselator.begin(Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR); + for (int i = 0; i <= num_steps360+1; i++) { float theta = step * i; float y = r * Mth.cos(theta); float z = r * Mth.sin(theta); - builder.addVertex(cx, cy - y, cz + z).setColor(red, grn, blu, alpha); - builder.addVertex(cx, cy + y, cz - z).setColor(red, grn, blu, alpha); + builder.addVertex(cx, cy + y, cz + z).setColor(red, grn, blu, alpha); + //builder.addVertex(cx, cy + y, cz - z).setColor(red, grn, blu, alpha); } drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); - } + }*/ } else if (axis == Direction.Axis.Z) { @@ -1158,7 +1208,7 @@ public class ShapesRenderer drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); } } - else + /*else { BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); for (int i = 0; i <= num_steps180; i++) @@ -1170,8 +1220,7 @@ public class ShapesRenderer builder.addVertex(cx - x, cy + y, cz).setColor(red, grn, blu, alpha); } drawWithShader(builder.buildOrThrow(), RenderType.debugLineStrip(1)); - } - + }*/ } }