public void Start(string name, bool force = true, AnimationFinishedCallback animationFinishedCallback = null) { if (force) { currentAnimation = GetIndex(name); currentCallback = animationFinishedCallback; queuedAnimation = -1; Animations[currentAnimation].Start( ); } else { queuedAnimation = GetIndex(name); queuedCallback = animationFinishedCallback; } }
public void Update(DeltaTime dt) { if (!Animations[currentAnimation].Update(dt)) { currentCallback?.Invoke(true); if (queuedAnimation != -1) { currentAnimation = queuedAnimation; currentCallback = queuedCallback; queuedAnimation = -1; } else { currentAnimation = idleAnimation; currentCallback = null; } Animations[currentAnimation].Start( ); } }