36 lines
889 B
GDScript

extends Node
var current_active : int = 0
func _process(_delta):
the_connecting()
the_pausing()
func the_pausing():
# iterate through the children, allowing only the current active node to run
for i in len(get_children()):
get_child(i).pause_mode = 0 if i == current_active else 1
func the_connecting():
# iterate through the children and connect up the child_finished method
for i in len(get_children()):
# don't connect the signal if it doesn't exist
if not get_child(i).has_signal("finished_active"):
continue
# don't connect the signal if already connected
if get_child(i).get_signal_connection_list("finished_active") == []:
continue
get_child(i).connect("finished_active", self, child_finished())
func child_finished():
# designed to be called from a signal
current_active += 1
if current_active >= len(get_children()):
current_active = 0