Moved StatData into EntityData from EntityClassData.

This commit is contained in:
Relintai 2020-04-29 18:12:09 +02:00
parent 19fd2ea109
commit 94d2ddf73b
5 changed files with 23 additions and 27 deletions

View File

@ -74,21 +74,6 @@ void EntityClassData::set_playstyle_type(EntityEnums::EntityClassPlaystyleType p
_playstyle_type = playstyle_type;
}
Ref<StatData> EntityClassData::get_stat_data() {
if (!_stat_data.is_valid() && _inherits.is_valid()) {
return _inherits->get_stat_data();
}
if (!_stat_data.is_valid())
return Ref<StatData>();
return _stat_data;
}
void EntityClassData::set_stat_data(Ref<StatData> 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");

View File

@ -67,9 +67,6 @@ public:
Ref<Texture> get_icon();
void set_icon(Ref<Texture> value);
Ref<StatData> get_stat_data();
void set_stat_data(Ref<StatData> 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<StatData> _stat_data;
Vector<Ref<EntityResourceData> > _entity_resources;
Vector<Ref<CharacterSpec> > _specs;
Vector<Ref<Spell> > _spells;

View File

@ -110,6 +110,18 @@ void EntityData::set_bag_size(const int value) {
_bag_size = value;
}
Ref<StatData> 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<StatData> value) {
_stat_data = value;
}
Ref<EntitySpeciesData> 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");

View File

@ -97,6 +97,9 @@ public:
int get_bag_size() const;
void set_bag_size(const int value);
Ref<StatData> get_stat_data();
void set_stat_data(Ref<StatData> value);
Ref<EntitySpeciesData> get_entity_species_data() const;
void set_entity_species_data(const Ref<EntitySpeciesData> &value);
@ -250,6 +253,7 @@ private:
int _money;
int _bag_size;
Ref<StatData> _stat_data;
Ref<EntityClassData> _entity_class_data;
Ref<EntitySpeciesData> _entity_species_data;
Ref<EquipmentData> _equipment_data;

View File

@ -581,7 +581,7 @@ void Entity::_setup() {
Ref<EntityClassData> cc = gets_entity_data()->get_entity_class_data();
ERR_FAIL_COND(!cc.is_valid());
Ref<StatData> stat_data = cc->get_stat_data();
Ref<StatData> 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> stat = get_stat(i);