[ENHANCEMENT/BUGFIX] MathUtil additions + lerp fix #3617
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
changes:
fract
andsnap
smoothLerp
and split it intosmoothLerpDecay
andsmoothLerpPrecision
(thehalfLife
andduration
/precision
versions respectively)smoothLerp
andcoolLerp
to (functionally identical)smoothLerpPrecision
along withsnap
for stuff like the score numbers@:keep
to the class so that while source may not use all the functions, mods will still be able toexplanation:
i like fract
also!!! the behavior of
smoothLerp
is incorrect... more precisely the snappingit assumes the "origin" value is 0, which leads to this behavior:
2024-10-06.20-02-02.mp4
which can be fixed if
(precision * target)
is changed toprecision * Math.abs(target - base)
!!2024-10-06.20-35-53.mp4
...HOWEVER
this only works for the first iteration as the
base
changes and thus the threshold changesyou cant snap the value after
duration
because its literally impossible to obtain that information without some extra variable keeping track of the "origin" valuesooo i split off the snapping behavior into its own function and made the threshold constant, separate for each use case like
1
for the song score or0.01
for the song % completed