diff options
author | metamuffin <metamuffin@disroot.org> | 2024-08-16 21:57:13 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-08-16 21:57:13 +0200 |
commit | 98c33cfa06732b630522c836d9686243ced891ad (patch) | |
tree | cf62918d35c947059954ec9765933df848130c83 /client/global.gd | |
parent | 04c7e6530a5afcb2b181d8870e9132cae20a3ae9 (diff) | |
download | hurrycurry-98c33cfa06732b630522c836d9686243ced891ad.tar hurrycurry-98c33cfa06732b630522c836d9686243ced891ad.tar.bz2 hurrycurry-98c33cfa06732b630522c836d9686243ced891ad.tar.zst |
interp item to next 90° rotation when on tile
Diffstat (limited to 'client/global.gd')
-rw-r--r-- | client/global.gd | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/client/global.gd b/client/global.gd index 647cac32..d660173a 100644 --- a/client/global.gd +++ b/client/global.gd @@ -350,10 +350,17 @@ static func interpolate_angle(current, target, dt): current = fmod(current, PI * 2) target = fmod(target, PI * 2) if abs(target - current) > PI: - if target < 0: - target += PI * 2 - else: - target -= PI * 2 + if target < 0: target += PI * 2 + else: target -= PI * 2 + return target + (current - target) * exp(-dt) + +# TODO not working in all cases yet but there was an attempt +static func interpolate_angle_closest_quarter(current, target, dt): + current = fmod(current, PI * 2) + target = fmod(target, PI * 2) + while abs(target - current) > PI / 4.: + if target - current < 0: target += PI / 2 + else: target -= PI / 2 return target + (current - target) * exp(-dt) func find_menu(node: Node) -> Menu: |