public void update(Game game)
    {
        lastMovementType = Types.MOVEMENT.MOVE;

        //Get the input from the player.
        requestPlayerInput(game);

        //Map from the action mask to a Vector2D action.
        Direction action2D = Utils.processMovementActionKeys(getKeyHandler().getMask(), getPlayerID());

        //Update the orientation for this cycle's movement,
        // but only if there was a direction indicated.
        boolean canShoot = true;
        if(!(action2D.equals(Types.DNONE))) {
            this._updateOrientation(action2D);
            canShoot = false;
        }

        //Update movement.
        super.updatePassive();

        if(canShoot || lastMovementType == Types.MOVEMENT.STILL)
            updateUse(game);
    }