From f7847dfafc9c48e835fcbcded2a356195a3b0edc Mon Sep 17 00:00:00 2001 From: Relintai Date: Mon, 15 Jun 2020 12:34:35 +0200 Subject: [PATCH] Also added a property for serverside skills. --- entities/entity.cpp | 39 +++++++++++++-------------------------- entities/entity.h | 3 +++ 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/entities/entity.cpp b/entities/entity.cpp index aa9e406..61f568a 100644 --- a/entities/entity.cpp +++ b/entities/entity.cpp @@ -4335,6 +4335,13 @@ void Entity::skill_changec_max(int skill_id, int value) { } } +Vector Entity::sskills_get() { + VARIANT_ARRAY_GET(_s_skills); +} +void Entity::sskills_set(const Vector &data) { + VARIANT_ARRAY_SET(data, _s_skills, EntitySkill); +} + //// Casting System //// bool Entity::cast_is_castings() { @@ -6362,20 +6369,6 @@ bool Entity::_set(const StringName &p_name, const Variant &p_value) { } } - //// Skills //// - - Dictionary skills = dict.get("skills", Dictionary()); - - for (int i = 0; i < skills.size(); ++i) { - Ref r; - r.instance(); - - r->from_dict(skills.get(String::num(i), Dictionary())); - - _s_skills.push_back(r); - _c_skills.push_back(r); - } - //// Actionbars //// _actionbar_locked = dict.get("actionbar_locked", false); @@ -6514,16 +6507,6 @@ bool Entity::_get(const StringName &p_name, Variant &r_ret) const { dict["known_spells"] = known_spells; - //// Skills //// - - Dictionary skills; - - for (int i = 0; i < _s_skills.size(); ++i) { - skills[i] = _s_skills.get(i)->to_dict(); - } - - dict["skills"] = skills; - //// Actionbars //// dict["actionbar_locked"] = _actionbar_locked; @@ -7219,7 +7202,7 @@ void Entity::_bind_methods() { ClassDB::bind_method(D_METHOD("sresources_get"), &Entity::sresources_get); ClassDB::bind_method(D_METHOD("sresources_set", "caster_aura_applys"), &Entity::sresources_set); - ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "sresources", PROPERTY_HINT_NONE, "17/17:EntityResource", PROPERTY_USAGE_DEFAULT, "EntityResource"), "sresources_set", "sresources_get"); + ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "sresources", PROPERTY_HINT_NONE, "17/17:EntityResource", PROPERTY_USAGE_STORAGE, "EntityResource"), "sresources_set", "sresources_get"); //GCD ADD_SIGNAL(MethodInfo("sgcd_started", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity"), PropertyInfo(Variant::REAL, "value"))); @@ -7258,7 +7241,7 @@ void Entity::_bind_methods() { ClassDB::bind_method(D_METHOD("getc_state"), &Entity::getc_state); ClassDB::bind_method(D_METHOD("setc_state", "state"), &Entity::setc_state); - ADD_PROPERTY(PropertyInfo(Variant::INT, "cstate"), "setc_state", "getc_state"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "cstate", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "setc_state", "getc_state"); ClassDB::bind_method(D_METHOD("gets_state"), &Entity::gets_state); ClassDB::bind_method(D_METHOD("sets_state", "state"), &Entity::sets_state); @@ -7427,6 +7410,10 @@ void Entity::_bind_methods() { ClassDB::bind_method(D_METHOD("skill_changec", "skill_id", "value"), &Entity::skill_changec); ClassDB::bind_method(D_METHOD("skill_changec_max", "skill_id", "value"), &Entity::skill_changec_max); + ClassDB::bind_method(D_METHOD("sskills_get"), &Entity::sskills_get); + ClassDB::bind_method(D_METHOD("sskills_set", "data"), &Entity::sskills_set); + ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "sskills", PROPERTY_HINT_NONE, "17/17:EntitySkill", PROPERTY_USAGE_STORAGE, "EntitySkill"), "sskills_set", "sskills_get"); + //skeleton ClassDB::bind_method(D_METHOD("get_body"), &Entity::get_body); ClassDB::bind_method(D_METHOD("get_body_3d"), &Entity::get_body_3d); diff --git a/entities/entity.h b/entities/entity.h index 7c80d57..34b7186 100644 --- a/entities/entity.h +++ b/entities/entity.h @@ -790,6 +790,9 @@ public: void skill_changec(int skill_id, int value); void skill_changec_max(int skill_id, int value); + Vector sskills_get(); + void sskills_set(const Vector &data); + //// Target //// void target_crequest_change(NodePath path);