mirror of https://github.com/godotengine/godot
Merge pull request #108227 from Meorge/bugfix/kill-subtweens
Propagate `Tween.kill()` to subtweens
This commit is contained in:
commit
a1974604fe
|
|
@ -164,6 +164,7 @@ Ref<SubtweenTweener> Tween::tween_subtween(const Ref<Tween> &p_subtween) {
|
||||||
if (tweener->subtween->parent_tree != nullptr) {
|
if (tweener->subtween->parent_tree != nullptr) {
|
||||||
tweener->subtween->parent_tree->remove_tween(tweener->subtween);
|
tweener->subtween->parent_tree->remove_tween(tweener->subtween);
|
||||||
}
|
}
|
||||||
|
subtweens.push_back(p_subtween);
|
||||||
append(tweener);
|
append(tweener);
|
||||||
return tweener;
|
return tweener;
|
||||||
}
|
}
|
||||||
|
|
@ -200,6 +201,11 @@ void Tween::kill() {
|
||||||
running = false; // For the sake of is_running().
|
running = false; // For the sake of is_running().
|
||||||
valid = false;
|
valid = false;
|
||||||
dead = true;
|
dead = true;
|
||||||
|
|
||||||
|
// Kill all subtweens of this tween.
|
||||||
|
for (Ref<Tween> &st : subtweens) {
|
||||||
|
st->kill();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Tween::is_running() {
|
bool Tween::is_running() {
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,7 @@ private:
|
||||||
|
|
||||||
SceneTree *parent_tree = nullptr;
|
SceneTree *parent_tree = nullptr;
|
||||||
LocalVector<List<Ref<Tweener>>> tweeners;
|
LocalVector<List<Ref<Tweener>>> tweeners;
|
||||||
|
LocalVector<Ref<Tween>> subtweens;
|
||||||
double total_time = 0;
|
double total_time = 0;
|
||||||
int current_step = -1;
|
int current_step = -1;
|
||||||
int loops = 1;
|
int loops = 1;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue