aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2024-01-01 14:50:01 +0800
committerGitHub <noreply@github.com>2024-01-01 01:50:01 -0500
commit37eb5bfad25b1e0c3326ed27744c38f81513b5e4 (patch)
treef218b51ff9fe54597f7126115547fb15f12bbb4e /src/main/java/de/hysky/skyblocker/utils
parent8005dd9afe963a461619ee3da603d8202292840b (diff)
downloadSkyblocker-37eb5bfad25b1e0c3326ed27744c38f81513b5e4.tar.gz
Skyblocker-37eb5bfad25b1e0c3326ed27744c38f81513b5e4.tar.bz2
Skyblocker-37eb5bfad25b1e0c3326ed27744c38f81513b5e4.zip
Waterboard Solver (#467)
* Add waterboard detection and parsing * Solve waterboard * Render lines through walls * Fix lines * Add lever highlights
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Tickable.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java8
3 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/Tickable.java b/src/main/java/de/hysky/skyblocker/utils/Tickable.java
index 9b7b2e3f..dff34e19 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Tickable.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Tickable.java
@@ -1,5 +1,7 @@
package de.hysky.skyblocker.utils;
+import net.minecraft.client.MinecraftClient;
+
public interface Tickable {
- void tick();
+ void tick(MinecraftClient client);
}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
index 7526c0a8..05514d02 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
@@ -140,8 +140,9 @@ public class RenderHelper {
* @param colorComponents An array of R, G and B color components
* @param alpha The alpha of the lines
* @param lineWidth The width of the lines
+ * @param throughWalls Whether to render through walls or not
*/
- public static void renderLinesFromPoints(WorldRenderContext context, Vec3d[] points, float[] colorComponents, float alpha, float lineWidth) {
+ public static void renderLinesFromPoints(WorldRenderContext context, Vec3d[] points, float[] colorComponents, float alpha, float lineWidth, boolean throughWalls) {
Vec3d camera = context.camera().getPos();
MatrixStack matrices = context.matrixStack();
@@ -163,6 +164,7 @@ public class RenderHelper {
RenderSystem.defaultBlendFunc();
RenderSystem.disableCull();
RenderSystem.enableDepthTest();
+ RenderSystem.depthFunc(throughWalls ? GL11.GL_ALWAYS : GL11.GL_LEQUAL);
buffer.begin(DrawMode.LINE_STRIP, VertexFormats.LINES);
@@ -182,6 +184,7 @@ public class RenderHelper {
GL11.glDisable(GL11.GL_LINE_SMOOTH);
RenderSystem.lineWidth(1f);
RenderSystem.enableCull();
+ RenderSystem.depthFunc(GL11.GL_LEQUAL);
}
public static void renderQuad(WorldRenderContext context, Vec3d[] points, float[] colorComponents, float alpha, boolean throughWalls) {
diff --git a/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java b/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java
index 3a1d364f..2f9c9f63 100644
--- a/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java
+++ b/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java
@@ -19,6 +19,10 @@ public class Waypoint {
final boolean throughWalls;
private boolean shouldRender;
+ public Waypoint(BlockPos pos, Type type, float[] colorComponents) {
+ this(pos, type, colorComponents, DEFAULT_HIGHLIGHT_ALPHA);
+ }
+
public Waypoint(BlockPos pos, Supplier<Type> typeSupplier, float[] colorComponents) {
this(pos, typeSupplier, colorComponents, DEFAULT_HIGHLIGHT_ALPHA, DEFAULT_LINE_WIDTH);
}
@@ -62,6 +66,10 @@ public class Waypoint {
this.shouldRender = true;
}
+ public void toggle() {
+ this.shouldRender = !this.shouldRender;
+ }
+
protected float[] getColorComponents() {
return colorComponents;
}