diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-07-05 17:21:22 +0200 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-07-05 17:21:22 +0200 |
commit | e041b9205fed5b550a5e3e2986d68def6d14b6ca (patch) | |
tree | bcf40f611c69eec4be545f6f2ed87a9d98ebb352 /src/main/java/at/hannibal2/skyhanni/features | |
parent | 35f90f67e6e5c4f5a395e4ce9335388c998cde38 (diff) | |
download | skyhanni-e041b9205fed5b550a5e3e2986d68def6d14b6ca.tar.gz skyhanni-e041b9205fed5b550a5e3e2986d68def6d14b6ca.tar.bz2 skyhanni-e041b9205fed5b550a5e3e2986d68def6d14b6ca.zip |
using ParkourHelper for TubulatorParkour
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt | 55 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/rift/TubulatorParkour.kt | 70 |
2 files changed, 70 insertions, 55 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt deleted file mode 100644 index ff19e52fd..000000000 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/LaserParkour.kt +++ /dev/null @@ -1,55 +0,0 @@ -package at.hannibal2.skyhanni.features.rift - -import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled -import at.hannibal2.skyhanni.utils.LocationUtils.isPlayerInside -import at.hannibal2.skyhanni.utils.LorenzColor -import at.hannibal2.skyhanni.utils.LorenzVec -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.isPlayerInside()) 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 diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/TubulatorParkour.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/TubulatorParkour.kt new file mode 100644 index 000000000..5b476962b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/TubulatorParkour.kt @@ -0,0 +1,70 @@ +package at.hannibal2.skyhanni.features.rift + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.CheckRenderEntityEvent +import at.hannibal2.skyhanni.events.ConfigLoadEvent +import at.hannibal2.skyhanni.events.RepositoryReloadEvent +import at.hannibal2.skyhanni.utils.LocationUtils.isPlayerInside +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.toChromaColor +import at.hannibal2.skyhanni.utils.ParkourHelper +import at.hannibal2.skyhanni.utils.jsonobjects.ParkourJson +import net.minecraft.util.AxisAlignedBB +import net.minecraftforge.client.event.RenderWorldLastEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class TubulatorParkour { + private val config get() = SkyHanniMod.feature.rift.mirrorVerse.tubulatorConfig + private var parkourHelper: ParkourHelper? = null + private val puzzleRoom = AxisAlignedBB(-298.0, 0.0, -112.0, -309.0, 63.0, -101.0) + + @SubscribeEvent + fun onRepoReload(event: RepositoryReloadEvent) { + val data = event.getConstant<ParkourJson>("RiftTubulator") ?: return + parkourHelper = ParkourHelper( + data.locations, + data.shortCuts, + platformSize = 1.0, + detectionRange = 2.0, + ) + updateConfig() + } + + @SubscribeEvent + fun onCheckRender(event: CheckRenderEntityEvent<*>) { + if (!isEnabled()) return + if (!config.hidePlayers) return + + parkourHelper?.let { + if (it.inParkour()) { + event.isCanceled = true + } + } + } + + @SubscribeEvent + fun onConfigLoad(event: ConfigLoadEvent) { + LorenzUtils.onToggle(config.rainbowColor, config.monochromeColor, config.lookAhead) { + updateConfig() + } + } + + private fun updateConfig() { + parkourHelper?.run { + rainbowColor = config.rainbowColor.get() + monochromeColor = config.monochromeColor.get().toChromaColor() + lookAhead = config.lookAhead.get() + 1 + outline = config.outline + } + } + + @SubscribeEvent + fun onRenderWorld(event: RenderWorldLastEvent) { + if (!isEnabled()) return + + parkourHelper?.render(event) + } + + fun isEnabled() = + RiftAPI.inRift() && LorenzUtils.skyBlockArea == "Mirrorverse" && config.enabled && puzzleRoom.isPlayerInside() +} |