summaryrefslogtreecommitdiff
path: root/modules/gdscript/doc_classes/GDScriptFunctionState.xml
blob: 9a73764646e27d24ae377a95e925a7d5e1539da4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version="1.0" encoding="UTF-8" ?>
<class name="GDScriptFunctionState" inherits="Reference" version="4.0">
	<brief_description>
		State of a function call after yielding.
	</brief_description>
	<description>
		Calling [method @GDScript.yield] within a function will cause that function to yield and return its current state as an object of this type. The yielded function call can then be resumed later by calling [method resume] on this state object.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="is_valid" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="extended_check" type="bool" default="false">
			</argument>
			<description>
				Check whether the function call may be resumed. This is not the case if the function state was already resumed.
				If [code]extended_check[/code] is enabled, it also checks if the associated script and object still exist. The extended check is done in debug mode as part of [method GDScriptFunctionState.resume], but you can use this if you know you may be trying to resume without knowing for sure the object and/or script have survived up to that point.
			</description>
		</method>
		<method name="resume">
			<return type="Variant">
			</return>
			<argument index="0" name="arg" type="Variant" default="null">
			</argument>
			<description>
				Resume execution of the yielded function call.
				If handed an argument, return the argument from the [method @GDScript.yield] call in the yielded function call. You can pass e.g. an [Array] to hand multiple arguments.
				This function returns what the resumed function call returns, possibly another function state if yielded again.
			</description>
		</method>
	</methods>
	<signals>
		<signal name="completed">
			<argument index="0" name="result" type="Variant">
			</argument>
			<description>
			</description>
		</signal>
	</signals>
	<constants>
	</constants>
</class>