public override void Update(GameTime gameTime) { base.Update(gameTime); var anim = _walkingAnimation.GetAnimationForOrientation(Orientation); var sheet = anim.AnimatedSpriteSheets.FirstOrDefault(); if (!IsMoving) { sheet.Reset(); } else { sheet.Update(gameTime); } if (ActiveActions.Any()) { foreach (var act in ActiveActions) { act.Action(gameTime, act); } return; } _currentAnimationSheet = anim.AnimatedSpriteSheets.FirstOrDefault(); }
private void Eat(GameTime gameTime, LivingAction action) { var anim = _eatingAnimation.GetAnimationForOrientation(Orientation); var sheet = anim.AnimatedSpriteSheets.FirstOrDefault(); sheet.Update(gameTime); if (sheet.HasEnded) { action.IsRunning = false; sheet.Reset(); _currentAnimationSheet = anim.AnimatedSpriteSheets.FirstOrDefault(); _currentAnimationSheet.Reset(); return; } _currentAnimationSheet = sheet; }