feat: added character_type to CharacterActor

This commit is contained in:
Sara 2024-05-02 15:08:45 +02:00
parent 8366d5b5df
commit d5a6aec9d1
2 changed files with 15 additions and 1 deletions

View file

@ -17,6 +17,7 @@ void CharacterActor::_bind_methods() {
#define CLASSNAME CharacterActor #define CLASSNAME CharacterActor
GDPROPERTY_HINTED(rotation_speed_curve, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Curve"); GDPROPERTY_HINTED(rotation_speed_curve, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Curve");
GDPROPERTY_HINTED(target, Variant::OBJECT, PROPERTY_HINT_NODE_TYPE, "Node"); GDPROPERTY_HINTED(target, Variant::OBJECT, PROPERTY_HINT_NODE_TYPE, "Node");
GDPROPERTY_HINTED(character_type, Variant::INT, PROPERTY_HINT_ENUM, "Neutral,Player,Enemy");
GDPROPERTY(acceleration, Variant::FLOAT); GDPROPERTY(acceleration, Variant::FLOAT);
GDPROPERTY(walk_speed, Variant::FLOAT); GDPROPERTY(walk_speed, Variant::FLOAT);
GDPROPERTY(sprint_speed, Variant::FLOAT); GDPROPERTY(sprint_speed, Variant::FLOAT);
@ -195,6 +196,15 @@ void CharacterActor::set_state(goap::State state) {
} }
} }
void CharacterActor::set_character_type(int character_type) {
this->character_type = static_cast<CharacterType>(character_type);
UtilityFunctions::print("set_character_type ", character_type);
}
int CharacterActor::get_character_type() const {
return static_cast<int>(this->character_type);
}
void CharacterActor::process_behaviour(double delta_time) { void CharacterActor::process_behaviour(double delta_time) {
if(this->current_state.is_complete(this) || this->planner->is_action_complete()) if(this->current_state.is_complete(this) || this->planner->is_action_complete())
this->set_state(this->planner->get_next_state()); this->set_state(this->planner->get_next_state());

View file

@ -70,7 +70,9 @@ public:
Node *get_target() const; Node *get_target() const;
goap::Planner *get_planner() const; goap::Planner *get_planner() const;
void set_state(goap::State state); void set_state(goap::State state);
void set_character_type(int character_type);
int get_character_type() const;
// character settings
void set_acceleration(float acceleration); void set_acceleration(float acceleration);
float get_acceleration() const; float get_acceleration() const;
void set_walk_speed(float walk_speed); void set_walk_speed(float walk_speed);
@ -113,6 +115,8 @@ private:
Ref<CharacterData> data; Ref<CharacterData> data;
float fire_interval{0.f}; // derived from 1 / the current weapon's rps float fire_interval{0.f}; // derived from 1 / the current weapon's rps
CharacterType character_type{CharacterType::NEUTRAL};
float acceleration{20.f}; float acceleration{20.f};
float walk_speed{3.f}; float walk_speed{3.f};
float sprint_speed{5.f}; float sprint_speed{5.f};