private void chaseUpdate(Vector3f orientation, float distance){
        double time = ((double)Time.getTime())/((double)Time.SECOND);
        double timeDecimals = time - (double)((int)time);

        if(timeDecimals < 0.25)
            material.setTexture(animations.get(0));
        else if(timeDecimals < 0.5)
            material.setTexture(animations.get(1));
        else if(timeDecimals < 0.75)
            material.setTexture(animations.get(2));
        else
            material.setTexture(animations.get(3));


        if(rand.nextDouble() < ATTACK_CHANCE * Time.getDelta())
            state = ATTACK;

        if(distance > MOVE_STOP_DIST) {

            float movAmt = MOVE_SPEED * (float) Time.getDelta();

            Vector3f oldPos = transform.getTranslation();
            Vector3f newPos = transform.getTranslation().add(orientation.mul(movAmt));

            Vector3f collisionVector = Game.getLevel().checkCollision(oldPos, newPos, WIDTH, LENGTH);

            Vector3f movementVector = collisionVector.mul(orientation);

            if(movementVector.length() > 0)
                transform.setTranslation(transform.getTranslation().add(movementVector.mul(movAmt)));

            if(movementVector.sub(orientation).length() != 0)
                Game.getLevel().openDoors(transform.getTranslation(), false);
        }else
            state = ATTACK;
    }