public void update() {
        Vector3f dirToCam = Transform.getCamera().getPos().sub(transform.getTranslation());

        float distance = dirToCam.length();
        Vector3f orientation = dirToCam.div(distance);

        alignWithGround();
        faceCamera(orientation, distance);

        switch(state){
            case IDLE: idleUpdate(orientation, distance);
                break;
            case CHASE: chaseUpdate(orientation, distance);
                break;
            case ATTACK: attackUpdate(orientation, distance);
                break;
            case DYING: dyingUpdate(orientation, distance);
                break;
            case DEAD: deadUpdate(orientation, distance);
                break;
        }
    }