aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/dulkirfabric/util
diff options
context:
space:
mode:
authorronald <inglettronald@gmail.com>2023-07-27 20:26:07 -0500
committerronald <inglettronald@gmail.com>2023-07-27 20:26:07 -0500
commit71b8238eff91de0243e641c2eeadacd61b8f0f88 (patch)
treed85ade48712412986eaf22663517327712552775 /src/main/kotlin/com/dulkirfabric/util
parenta1294824e249df578551447b40c920a45c3eb457 (diff)
downloadDulkirMod-Fabric-71b8238eff91de0243e641c2eeadacd61b8f0f88.tar.gz
DulkirMod-Fabric-71b8238eff91de0243e641c2eeadacd61b8f0f88.tar.bz2
DulkirMod-Fabric-71b8238eff91de0243e641c2eeadacd61b8f0f88.zip
Miniboss Highlight and performance optimizations
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/util')
-rw-r--r--src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt12
-rw-r--r--src/main/kotlin/com/dulkirfabric/util/TextUtils.kt3
-rw-r--r--src/main/kotlin/com/dulkirfabric/util/Utils.kt14
3 files changed, 28 insertions, 1 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt b/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt
index a2bdb3a..fb2f967 100644
--- a/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt
+++ b/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt
@@ -1,6 +1,8 @@
package com.dulkirfabric.util
import com.dulkirfabric.DulkirModFabric
+import com.dulkirfabric.events.LongUpdateEvent
+import meteordevelopment.orbit.EventHandler
import net.minecraft.scoreboard.Team
import net.minecraft.text.StringVisitable
import net.minecraft.text.Style
@@ -10,6 +12,8 @@ import java.util.*
object ScoreBoardUtils {
+ var hasActiveSlayerQuest = false
+
/**
* Gets Scoreboard lines, will return null if not in Skyblock.
*/
@@ -69,4 +73,12 @@ object ScoreBoardUtils {
}, Style.EMPTY)
return sb.toString().replace("§[^a-f0-9]".toRegex(), "")
}
+
+ @EventHandler
+ fun updateUtility(event: LongUpdateEvent) {
+ val lines = getLines() ?: return
+ hasActiveSlayerQuest = lines.any {
+ it.contains("Slayer Quest")
+ }
+ }
} \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/util/TextUtils.kt b/src/main/kotlin/com/dulkirfabric/util/TextUtils.kt
index c3baa9e..d5e3e37 100644
--- a/src/main/kotlin/com/dulkirfabric/util/TextUtils.kt
+++ b/src/main/kotlin/com/dulkirfabric/util/TextUtils.kt
@@ -5,6 +5,7 @@ import net.minecraft.text.Text
object TextUtils {
const val CHAT_PREFIX = "§f<§3DulkirMod§f>§r"
+ private val colorRegex = "§.".toRegex()
fun info(text: String, prefix: Boolean = true) {
if (mc.player == null) return
@@ -33,6 +34,6 @@ object TextUtils {
}
fun stripColorCodes(string: String): String {
- return string.replace("§.".toRegex(), "")
+ return string.replace(colorRegex, "")
}
} \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/util/Utils.kt b/src/main/kotlin/com/dulkirfabric/util/Utils.kt
index 4ceb8c4..93597d2 100644
--- a/src/main/kotlin/com/dulkirfabric/util/Utils.kt
+++ b/src/main/kotlin/com/dulkirfabric/util/Utils.kt
@@ -1,6 +1,8 @@
package com.dulkirfabric.util
import com.dulkirfabric.events.PlaySoundEvent
+import net.minecraft.entity.Entity
+import net.minecraft.util.math.Vec3d
object Utils {
fun isInSkyblock(): Boolean {
@@ -18,4 +20,16 @@ object Utils {
println("Pitch: ${event.sound.pitch}")
println("Volume: ${event.sound.volume}")
}
+
+ private fun lerp(prev: Vec3d, cur: Vec3d, tickDelta: Float): Vec3d {
+ return Vec3d(
+ prev.x + (cur.x - prev.x) * tickDelta,
+ prev.y + (cur.y - prev.y) * tickDelta,
+ prev.z + (cur.z - prev.z) * tickDelta,
+ )
+ }
+ fun Entity.getInterpolatedPos(tickDelta: Float): Vec3d {
+ val prevPos = Vec3d(this.prevX, this.prevY, this.prevZ)
+ return lerp(prevPos, this.pos, tickDelta)
+ }
} \ No newline at end of file