<?xml version="1.0" encoding="UTF-8" ?>
<class name="ResourceLoader" inherits="Object" version="4.2">
	<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].
			</description>
		</method>
		<method name="get_dependencies">
			<return type="PoolStringArray" />
			<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="PoolStringArray" />
			<argument index="0" name="type" type="String" />
			<description>
				Returns the list of recognized extensions for a resource type.
			</description>
		</method>
		<method name="has">
			<return type="bool" />
			<argument index="0" name="path" type="String" />
			<description>
				[i]Deprecated method.[/i] Use [method has_cached] or [method exists] instead.
			</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] or [method load_interactive] methods 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="no_cache" type="bool" default="false" />
			<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].
				If [code]no_cache[/code] is [code]true[/code], the resource cache will be bypassed, and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.
				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_interactive">
			<return type="ResourceInteractiveLoader" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="type_hint" type="String" default="&quot;&quot;" />
			<argument index="2" name="no_cache" type="bool" default="false" />
			<description>
				Starts loading a resource interactively. The returned [ResourceInteractiveLoader] object allows to load with high granularity, calling its [method ResourceInteractiveLoader.poll] method successively to load chunks.
				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].
				If [code]no_cache[/code] is [code]true[/code], the resource cache will be bypassed, and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.
			</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>
	</constants>
</class>
