void onTweenEnded(Entity e, TweenComponent tweenComponent, Tween tween) { e.AddCallOnFrameEnd((ent) => { tweenComponent.RemoveTween(tween); if (tweenComponent.tweens.Count == 0) e.RemoveTween(); if (tween.OnComplete != null) tween.OnComplete(ent); }); }
void update(Entity e, TweenComponent tweenComponent, float deltaTime) { List<Tween> tweens = tweenComponent.tweens; for (int i = 0; i < tweens.Count; i++) { Tween tween = tweens[i]; tween.Update(deltaTime); if (tween.HasEnded() && tween.ShouldClear) { onTweenEnded(e, tweenComponent, tween); } } }