summaryrefslogtreecommitdiffstats
path: root/scene/main/node.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-29 21:34:13 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-29 21:34:13 +0100
commit86f6811752683c79ad05ee6c075b180ab20352aa (patch)
tree52ea064d4e755f07225ceb323465bd9d51747613 /scene/main/node.cpp
parent6809791feec71790046a266707eb37dfb4721a4e (diff)
parent0de8a736dad9bf9ed5b8075946bf1e96a47b20f6 (diff)
downloadredot-engine-86f6811752683c79ad05ee6c075b180ab20352aa.tar.gz
Merge pull request #87701 from KoBeWi/extratreestial_tweens
Allow `Node.create_tween()` outside SceneTree
Diffstat (limited to 'scene/main/node.cpp')
-rw-r--r--scene/main/node.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index f25e178d23..b78dfb2f2c 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -2326,8 +2326,14 @@ void Node::_propagate_replace_owner(Node *p_owner, Node *p_by_owner) {
Ref<Tween> Node::create_tween() {
ERR_THREAD_GUARD_V(Ref<Tween>());
- ERR_FAIL_NULL_V_MSG(data.tree, nullptr, "Can't create Tween when not inside scene tree.");
- Ref<Tween> tween = get_tree()->create_tween();
+
+ SceneTree *tree = data.tree;
+ if (!tree) {
+ tree = SceneTree::get_singleton();
+ }
+ ERR_FAIL_NULL_V_MSG(tree, Ref<Tween>(), "No available SceneTree to create the Tween.");
+
+ Ref<Tween> tween = tree->create_tween();
tween->bind_node(this);
return tween;
}