Added a body changed signal, and a vmethod to Entity.

This commit is contained in:
Relintai 2020-07-29 15:21:29 +02:00
parent e45d109d7f
commit 2c7a982a28
2 changed files with 14 additions and 0 deletions

View File

@ -192,9 +192,18 @@ void Entity::instance_body(const Ref<EntityData> &data, const int model_index) {
add_child(node); add_child(node);
set_body(node); set_body(node);
on_body_changed();
} }
} }
void Entity::on_body_changed() {
if (has_method("_body_changed"))
call("_body_changed");
emit_signal("body_changed", this);
}
NodePath Entity::get_character_skeleton_path() { NodePath Entity::get_character_skeleton_path() {
return _character_skeleton_path; return _character_skeleton_path;
} }
@ -7335,6 +7344,10 @@ void Entity::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_character_skeleton", "skeleton"), &Entity::set_character_skeleton); ClassDB::bind_method(D_METHOD("set_character_skeleton", "skeleton"), &Entity::set_character_skeleton);
ClassDB::bind_method(D_METHOD("instance_body"), &Entity::instance_body); ClassDB::bind_method(D_METHOD("instance_body"), &Entity::instance_body);
ClassDB::bind_method(D_METHOD("on_body_changed"), &Entity::on_body_changed);
BIND_VMETHOD(MethodInfo("_body_changed"));
ADD_SIGNAL(MethodInfo("body_changed", PropertyInfo(Variant::OBJECT, "entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
//Transforms //Transforms
ClassDB::bind_method(D_METHOD("get_transform_3d", "only_stored"), &Entity::get_transform_3d, DEFVAL(false)); ClassDB::bind_method(D_METHOD("get_transform_3d", "only_stored"), &Entity::get_transform_3d, DEFVAL(false));

View File

@ -235,6 +235,7 @@ public:
void set_body(Node *body); void set_body(Node *body);
void instance_body(const Ref<EntityData> &data, const int model_index); void instance_body(const Ref<EntityData> &data, const int model_index);
void on_body_changed();
NodePath get_character_skeleton_path(); NodePath get_character_skeleton_path();
void set_character_skeleton_path(NodePath value); void set_character_skeleton_path(NodePath value);