pandemonium_engine/modules/steering_ai/behaviors/gsai_priority.h

37 lines
808 B
C++

#ifndef GSAI_PRIORITY_H
#define GSAI_PRIORITY_H
#include "core/object/reference.h"
#include "../gsai_steering_behavior.h"
class GSAISteeringBehavior;
class GSAITargetAcceleration;
class GSAIPriority : public GSAISteeringBehavior {
GDCLASS(GSAIPriority, GSAISteeringBehavior);
public:
float get_zero_threshold() const;
void set_zero_threshold(const float val);
void add_behavior(const Ref<GSAISteeringBehavior> &behavior);
Ref<GSAISteeringBehavior> get_behavior(const int index);
void remove_behavior(const int index);
int get_behaviour_count();
void _calculate_steering(Ref<GSAITargetAcceleration> accel);
GSAIPriority();
~GSAIPriority();
protected:
static void _bind_methods();
float zero_threshold;
int _last_selected_index;
Vector<Ref<GSAISteeringBehavior>> _behaviors;
};
#endif