Add scene_failed signal and fix the_connecting()

This commit is contained in:
CactiChameleon9 2022-08-14 08:55:10 +01:00
parent a0ad1442ad
commit 2176c95417

View File

@ -17,15 +17,21 @@ func the_pausing():
func the_connecting(): func the_connecting():
# iterate through the children and connect up the child_finished method # iterate through the children and connect up the child_finished method
for i in len(get_children()): 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 # connect the finished signal if it exists and
if get_child(i).get_signal_connection_list("finished_active") == []: # if the failed finished isn't already connected
continue if (get_child(i).has_signal("scene_finished") and
get_child(i).get_signal_connection_list("scene_finished") == []):
get_child(i).connect("scene_finished", self, child_finished())
get_child(i).connect("finished_active", self, child_finished())
# connect the failed signal if it exists and
# if the failed signal isn't already connected
if (get_child(i).has_signal("scene_failed") and
get_child(i).get_signal_connection_list("scene_failed") == []):
get_child(i).connect("scene_failed", self, child_failed())
func child_finished(): func child_finished():
@ -33,3 +39,10 @@ func child_finished():
current_active += 1 current_active += 1
if current_active >= len(get_children()): if current_active >= len(get_children()):
current_active = 0 current_active = 0
func child_failed():
# designed to be called from a signal
current_active -= 1
if current_active < 0:
current_active = len(get_children()) - 1