private void OnAnimationLoopFinished(SpriteAnimationType animType, SpriteAnimationPlaybackState oldPlaybackState, SpriteAnimationPlaybackState newPlaybackState) { bool isAttackAnimation = _attackAnimations.Contains(animType); if (isAttackAnimation) { if (oldPlaybackState == SpriteAnimationPlaybackState.Playing && newPlaybackState != SpriteAnimationPlaybackState.Playing) { OwliverState newState = CurrentState; newState.MovementMode = OwliverMovementMode.Walking; ChangeState(ref newState); } } }
public override void Update(float deltaSeconds) { base.Update(deltaSeconds); SpriteAnimationPlaybackState oldPlaybackState = ActiveAnimation.State.PlaybackState; ActiveAnimation.Update(deltaSeconds); SpriteAnimationPlaybackState newPlaybackState = ActiveAnimation.State.PlaybackState; if (newPlaybackState != oldPlaybackState) { OnAnimationPlaybackStateChanged?.Invoke(ActiveAnimationType, oldPlaybackState, newPlaybackState); } Global.Game.DebugDrawCommands.Add(view => { SpatialData worldSpatial = this.GetWorldSpatialData(); view.DrawAABB(worldSpatial.AbsoluteAABB, new Color(0xdd, 0x99, 0x44)); }); }