aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/dulkirfabric/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/util')
-rw-r--r--src/main/kotlin/com/dulkirfabric/util/WorldRenderUtils.kt56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/util/WorldRenderUtils.kt b/src/main/kotlin/com/dulkirfabric/util/WorldRenderUtils.kt
new file mode 100644
index 0000000..30c19c7
--- /dev/null
+++ b/src/main/kotlin/com/dulkirfabric/util/WorldRenderUtils.kt
@@ -0,0 +1,56 @@
+package com.dulkirfabric.util
+
+import com.mojang.blaze3d.platform.GlStateManager
+import com.mojang.blaze3d.systems.RenderSystem
+import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext
+import net.minecraft.client.render.GameRenderer
+import net.minecraft.client.render.Tessellator
+import net.minecraft.client.render.VertexFormat
+import net.minecraft.client.render.VertexFormats
+import java.awt.Color
+
+
+object WorldRenderUtils {
+ fun drawBox(
+ context: WorldRenderContext,
+ x1: Float,
+ y1: Float,
+ z1: Float,
+ x2: Float,
+ y2: Float,
+ z2: Float,
+ color: Color,
+ thickness: Float,
+ depthTest: Boolean = true
+ ) {
+ val matrices = context.matrixStack()
+ matrices.push()
+ RenderSystem.setShader(GameRenderer::getRenderTypeLinesProgram)
+ RenderSystem.enableBlend()
+ RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA)
+ RenderSystem.lineWidth(thickness)
+ RenderSystem.setShaderColor(color.red / 255f, color.green / 255f, color.blue / 255f, color.alpha / 255f)
+ if (!depthTest) RenderSystem.disableDepthTest()
+ matrices.translate(-context.camera().pos.x, -context.camera().pos.y, -context.camera().pos.z)
+ val tess = Tessellator.getInstance()
+ val buf = tess.buffer
+ val matrix4f = matrices.peek().positionMatrix
+
+ buf.begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR)
+ buf.fixedColor(255, 255, 255, 255)
+
+ buf.vertex(matrix4f, x1, y1, z1).next()
+ buf.vertex(matrix4f, x2, y1, z1).next()
+
+ //buf.vertex(matrix4f, x2, y2, z1).next()
+
+ buf.unfixColor()
+ tess.draw()
+
+
+ RenderSystem.enableDepthTest()
+ RenderSystem.disableBlend()
+ RenderSystem.setShaderColor(1f, 1f, 1f, 1f)
+ matrices.pop()
+ }
+} \ No newline at end of file