a finite state machine for XNA/Monogame