From 11443e506b17bc60c86fec5297b86d5a2fd0a4da Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Thu, 22 Jun 2023 23:56:13 +0200 Subject: Added Agaricus Cap countdown --- src/main/java/at/hannibal2/skyhanni/utils/BlockUtils.kt | 14 ++++++++++++++ src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt | 4 ++++ 2 files changed, 18 insertions(+) (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/BlockUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/BlockUtils.kt index e16df26e9..a35d0de06 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/BlockUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/BlockUtils.kt @@ -39,4 +39,18 @@ object BlockUtils { return false } + + fun rayTrace(start: LorenzVec, direction: LorenzVec, distance: Double = 50.0): LorenzVec? { + val help = direction.normalize().multiply(distance) + val target = start.add(help) + val result = Minecraft.getMinecraft().theWorld.rayTraceBlocks(start.toVec3(), target.toVec3()) + + return result?.blockPos?.toLorenzVec() + } + + fun getBlockLookingAt(duration: Double = 10.0) = rayTrace( + LocationUtils.playerEyeLocation(), + Minecraft.getMinecraft().thePlayer.lookVec.toLorenzVec(), + duration + ) } \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt index 5bce2d762..4b716964f 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt @@ -64,6 +64,8 @@ data class LorenzVec( fun subtract(other: LorenzVec) = LorenzVec(x - other.x, y - other.y, z - other.z) + fun normalize() = length().let { LorenzVec(x / it, y / it, z / it) } + fun printWithAccuracy(accuracy: Int): String { val x = (round(x * accuracy) / accuracy) val y = (round(y * accuracy) / accuracy) @@ -89,6 +91,8 @@ data class LorenzVec( fun equalsIgnoreY(other: LorenzVec) = x == other.x && z == other.z + fun equals(other: LorenzVec) = x == other.x && y == other.y && z == other.z + fun round(decimals: Int) = LorenzVec(x.round(decimals), y.round(decimals), z.round(decimals)) companion object { -- cgit