aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-08-01 23:33:59 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-08-18 18:07:00 +0800
commitf703df1f93a7730e818730095df8f6e569f3d647 (patch)
tree1faae9728d3ba855108d4976605a5be21ea5baa2 /src/main/java/me/xmrvizzy
parente45a296f062b791f09e36d848d2590388125292e (diff)
downloadSkyblocker-f703df1f93a7730e818730095df8f6e569f3d647.tar.gz
Skyblocker-f703df1f93a7730e818730095df8f6e569f3d647.tar.bz2
Skyblocker-f703df1f93a7730e818730095df8f6e569f3d647.zip
Vanilla box rendering
Diffstat (limited to 'src/main/java/me/xmrvizzy')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java8
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/render/RenderHelper.java28
2 files changed, 29 insertions, 7 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java
index 94a81f15..c024e189 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java
@@ -79,11 +79,11 @@ public class DungeonBlaze {
/* Outline */
if (highestBlaze.getY() < 69) {
Box blaze = highestBlaze.getBoundingBox().expand(0.3, 0.9, 0.3).offset(0, -1.1, 0);
- RenderHelper.renderOutline(context, blaze, GREEN_COLOR_COMPONENTS);
+ RenderHelper.renderBox(context, blaze, GREEN_COLOR_COMPONENTS);
if (nextHighestBlaze != null && nextHighestBlaze.isAlive() && nextHighestBlaze != highestBlaze) {
Box nextBlaze = nextHighestBlaze.getBoundingBox().expand(0.3, 0.9, 0.3).offset(0, -1.1, 0);
- RenderHelper.renderOutline(context, nextBlaze, WHITE_COLOR_COMPONENTS);
+ RenderHelper.renderBox(context, nextBlaze, WHITE_COLOR_COMPONENTS);
RenderHelper.renderLinesFromPoints(context, new Vec3d[] { blaze.getCenter(), nextBlaze.getCenter() }, WHITE_COLOR_COMPONENTS, 1f, 5f);
}
}
@@ -91,11 +91,11 @@ public class DungeonBlaze {
/* Outline */
if (lowestBlaze.getY() > 69) {
Box blaze = lowestBlaze.getBoundingBox().expand(0.3, 0.9, 0.3).offset(0, -1.1, 0);
- RenderHelper.renderOutline(context, blaze, GREEN_COLOR_COMPONENTS);
+ RenderHelper.renderBox(context, blaze, GREEN_COLOR_COMPONENTS);
if (nextLowestBlaze != null && nextLowestBlaze.isAlive() && nextLowestBlaze != lowestBlaze) {
Box nextBlaze = nextLowestBlaze.getBoundingBox().expand(0.3, 0.9, 0.3).offset(0, -1.1, 0);
- RenderHelper.renderOutline(context, nextBlaze, WHITE_COLOR_COMPONENTS);
+ RenderHelper.renderBox(context, nextBlaze, WHITE_COLOR_COMPONENTS);
RenderHelper.renderLinesFromPoints(context, new Vec3d[] { blaze.getCenter(), nextBlaze.getCenter() }, WHITE_COLOR_COMPONENTS, 1f, 5f);
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/render/RenderHelper.java b/src/main/java/me/xmrvizzy/skyblocker/utils/render/RenderHelper.java
index 77da702a..d3a547a9 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/render/RenderHelper.java
@@ -5,7 +5,6 @@ import com.mojang.blaze3d.platform.GlStateManager.SrcFactor;
import com.mojang.blaze3d.systems.RenderSystem;
import me.x150.renderer.render.Renderer3d;
import me.xmrvizzy.skyblocker.mixin.accessor.BeaconBlockEntityRendererInvoker;
-import me.xmrvizzy.skyblocker.utils.Boxes;
import me.xmrvizzy.skyblocker.utils.render.culling.OcclusionCulling;
import me.xmrvizzy.skyblocker.utils.render.title.Title;
import me.xmrvizzy.skyblocker.utils.render.title.TitleContainer;
@@ -13,6 +12,8 @@ import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.*;
import net.minecraft.client.render.VertexFormat.DrawMode;
+import net.minecraft.client.render.VertexFormats;
+import net.minecraft.client.render.WorldRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.Identifier;
@@ -72,9 +73,30 @@ public class RenderHelper {
}
}
- public static void renderOutline(WorldRenderContext context, Box box, float[] colorComponents) {
+ public static void renderBox(WorldRenderContext wrc, Box box, float[] colorComponents) {
if (FrustumUtils.isVisible(box)) {
- Renderer3d.renderOutline(context.matrixStack(), new Color(colorComponents[0], colorComponents[1], colorComponents[2]), Boxes.getMinVec(box), Boxes.getLengthVec(box));
+ Vec3d camera = wrc.camera().getPos();
+ MatrixStack matrices = wrc.matrixStack();
+ Tessellator tessellator = RenderSystem.renderThreadTesselator();
+ BufferBuilder buffer = tessellator.getBuffer();
+
+ RenderSystem.setShader(GameRenderer::getRenderTypeLinesProgram);
+ RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
+ RenderSystem.lineWidth(2.5f);
+ RenderSystem.disableCull();
+ RenderSystem.enableDepthTest();
+
+ matrices.push();
+ matrices.translate(-camera.x, -camera.y, -camera.z);
+
+ buffer.begin(DrawMode.LINES, VertexFormats.LINES);
+ WorldRenderer.drawBox(matrices, buffer, box, colorComponents[0] * 255f, colorComponents[1] * 255f, colorComponents[2] * 255f, 1f);
+ tessellator.draw();
+
+ matrices.pop();
+ RenderSystem.lineWidth(1f);
+ RenderSystem.enableCull();
+ RenderSystem.disableDepthTest();
}
}