From 9f5248b297a0659a241b30a0df3365ee6ca8bb63 Mon Sep 17 00:00:00 2001 From: Relintai Date: Thu, 23 Apr 2020 12:13:56 +0200 Subject: [PATCH] Stat and StatModifier is also a resource now. Stats are not yet exposed as properties, as they need a bit of rework to work properly this way. --- entities/entity.cpp | 5 +++++ entities/stats/stat.cpp | 2 +- entities/stats/stat.h | 6 +++--- entities/stats/stat_modifier.h | 6 +++--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/entities/entity.cpp b/entities/entity.cpp index 25d5f7a..5263038 100644 --- a/entities/entity.cpp +++ b/entities/entity.cpp @@ -7159,6 +7159,11 @@ void Entity::_bind_methods() { ClassDB::bind_method(D_METHOD("get_stat_enum", "index"), &Entity::get_stat_enum); ClassDB::bind_method(D_METHOD("set_stat_enum", "stat_id", "entry"), &Entity::set_stat_enum); + //todo + //for (int i = 0; i < Stat::STAT_ID_TOTAL_STATS; ++i) { + // ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "stats/" + itos(i), PROPERTY_HINT_RESOURCE_TYPE, "Stat"), "set_stat_int", "get_stat_int", i); + //} + //Equipment System ADD_SIGNAL(MethodInfo("son_equip_success", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity"), PropertyInfo(Variant::INT, "equip_slot"), PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), PropertyInfo(Variant::OBJECT, "old_item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), PropertyInfo(Variant::INT, "bag_slot"))); diff --git a/entities/stats/stat.cpp b/entities/stats/stat.cpp index e85dfaa..3b63729 100644 --- a/entities/stats/stat.cpp +++ b/entities/stats/stat.cpp @@ -595,7 +595,7 @@ void Stat::_bind_methods() { ClassDB::bind_method(D_METHOD("get_owner"), &Stat::get_owner); ClassDB::bind_method(D_METHOD("set_owner", "value"), &Stat::set_owner_bind); - ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "owner", PROPERTY_HINT_RESOURCE_TYPE, "Entity"), "set_owner", "get_owner"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "owner", PROPERTY_HINT_RESOURCE_TYPE, "Entity", 0), "set_owner", "get_owner"); ClassDB::bind_method(D_METHOD("get_stat_modifier_type"), &Stat::get_stat_modifier_type); ClassDB::bind_method(D_METHOD("set_stat_modifier_type", "value"), &Stat::set_stat_modifier_type); diff --git a/entities/stats/stat.h b/entities/stats/stat.h index d4ca012..e128fb1 100644 --- a/entities/stats/stat.h +++ b/entities/stats/stat.h @@ -23,7 +23,7 @@ SOFTWARE. #ifndef STAT_H #define STAT_H -#include "core/reference.h" +#include "core/resource.h" #include "core/ustring.h" #include "core/vector.h" #include "scene/resources/curve.h" @@ -33,8 +33,8 @@ SOFTWARE. class StatDataEntry; class Entity; -class Stat : public Reference { - GDCLASS(Stat, Reference); +class Stat : public Resource { + GDCLASS(Stat, Resource); public: static const String STAT_BINDING_STRING; diff --git a/entities/stats/stat_modifier.h b/entities/stats/stat_modifier.h index 90a829f..1489568 100644 --- a/entities/stats/stat_modifier.h +++ b/entities/stats/stat_modifier.h @@ -23,12 +23,12 @@ SOFTWARE. #ifndef STAT_MODIFIER_H #define STAT_MODIFIER_H -#include "core/reference.h" +#include "core/resource.h" class Stat; -class StatModifier : public Reference { - GDCLASS(StatModifier, Reference); +class StatModifier : public Resource { + GDCLASS(StatModifier, Resource); public: StatModifier();