From 94d2ddf73b4d0adad1afc94615ac840531f72565 Mon Sep 17 00:00:00 2001 From: Relintai Date: Wed, 29 Apr 2020 18:12:09 +0200 Subject: [PATCH] Moved StatData into EntityData from EntityClassData. --- entities/data/entity_class_data.cpp | 19 ------------------- entities/data/entity_class_data.h | 5 ----- entities/data/entity_data.cpp | 16 ++++++++++++++++ entities/data/entity_data.h | 4 ++++ entities/entity.cpp | 6 +++--- 5 files changed, 23 insertions(+), 27 deletions(-) diff --git a/entities/data/entity_class_data.cpp b/entities/data/entity_class_data.cpp index 7662004..e5407d2 100644 --- a/entities/data/entity_class_data.cpp +++ b/entities/data/entity_class_data.cpp @@ -74,21 +74,6 @@ void EntityClassData::set_playstyle_type(EntityEnums::EntityClassPlaystyleType p _playstyle_type = playstyle_type; } -Ref EntityClassData::get_stat_data() { - if (!_stat_data.is_valid() && _inherits.is_valid()) { - return _inherits->get_stat_data(); - } - - if (!_stat_data.is_valid()) - return Ref(); - - return _stat_data; -} - -void EntityClassData::set_stat_data(Ref value) { - _stat_data = value; -} - //// Entity Resources //// int EntityClassData::get_num_entity_resources() { @@ -976,10 +961,6 @@ void EntityClassData::_bind_methods() { ClassDB::bind_method(D_METHOD("set_icon", "value"), &EntityClassData::set_icon); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "icon", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_icon", "get_icon"); - ClassDB::bind_method(D_METHOD("get_stat_data"), &EntityClassData::get_stat_data); - ClassDB::bind_method(D_METHOD("set_stat_data", "value"), &EntityClassData::set_stat_data); - ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "stat_data", PROPERTY_HINT_RESOURCE_TYPE, "StatData"), "set_stat_data", "get_stat_data"); - ClassDB::bind_method(D_METHOD("get_spell_points_per_level"), &EntityClassData::get_spell_points_per_level); ClassDB::bind_method(D_METHOD("set_spell_points_per_level", "value"), &EntityClassData::set_spell_points_per_level); ADD_PROPERTY(PropertyInfo(Variant::INT, "spell_points_per_level"), "set_spell_points_per_level", "get_spell_points_per_level"); diff --git a/entities/data/entity_class_data.h b/entities/data/entity_class_data.h index deba270..b8ac87e 100644 --- a/entities/data/entity_class_data.h +++ b/entities/data/entity_class_data.h @@ -67,9 +67,6 @@ public: Ref get_icon(); void set_icon(Ref value); - Ref get_stat_data(); - void set_stat_data(Ref value); - int get_spell_points_per_level(); void set_spell_points_per_level(int value); @@ -239,8 +236,6 @@ private: EntityEnums::EntityClassPlaystyleType _playstyle_type; - Ref _stat_data; - Vector > _entity_resources; Vector > _specs; Vector > _spells; diff --git a/entities/data/entity_data.cpp b/entities/data/entity_data.cpp index 2d8591d..457f76f 100644 --- a/entities/data/entity_data.cpp +++ b/entities/data/entity_data.cpp @@ -110,6 +110,18 @@ void EntityData::set_bag_size(const int value) { _bag_size = value; } +Ref EntityData::get_stat_data() { + if (!_stat_data.is_valid() && _inherits.is_valid()) { + return _inherits->get_stat_data(); + } + + return _stat_data; +} + +void EntityData::set_stat_data(Ref value) { + _stat_data = value; +} + Ref EntityData::get_entity_species_data() const { return _entity_species_data; } @@ -1054,6 +1066,10 @@ void EntityData::_bind_methods() { ClassDB::bind_method(D_METHOD("set_bag_size", "value"), &EntityData::set_bag_size); ADD_PROPERTY(PropertyInfo(Variant::INT, "bag_size"), "set_bag_size", "get_bag_size"); + ClassDB::bind_method(D_METHOD("get_stat_data"), &EntityData::get_stat_data); + ClassDB::bind_method(D_METHOD("set_stat_data", "value"), &EntityData::set_stat_data); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "stat_data", PROPERTY_HINT_RESOURCE_TYPE, "StatData"), "set_stat_data", "get_stat_data"); + ClassDB::bind_method(D_METHOD("get_entity_species_data"), &EntityData::get_entity_species_data); ClassDB::bind_method(D_METHOD("set_entity_species_data", "value"), &EntityData::set_entity_species_data); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "entity_species_data", PROPERTY_HINT_RESOURCE_TYPE, "EntitySpeciesData"), "set_entity_species_data", "get_entity_species_data"); diff --git a/entities/data/entity_data.h b/entities/data/entity_data.h index bf76c41..9b88d98 100644 --- a/entities/data/entity_data.h +++ b/entities/data/entity_data.h @@ -97,6 +97,9 @@ public: int get_bag_size() const; void set_bag_size(const int value); + Ref get_stat_data(); + void set_stat_data(Ref value); + Ref get_entity_species_data() const; void set_entity_species_data(const Ref &value); @@ -250,6 +253,7 @@ private: int _money; int _bag_size; + Ref _stat_data; Ref _entity_class_data; Ref _entity_species_data; Ref _equipment_data; diff --git a/entities/entity.cpp b/entities/entity.cpp index f8d43ce..01f5280 100644 --- a/entities/entity.cpp +++ b/entities/entity.cpp @@ -581,7 +581,7 @@ void Entity::_setup() { Ref cc = gets_entity_data()->get_entity_class_data(); ERR_FAIL_COND(!cc.is_valid()); - Ref stat_data = cc->get_stat_data(); + Ref stat_data = _s_entity_data->get_stat_data(); ERR_FAIL_COND(!stat_data.is_valid()); @@ -650,7 +650,7 @@ void Entity::_setup() { ERR_FAIL_COND(!cc.is_valid()); for (int i = 0; i < ESS::get_instance()->stat_get_count(); ++i) { - cc->get_stat_data()->get_stat_for_stat(_stats[i]); + _s_entity_data->get_stat_data()->get_stat_for_stat(_stats[i]); } for (int i = 0; i < ESS::get_instance()->stat_get_count(); ++i) { @@ -6064,7 +6064,7 @@ void Entity::_notification_scharacter_level_up(int level) { return; for (int i = 0; i < ESS::get_instance()->stat_get_main_stat_count(); ++i) { - int st = gets_entity_data()->get_entity_class_data()->get_stat_data()->get_level_stat_data()->get_stat_diff(i, gets_character_level() - level, gets_character_level()); + int st = gets_entity_data()->get_stat_data()->get_level_stat_data()->get_stat_diff(i, gets_character_level() - level, gets_character_level()); Ref stat = get_stat(i);