|
@@ -211,6 +211,12 @@ void Node::_propagate_enter_tree() {
|
|
|
|
|
|
data.tree->node_added(this);
|
|
data.tree->node_added(this);
|
|
|
|
|
|
|
|
+ if (data.parent) {
|
|
|
|
+ Variant c = this;
|
|
|
|
+ const Variant *cptr = &c;
|
|
|
|
+ data.parent->emit_signal(SNAME("child_entered_tree"), &cptr, 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
data.blocked++;
|
|
data.blocked++;
|
|
//block while adding children
|
|
//block while adding children
|
|
|
|
|
|
@@ -281,6 +287,12 @@ void Node::_propagate_exit_tree() {
|
|
data.tree->node_removed(this);
|
|
data.tree->node_removed(this);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (data.parent) {
|
|
|
|
+ Variant c = this;
|
|
|
|
+ const Variant *cptr = &c;
|
|
|
|
+ data.parent->emit_signal(SNAME("child_exited_tree"), &cptr, 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
// exit groups
|
|
// exit groups
|
|
|
|
|
|
for (KeyValue<StringName, GroupData> &E : data.grouped) {
|
|
for (KeyValue<StringName, GroupData> &E : data.grouped) {
|
|
@@ -2865,6 +2877,8 @@ void Node::_bind_methods() {
|
|
ADD_SIGNAL(MethodInfo("tree_entered"));
|
|
ADD_SIGNAL(MethodInfo("tree_entered"));
|
|
ADD_SIGNAL(MethodInfo("tree_exiting"));
|
|
ADD_SIGNAL(MethodInfo("tree_exiting"));
|
|
ADD_SIGNAL(MethodInfo("tree_exited"));
|
|
ADD_SIGNAL(MethodInfo("tree_exited"));
|
|
|
|
+ ADD_SIGNAL(MethodInfo("child_entered_tree", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT, "Node")));
|
|
|
|
+ ADD_SIGNAL(MethodInfo("child_exited_tree", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT, "Node")));
|
|
|
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_name", "get_name");
|
|
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_name", "get_name");
|
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "scene_file_path", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_scene_file_path", "get_scene_file_path");
|
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "scene_file_path", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_scene_file_path", "get_scene_file_path");
|