Browse Source

Fix documentation for yield

#33872 PR was misleading as i though inheritance from GDScriptFunctionState was optional.
Zak 5 years ago
parent
commit
0fd7186971
1 changed files with 15 additions and 12 deletions
  1. 15 12
      modules/gdscript/doc_classes/@GDScript.xml

+ 15 - 12
modules/gdscript/doc_classes/@GDScript.xml

@@ -1367,23 +1367,26 @@
 				You can also use [code]yield[/code] to wait for a function to finish:
 				[codeblock]
 				func _ready():
-				    yield(do_something(), "completed")
-				    yield(do_something_else(), "completed")
-				    print("All functions are done!")
+				    yield(countdown(), "completed") # waiting for the countdown() function to complete
+				    print('Ready')
 
-				func do_something():
-				    print("Something is done!")
-
-				func do_something_else():
-				    print("Something else is done!")
+				func countdown():
+				    yield(get_tree(), "idle_frame") # returns a GDScriptFunctionState object to _ready()
+				    print(3)
+				    yield(get_tree().create_timer(1.0), "timeout")
+				    print(2)
+				    yield(get_tree().create_timer(1.0), "timeout")
+				    print(1)
+				    yield(get_tree().create_timer(1.0), "timeout")
 
 				# prints:
-				# Something is done!
-				# Something else is done!
-				# All functions are done!
+				# 3
+				# 2
+				# 1
+				# Ready
 				[/codeblock]
 				When yielding on a function, the [code]completed[/code] signal will be emitted automatically when the function returns. It can, therefore, be used as the [code]signal[/code] parameter of the [code]yield[/code] method to resume.
-				If you are planning on calling the same function within a loop, you should consider using [code]yield(get_tree(), "idle_frame")[/code] also.
+				In order to yield on a function, the resulting function should also return a [code]GDScriptFunctionState[/code]. Notice [code]yield(get_tree(), "idle_frame")[/code] from the above example.
 			</description>
 		</method>
 	</methods>