private static bool StopPathMovement()
 {
     bIsBusy = false;
     movingSprite.animationIndex = (int)BaseCharacter.CharacterAnimations.Idle;
     if (rotationAtEnd != -1)
     {
         movingSprite.rotationIndex = rotationAtEnd;
     }
     movingSprite.position = finalPos;
     movePath.Clear();
     movingSprite.UpdatePosition();
     return(false);
 }
        private void PerformStep()
        {
            //0 = Down, 1 is UP, 2 Left, 3 RIGHT

            movingSprite.MoverMustUpdateHitboxes = true;
            switch (directionNextNode())
            {
            case 0:
                Point tileBefore = (movingSprite.position / 64).ToPoint();
                Point tileAfter  = ((movingSprite.position - new Vector2((speed / 5f))) / 64).ToPoint();
                //tileBefore.Y -= 1;
                tileBefore.X -= 1;

                float tempSpeed = (speed / 5f);
                if (tileBefore != tileAfter)
                {
                    tempSpeed = 64 % (speed / 5f);
                }

                movingSprite.position.Y   -= tempSpeed;
                movingSprite.rotationIndex = (int)BaseSprite.Rotation.Up;

                break;

            case 1:
                tileBefore = (movingSprite.position / 64).ToPoint();
                tileAfter  = ((movingSprite.position + new Vector2((speed / 5f))) / 64).ToPoint();
                tempSpeed  = (speed / 5f);
                if (tileBefore != tileAfter)
                {
                    //  tempSpeed = 64 % speed;
                }
                //Console.WriteLine(movingSprite.position);
                movingSprite.position.Y   += tempSpeed;
                movingSprite.rotationIndex = (int)BaseSprite.Rotation.Down;
                break;

            case 2:
                tileBefore = (movingSprite.position / 64).ToPoint();
                tileAfter  = ((movingSprite.position + new Vector2((speed / 5f))) / 64).ToPoint();
                tempSpeed  = (speed / 5f);
                if (tileBefore != tileAfter)
                {
                    //tempSpeed = 64 % speed;
                }

                movingSprite.position.X   += tempSpeed;
                movingSprite.rotationIndex = (int)BaseSprite.Rotation.Right;
                break;

            case 3:
                tileBefore = (movingSprite.position / 64).ToPoint();
                tileAfter  = ((movingSprite.position - new Vector2((speed / 5f))) / 64).ToPoint();
                //tileBefore.X -= 1;
                tileBefore.Y -= 1;

                tempSpeed = (speed / 5f);
                if (tileBefore != tileAfter)
                {
                    tempSpeed = 64 % (speed / 5f);
                }

                movingSprite.position.X   -= tempSpeed;
                movingSprite.rotationIndex = (int)BaseSprite.Rotation.Left;
                break;
            }

            movingSprite.UpdatePosition();
        }