summaryrefslogtreecommitdiff
path: root/doc/classes/ResourceLoader.xml
blob: 1ffb0dba5cbff6130750a5756d90b7b690bc3da3 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ResourceLoader" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Singleton used to load resource files.
	</brief_description>
	<description>
		Singleton used to load resource files from the filesystem.
		It uses the many [ResourceFormatLoader] classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine.
	</description>
	<tutorials>
		<link title="OS Test Demo">https://godotengine.org/asset-library/asset/677</link>
	</tutorials>
	<methods>
		<method name="exists">
			<return type="bool" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="type_hint" type="String" default="&quot;&quot;" />
			<description>
				Returns whether a recognized resource exists for the given [code]path[/code].
				An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader]. Anything that inherits from [Resource] can be used as a type hint, for example [Image].
			</description>
		</method>
		<method name="get_dependencies">
			<return type="PackedStringArray" />
			<argument index="0" name="path" type="String" />
			<description>
				Returns the dependencies for the resource at the given [code]path[/code].
			</description>
		</method>
		<method name="get_recognized_extensions_for_type">
			<return type="PackedStringArray" />
			<argument index="0" name="type" type="String" />
			<description>
				Returns the list of recognized extensions for a resource type.
			</description>
		</method>
		<method name="get_resource_uid">
			<return type="int" />
			<argument index="0" name="path" type="String" />
			<description>
				Returns the ID associated with a given resource path, or [code]-1[/code] when no such ID exists.
			</description>
		</method>
		<method name="has_cached">
			<return type="bool" />
			<argument index="0" name="path" type="String" />
			<description>
				Returns whether a cached resource is available for the given [code]path[/code].
				Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the [method load] method will use the cached version. The cached resource can be overridden by using [method Resource.take_over_path] on a new resource for that same path.
			</description>
		</method>
		<method name="load">
			<return type="Resource" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="type_hint" type="String" default="&quot;&quot;" />
			<argument index="2" name="cache_mode" type="int" enum="ResourceLoader.CacheMode" default="1" />
			<description>
				Loads a resource at the given [code]path[/code], caching the result for further access.
				The registered [ResourceFormatLoader]s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted.
				An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader]. Anything that inherits from [Resource] can be used as a type hint, for example [Image].
				The [code]cache_mode[/code] property defines whether and how the cache should be used or updated when loading the resource. See [enum CacheMode] for details.
				Returns an empty resource if no [ResourceFormatLoader] could handle the file.
				GDScript has a simplified [method @GDScript.load] built-in method which can be used in most situations, leaving the use of [ResourceLoader] for more advanced scenarios.
			</description>
		</method>
		<method name="load_threaded_get">
			<return type="Resource" />
			<argument index="0" name="path" type="String" />
			<description>
				Returns the resource loaded by [method load_threaded_request].
				If this is called before the loading thread is done (i.e. [method load_threaded_get_status] is not [constant THREAD_LOAD_LOADED]), the calling thread will be blocked until the resource has finished loading.
			</description>
		</method>
		<method name="load_threaded_get_status">
			<return type="int" enum="ResourceLoader.ThreadLoadStatus" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="progress" type="Array" default="[]" />
			<description>
				Returns the status of a threaded loading operation started with [method load_threaded_request] for the resource at [code]path[/code]. See [enum ThreadLoadStatus] for possible return values.
				An array variable can optionally be passed via [code]progress[/code], and will return a one-element array containing the percentage of completion of the threaded loading.
			</description>
		</method>
		<method name="load_threaded_request">
			<return type="int" enum="Error" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="type_hint" type="String" default="&quot;&quot;" />
			<argument index="2" name="use_sub_threads" type="bool" default="false" />
			<description>
				Loads the resource using threads. If [code]use_sub_threads[/code] is [code]true[/code], multiple threads will be used to load the resource, which makes loading faster, but may affect the main thread (and thus cause game slowdowns).
			</description>
		</method>
		<method name="set_abort_on_missing_resources">
			<return type="void" />
			<argument index="0" name="abort" type="bool" />
			<description>
				Changes the behavior on missing sub-resources. The default behavior is to abort loading.
			</description>
		</method>
	</methods>
	<constants>
		<constant name="THREAD_LOAD_INVALID_RESOURCE" value="0" enum="ThreadLoadStatus">
			The resource is invalid, or has not been loaded with [method load_threaded_request].
		</constant>
		<constant name="THREAD_LOAD_IN_PROGRESS" value="1" enum="ThreadLoadStatus">
			The resource is still being loaded.
		</constant>
		<constant name="THREAD_LOAD_FAILED" value="2" enum="ThreadLoadStatus">
			Some error occurred during loading and it failed.
		</constant>
		<constant name="THREAD_LOAD_LOADED" value="3" enum="ThreadLoadStatus">
			The resource was loaded successfully and can be accessed via [method load_threaded_get].
		</constant>
		<constant name="CACHE_MODE_IGNORE" value="0" enum="CacheMode">
		</constant>
		<constant name="CACHE_MODE_REUSE" value="1" enum="CacheMode">
		</constant>
		<constant name="CACHE_MODE_REPLACE" value="2" enum="CacheMode">
		</constant>
	</constants>
</class>