Merge pull request #12224 from NathanWarden/scene_tree_added_signal
Added a node_added signal to the SceneTree
This commit is contained in:
commit
067fc88488
@ -212,6 +212,8 @@ void Node::_propagate_enter_tree() {
|
|||||||
|
|
||||||
emit_signal(SceneStringNames::get_singleton()->tree_entered);
|
emit_signal(SceneStringNames::get_singleton()->tree_entered);
|
||||||
|
|
||||||
|
data.tree->node_added(this);
|
||||||
|
|
||||||
data.blocked++;
|
data.blocked++;
|
||||||
//block while adding children
|
//block while adding children
|
||||||
|
|
||||||
|
@ -85,6 +85,11 @@ void SceneTree::tree_changed() {
|
|||||||
emit_signal(tree_changed_name);
|
emit_signal(tree_changed_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SceneTree::node_added(Node *p_node) {
|
||||||
|
|
||||||
|
emit_signal(node_added_name, p_node);
|
||||||
|
}
|
||||||
|
|
||||||
void SceneTree::node_removed(Node *p_node) {
|
void SceneTree::node_removed(Node *p_node) {
|
||||||
|
|
||||||
if (current_scene == p_node) {
|
if (current_scene == p_node) {
|
||||||
@ -2189,6 +2194,7 @@ void SceneTree::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("_server_disconnected"), &SceneTree::_server_disconnected);
|
ClassDB::bind_method(D_METHOD("_server_disconnected"), &SceneTree::_server_disconnected);
|
||||||
|
|
||||||
ADD_SIGNAL(MethodInfo("tree_changed"));
|
ADD_SIGNAL(MethodInfo("tree_changed"));
|
||||||
|
ADD_SIGNAL(MethodInfo("node_added", PropertyInfo(Variant::OBJECT, "node")));
|
||||||
ADD_SIGNAL(MethodInfo("node_removed", PropertyInfo(Variant::OBJECT, "node")));
|
ADD_SIGNAL(MethodInfo("node_removed", PropertyInfo(Variant::OBJECT, "node")));
|
||||||
ADD_SIGNAL(MethodInfo("screen_resized"));
|
ADD_SIGNAL(MethodInfo("screen_resized"));
|
||||||
ADD_SIGNAL(MethodInfo("node_configuration_warning_changed", PropertyInfo(Variant::OBJECT, "node")));
|
ADD_SIGNAL(MethodInfo("node_configuration_warning_changed", PropertyInfo(Variant::OBJECT, "node")));
|
||||||
@ -2260,6 +2266,7 @@ SceneTree::SceneTree() {
|
|||||||
root = NULL;
|
root = NULL;
|
||||||
current_frame = 0;
|
current_frame = 0;
|
||||||
tree_changed_name = "tree_changed";
|
tree_changed_name = "tree_changed";
|
||||||
|
node_added_name = "node_added";
|
||||||
node_removed_name = "node_removed";
|
node_removed_name = "node_removed";
|
||||||
ugc_locked = false;
|
ugc_locked = false;
|
||||||
call_lock = 0;
|
call_lock = 0;
|
||||||
|
@ -124,6 +124,7 @@ private:
|
|||||||
bool input_handled;
|
bool input_handled;
|
||||||
Size2 last_screen_size;
|
Size2 last_screen_size;
|
||||||
StringName tree_changed_name;
|
StringName tree_changed_name;
|
||||||
|
StringName node_added_name;
|
||||||
StringName node_removed_name;
|
StringName node_removed_name;
|
||||||
|
|
||||||
int64_t current_frame;
|
int64_t current_frame;
|
||||||
@ -233,6 +234,7 @@ private:
|
|||||||
void _rpc(Node *p_from, int p_to, bool p_unreliable, bool p_set, const StringName &p_name, const Variant **p_arg, int p_argcount);
|
void _rpc(Node *p_from, int p_to, bool p_unreliable, bool p_set, const StringName &p_name, const Variant **p_arg, int p_argcount);
|
||||||
|
|
||||||
void tree_changed();
|
void tree_changed();
|
||||||
|
void node_added(Node *p_node);
|
||||||
void node_removed(Node *p_node);
|
void node_removed(Node *p_node);
|
||||||
|
|
||||||
Group *add_to_group(const StringName &p_group, Node *p_node);
|
Group *add_to_group(const StringName &p_group, Node *p_node);
|
||||||
|
Loading…
Reference in New Issue
Block a user