fix: tween reset caused issues

This commit is contained in:
Syntriax 2025-05-30 21:15:18 +03:00
parent 76ad60fad3
commit ce3cc895f4
3 changed files with 19 additions and 20 deletions

View File

@ -68,6 +68,13 @@ internal class Tween : ITween
} }
internal void Reset() internal void Reset()
{
_counter = 0f;
Progress = 0f;
State = TweenState.Idle;
}
internal void Wipe()
{ {
OnStarted.Clear(); OnStarted.Clear();
OnPaused.Clear(); OnPaused.Clear();
@ -78,9 +85,9 @@ internal class Tween : ITween
OnUpdated.Clear(); OnUpdated.Clear();
OnDeltaUpdated.Clear(); OnDeltaUpdated.Clear();
_counter = 0f; Easing = EaseLinear.Instance;
Progress = 0f;
State = TweenState.Idle; Reset();
} }
public Tween() { } public Tween() { }

View File

@ -43,57 +43,49 @@ public static class TweenExtensions
public static ITween OnStart(this ITween tween, Action callback) public static ITween OnStart(this ITween tween, Action callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnStarted.AddListener(_ => callback.Invoke());
tweenConcrete.OnStarted.AddListener(_ => callback.Invoke());
return tween; return tween;
} }
public static ITween OnPause(this ITween tween, Action callback) public static ITween OnPause(this ITween tween, Action callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnPaused.AddListener(_ => callback.Invoke());
tweenConcrete.OnPaused.AddListener(_ => callback.Invoke());
return tween; return tween;
} }
public static ITween OnResume(this ITween tween, Action callback) public static ITween OnResume(this ITween tween, Action callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnResumed.AddListener(_ => callback.Invoke());
tweenConcrete.OnResumed.AddListener(_ => callback.Invoke());
return tween; return tween;
} }
public static ITween OnCancel(this ITween tween, Action callback) public static ITween OnCancel(this ITween tween, Action callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnCancelled.AddListener(_ => callback.Invoke());
tweenConcrete.OnCancelled.AddListener(_ => callback.Invoke());
return tween; return tween;
} }
public static ITween OnComplete(this ITween tween, Action callback) public static ITween OnComplete(this ITween tween, Action callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnCompleted.AddListener(_ => callback.Invoke());
tweenConcrete.OnCompleted.AddListener(_ => callback.Invoke());
return tween; return tween;
} }
public static ITween OnEnd(this ITween tween, Action callback) public static ITween OnEnd(this ITween tween, Action callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnEnded.AddListener(_ => callback.Invoke());
tweenConcrete.OnEnded.AddListener(_ => callback.Invoke());
return tween; return tween;
} }
public static ITween OnUpdate(this ITween tween, Action callback) public static ITween OnUpdate(this ITween tween, Action callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnUpdated.AddListener(_ => callback.Invoke());
tweenConcrete.OnUpdated.AddListener(_ => callback.Invoke());
return tween; return tween;
} }
public static ITween OnDeltaUpdate(this ITween tween, Action<float> callback) public static ITween OnDeltaUpdate(this ITween tween, Action<float> callback)
{ {
Tween tweenConcrete = (Tween)tween; tween.OnDeltaUpdated.AddListener((_, arguments) => callback.Invoke(arguments.Delta));
tweenConcrete.OnDeltaUpdated.AddListener((_, arguments) => callback.Invoke(arguments.Delta));
return tween; return tween;
} }
} }

View File

@ -34,7 +34,7 @@ public class TweenManager : UniverseObject, ITweenManager
if (queue.Contains(tween)) if (queue.Contains(tween))
return; return;
tween.Reset(); tween.Wipe();
queue.Enqueue(tween); queue.Enqueue(tween);
} }