La cuestión es que me pasaron un código para una máquina de estados que llevaba integrado todo el tema del movimiento y tal, pero por alguna razón parece que está roto en la versión que uso, así que decidí construir mi código desde cero a ver si así logro plantear mejor todo el tema de la máquina de estados. Si ése cacho de ahí funciona, sería unas tres veces más corto que el otro código de movimiento.