aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/utils
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-06-27 03:57:39 -0400
committerGitHub <noreply@github.com>2023-06-27 03:57:39 -0400
commit6129506bfe0532bdf3a6ad5e0f08d66f3ca5bc83 (patch)
tree82eb877663268bd40897b4d8be2b55b1157d6a35 /src/main/java/me/xmrvizzy/skyblocker/utils
parentdc312c8db05bc9e9cd3f4fd8c039274270a4661b (diff)
parentfa6c260672468ed412e65a685f89cf2e09e2f1d7 (diff)
downloadSkyblocker-6129506bfe0532bdf3a6ad5e0f08d66f3ca5bc83.tar.gz
Skyblocker-6129506bfe0532bdf3a6ad5e0f08d66f3ca5bc83.tar.bz2
Skyblocker-6129506bfe0532bdf3a6ad5e0f08d66f3ca5bc83.zip
Merge pull request #189 from AzureAaron/mirrorverse-waypoints
Add Mirrorverse Waypoints + Rift Fixes
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java5
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java14
2 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java
index 6973aa1e..9ea90c16 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java
@@ -1,6 +1,7 @@
package me.xmrvizzy.skyblocker.utils;
import me.xmrvizzy.skyblocker.mixin.AccessorWorldRenderer;
+import me.xmrvizzy.skyblocker.mixin.accessor.FrustumInvoker;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.Frustum;
import net.minecraft.util.math.Box;
@@ -14,4 +15,8 @@ public class FrustumUtils {
public static boolean isBoxVisible(Box box) {
return getFrustum().isVisible(box);
}
+
+ public static boolean isVisible(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
+ return ((FrustumInvoker) getFrustum()).isVisible(minX, minY, minZ, maxX, maxY, maxZ);
+ }
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java
index 79308dc3..2e942905 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java
@@ -10,6 +10,8 @@ import net.minecraft.util.math.Vec3d;
import java.awt.*;
public class RenderHelper {
+ private static final Vec3d ONE = new Vec3d(1, 1, 1);
+
public static void renderFilledThroughWallsWithBeaconBeam(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) {
renderFilledThroughWalls(context, pos, colorComponents, alpha);
renderBeaconBeam(context, pos, colorComponents);
@@ -17,10 +19,20 @@ public class RenderHelper {
public static void renderFilledThroughWalls(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) {
Renderer3d.renderThroughWalls();
- Renderer3d.renderFilled(context.matrixStack(), new Color(colorComponents[0], colorComponents[1], colorComponents[2], alpha), Vec3d.of(pos), new Vec3d(1, 1, 1));
+ renderFilled(context, pos, colorComponents, alpha);
Renderer3d.stopRenderThroughWalls();
}
+ public static void renderFilledIfVisible(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) {
+ if (FrustumUtils.isVisible(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1)) {
+ renderFilled(context, pos, colorComponents, alpha);
+ }
+ }
+
+ public static void renderFilled(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) {
+ Renderer3d.renderFilled(context.matrixStack(), new Color(colorComponents[0], colorComponents[1], colorComponents[2], alpha), Vec3d.of(pos), ONE);
+ }
+
public static void renderBeaconBeam(WorldRenderContext context, BlockPos pos, float[] colorComponents) {
context.matrixStack().push();
context.matrixStack().translate(pos.getX() - context.camera().getPos().x, pos.getY() - context.camera().getPos().y, pos.getZ() - context.camera().getPos().z);