Added a node_name property to EntityCreateInfo. If it's set to something Entity's node name will be set to it. Also entity name will only get set if it's set in EntityCreateInfo.

This commit is contained in:
Relintai 2021-08-30 20:50:31 +02:00
parent 71dc15650a
commit f7808baee3
3 changed files with 22 additions and 1 deletions

View File

@ -633,7 +633,9 @@ void Entity::setup(Ref<EntityCreateInfo> info) {
_s_xp = info->get_xp();
sets_entity_name(info->get_entity_name());
if (info->get_entity_name() != "") {
sets_entity_name(info->get_entity_name());
}
#if VERSION_MAJOR > 3
if (!info->get_serialized_data().is_empty()) {
@ -645,6 +647,10 @@ void Entity::setup(Ref<EntityCreateInfo> info) {
sets_entity_data(info->get_entity_data());
}
if (info->get_node_name() != "") {
set_name(info->get_node_name());
}
if (has_method("_setup")) {
#if GODOT4
call("_setup");

View File

@ -77,6 +77,13 @@ void EntityCreateInfo::set_entity_name(const String &value) {
_entity_name = value;
}
String EntityCreateInfo::get_node_name() const {
return _node_name;
}
void EntityCreateInfo::set_node_name(const String &value) {
_node_name = value;
}
int EntityCreateInfo::get_level() const {
return _level;
}
@ -251,6 +258,10 @@ void EntityCreateInfo::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_entity_name", "value"), &EntityCreateInfo::set_entity_name);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "player_name"), "set_entity_name", "get_entity_name");
ClassDB::bind_method(D_METHOD("get_node_name"), &EntityCreateInfo::get_node_name);
ClassDB::bind_method(D_METHOD("set_node_name", "value"), &EntityCreateInfo::set_node_name);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "node_name"), "set_node_name", "get_node_name");
ClassDB::bind_method(D_METHOD("get_level"), &EntityCreateInfo::get_level);
ClassDB::bind_method(D_METHOD("set_level", "value"), &EntityCreateInfo::set_level);
ADD_PROPERTY(PropertyInfo(Variant::INT, "level"), "set_level", "get_level");

View File

@ -64,6 +64,9 @@ public:
String get_entity_name() const;
void set_entity_name(const String &value);
String get_node_name() const;
void set_node_name(const String &value);
int get_level() const;
void set_level(const int value);
@ -111,6 +114,7 @@ private:
int _network_owner;
EntityEnums::EntityController _entity_controller;
String _entity_name;
String _node_name;
int _level;
int _xp;