diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-06-27 03:57:39 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-27 03:57:39 -0400 |
commit | 6129506bfe0532bdf3a6ad5e0f08d66f3ca5bc83 (patch) | |
tree | 82eb877663268bd40897b4d8be2b55b1157d6a35 /src/main/java/me/xmrvizzy/skyblocker/utils | |
parent | dc312c8db05bc9e9cd3f4fd8c039274270a4661b (diff) | |
parent | fa6c260672468ed412e65a685f89cf2e09e2f1d7 (diff) | |
download | Skyblocker-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.java | 5 | ||||
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java | 14 |
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); |