From 14210ba66d2e1f0a2f95231cac4b4c6db23a6c36 Mon Sep 17 00:00:00 2001 From: Relintai Date: Sat, 4 May 2019 23:20:22 +0200 Subject: [PATCH] -EntityCreateInfo is now a Reference. -Bound the initialize method. --- entities/entity.cpp | 10 +++++++--- entities/entity.h | 2 +- utility/entity_create_info.h | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/entities/entity.cpp b/entities/entity.cpp index 8455abe..028e6d5 100644 --- a/entities/entity.cpp +++ b/entities/entity.cpp @@ -333,7 +333,9 @@ Entity::~Entity() { memdelete(_c_auras); } -void Entity::initialize(EntityCreateInfo *info) { +void Entity::initialize(Ref info) { + ERR_FAIL_COND(!info.is_valid()); + _s_player_name = info->get_player_name(); _c_player_name = info->get_player_name(); @@ -348,7 +350,7 @@ void Entity::initialize(EntityCreateInfo *info) { sets_character_class(info->get_character_class()); //setc_character_class(info->get_character_class()); - + /* if (gets_character_class() != NULL) { Ref sd = gets_character_class()->get_stat_data(); @@ -364,7 +366,7 @@ void Entity::initialize(EntityCreateInfo *info) { stat->set_dependency(other, entry->get_dependdency_curve()); } } - } + }*/ } void Entity::sinitialize_stats() { @@ -2359,6 +2361,8 @@ void Entity::_bind_methods() { ClassDB::bind_method(D_METHOD("setc_character_class", "value"), &Entity::setc_character_class); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "c_character_class", PROPERTY_HINT_RESOURCE_TYPE, "CharacterClass"), "setc_character_class", "getc_character_class"); + ClassDB::bind_method(D_METHOD("initialize", "entity_create_info"), &Entity::initialize); + ClassDB::bind_method(D_METHOD("get_health"), &Entity::get_health); ClassDB::bind_method(D_METHOD("get_mana"), &Entity::get_mana); ClassDB::bind_method(D_METHOD("get_speed"), &Entity::get_speed); diff --git a/entities/entity.h b/entities/entity.h index 5c0310c..9e52528 100644 --- a/entities/entity.h +++ b/entities/entity.h @@ -71,7 +71,7 @@ public: Entity(); ~Entity(); - void initialize(EntityCreateInfo *info); + void initialize(Ref info); void Update(); //old, remove diff --git a/utility/entity_create_info.h b/utility/entity_create_info.h index 7d2e16a..d9582ca 100644 --- a/utility/entity_create_info.h +++ b/utility/entity_create_info.h @@ -5,8 +5,8 @@ #include "../entity_enums.h" #include "../data/character.h" -class EntityCreateInfo : public Object { - GDCLASS(EntityCreateInfo, Object); +class EntityCreateInfo : public Reference { + GDCLASS(EntityCreateInfo, Reference); public: int get_guid() { return _guid; }