fix: incorrect macro wheel for two items because of angle lerp near π / 2 defaulting the wrong way

This commit is contained in:
Linnea Gräf
2025-07-06 23:34:56 +02:00
parent b40ae8a455
commit b09648d712
2 changed files with 6 additions and 2 deletions

View File

@@ -1,11 +1,15 @@
package moe.nea.firmament.util.render
import me.shedaniel.math.Color
import kotlin.math.absoluteValue
val π = Math.PI
val τ = Math.PI * 2
fun lerpAngle(a: Float, b: Float, progress: Float): Float {
fun lerpAngle(a: Float, b: Float, progress: Float): Float {
// TODO: there is at least 10 mods to many in here lol
if (((b - a).absoluteValue - π).absoluteValue < 0.0001) {
return lerp(a, b, progress)
}
val shortestAngle = ((((b.mod(τ) - a.mod(τ)).mod(τ)) + τ + π).mod(τ)) - π
return ((a + (shortestAngle) * progress).mod(τ)).toFloat()
}