aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt55
3 files changed, 70 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
index 041dca4f7..3f6fa3a5a 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
@@ -314,6 +314,7 @@ class SkyHanniMod {
loadModule(EnigmaSoulWaypoints)
loadModule(DungeonLividFinder)
loadModule(CruxTalismanDisplay)
+ loadModule(LaserParkour())
init()
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java
index c6a653ab4..f0457530d 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java
@@ -165,6 +165,20 @@ public class RiftConfig {
@ConfigEditorBoolean
public boolean agaricusCap = true;
+ @ConfigOption(name = "Mirror Verse", desc = "")
+ @Accordion
+ @Expose
+ public MirrorVerse mirrorVerse = new MirrorVerse();
+
+ public static class MirrorVerse {
+
+ @Expose
+ @ConfigOption(name = "Laser Parkour", desc = "Highlights the location of the invisible blocks.")
+ @ConfigEditorBoolean
+ public boolean laserParkour = true;
+
+ }
+
@ConfigOption(name = "Kloon Hacking", desc = "")
@Accordion
@Expose
diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt
new file mode 100644
index 000000000..04f26c932
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt
@@ -0,0 +1,55 @@
+package at.hannibal2.skyhanni.features.rift
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled
+import at.hannibal2.skyhanni.utils.LorenzColor
+import at.hannibal2.skyhanni.utils.LorenzVec
+import net.minecraft.client.Minecraft
+import net.minecraft.util.AxisAlignedBB
+import net.minecraftforge.client.event.RenderWorldLastEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class LaserParkour {
+ private val config get() = SkyHanniMod.feature.rift.mirrorVerse
+ private val puzzleRoom = AxisAlignedBB(-298.0, 0.0, -112.0, -309.0, 63.0, -101.0)
+
+ @SubscribeEvent
+ fun onRenderWorld(event: RenderWorldLastEvent) {
+ if (!RiftAPI.inRift()) return
+ if (!config.laserParkour) return
+ if (!puzzleRoom.isVecInside(Minecraft.getMinecraft().thePlayer.positionVector)) return
+ for (location in locations) {
+ event.drawWaypointFilled(location, LorenzColor.GREEN.toColor())
+ }
+ }
+
+ private var locations = mutableListOf(
+ LorenzVec(-304.0, 2.0, -107.0),
+ LorenzVec(-306.0, 4.0, -103.0),
+ LorenzVec(-308.0, 6.0, -105.0),
+ LorenzVec(-304.0, 8.0, -109.0),
+ LorenzVec(-300.0, 10.0, -111.0),
+ LorenzVec(-304.0, 12.0, -107.0),
+ LorenzVec(-308.0, 14.0, -103.0),
+ LorenzVec(-306.0, 16.0, -107.0),
+ LorenzVec(-302.0, 18.0, -111.0),
+ LorenzVec(-300.0, 20.0, -107.0),
+ LorenzVec(-304.0, 22.0, -111.0),
+ LorenzVec(-306.0, 24.0, -109.0),
+ LorenzVec(-302.0, 26.0, -111.0),
+ LorenzVec(-300.0, 28.0, -107.0),
+ LorenzVec(-304.0, 30.0, -103.0),
+ LorenzVec(-306.0, 32.0, -105.0),
+ LorenzVec(-302.0, 34.0, -107.0),
+ LorenzVec(-300.0, 36.0, -109.0),
+ LorenzVec(-302.0, 38.0, -105.0),
+ LorenzVec(-304.0, 40.0, -107.0),
+ LorenzVec(-306.0, 42.0, -111.0),
+ LorenzVec(-302.0, 44.0, -107.0),
+ LorenzVec(-300.0, 46.0, -103.0),
+ LorenzVec(-304.0, 48.0, -107.0),
+ LorenzVec(-308.0, 50.0, -105.0),
+ LorenzVec(-304.0, 52.0, -109.0),
+ LorenzVec(-306.0, 54.0, -111.0)
+ )
+} \ No newline at end of file