summaryrefslogtreecommitdiff
path: root/doc/classes/ResourceLoader.xml
blob: d6e9a233b0ca4141d2638162dbcb3a6c5aec5674 (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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?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="add_resource_format_loader">
			<return type="void" />
			<argument index="0" name="format_loader" type="ResourceFormatLoader" />
			<argument index="1" name="at_front" type="bool" default="false" />
			<description>
				Registers a new [ResourceFormatLoader]. The ResourceLoader will use the ResourceFormatLoader as described in [method load].
				This method is performed implictly for ResourceFormatLoaders written in GDScript (see [ResourceFormatLoader] for more information).
			</description>
		</method>
		<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="remove_resource_format_loader">
			<return type="void" />
			<argument index="0" name="format_loader" type="ResourceFormatLoader" />
			<description>
				Unregisters the given [ResourceFormatLoader].
			</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>