From 9f54f89f6d45d9b2cc2db00d909c38410c9f043d Mon Sep 17 00:00:00 2001 From: Syntriax Date: Fri, 20 Feb 2026 11:22:00 +0300 Subject: [PATCH] fix: ITween.OnEnded getting multiple calls and getting unnecessary calls on repeats fixed --- Engine.Systems/Tween/Tween.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Engine.Systems/Tween/Tween.cs b/Engine.Systems/Tween/Tween.cs index 0642edf..bea0c59 100644 --- a/Engine.Systems/Tween/Tween.cs +++ b/Engine.Systems/Tween/Tween.cs @@ -27,8 +27,16 @@ internal class Tween : ITween field = value; switch (value) { - case TweenState.Completed: OnCompleted?.Invoke(this); OnEnded?.Invoke(this); break; - case TweenState.Cancelled: OnCancelled?.Invoke(this); OnEnded?.Invoke(this); break; + case TweenState.Completed: + OnCompleted?.Invoke(this); + if (State == TweenState.Completed) + OnEnded?.Invoke(this); + break; + case TweenState.Cancelled: + OnCancelled?.Invoke(this); + if (State == TweenState.Cancelled) + OnEnded?.Invoke(this); + break; case TweenState.Paused: OnPaused?.Invoke(this); break; case TweenState.Playing: if (previousState == TweenState.Idle)