public Vector2 Move(Vector2 moveAmount)
    {
        float x = Move(Mathf.Abs(moveAmount.x), Dir4.FromXFloat(moveAmount.x));
        float y = Move(Mathf.Abs(moveAmount.y), Dir4.FromYFloat(moveAmount.y));

        return(new Vector2(x, y));
    }