What is the best way to tell when all of a Tween's animations, including all callbacks, are finished?
I want to have logic like this:
func _fixed_process(delta)
if not_animating():
if Input.is_action_pressed("do_move"):
tween.interpolate_property(mobile, "transform/pos", mobile.get_pos(), new_pos, ANIM_TIME, ...)
tween.interpolate_callback(object, ANIM_TIME, "mobile_moved")
tween.start()
I want to wait until all animations are finished before responding to input. So I'm wondering what to put in not_animating()
tween.is_active()
doesn't seem to be the method to check. It apparently returns true as long as any animations are attached to the tween, even if enough time has passed for all the animations to run.
I've therefore tried comparing tween.tell()
with tween.get_runtime()
. But when I do tween.tell() < tween.get_runtime()
I miss the ending object.mobile_moved()
callback. But tween.tell()
doesn't change after it reaches the same value as tween.get_runtime()
, so with tween.tell() < tween.get_runtime()
I can't distinguish between the tween being finished and the tween being at the very end.