Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the ResourceLoader singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine.
Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with class_name
for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a ResourceFormatSaver.
CACHE_MODE_IGNORE = 0
There is currently no description for this enum. Please help us by contributing one!
CACHE_MODE_REUSE = 1
There is currently no description for this enum. Please help us by contributing one!
CACHE_MODE_REPLACE = 2
There is currently no description for this enum. Please help us by contributing one!
There is currently no description for this method. Please help us by contributing one!
There is currently no description for this method. Please help us by contributing one!
If implemented, gets the dependencies of a given resource. If add_types
is true
, paths should be appended ::TypeName
, where TypeName
is the class name of the dependency.
Note: Custom resource types defined by scripts aren't known by the ClassDB, so you might just return "Resource"
for them.
Gets the list of extensions for files this loader is able to read.
Returns the script class name associated with the Resource under the given path
. If the resource has no script or the script isn't a named class, it should return ""
.
Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return ""
.
Note: Custom resource types defined by scripts aren't known by the ClassDB, so you might just return "Resource"
for them.
There is currently no description for this method. Please help us by contributing one!
Tells which resource class this loader can load.
Note: Custom resource types defined by scripts aren't known by the ClassDB, so you might just handle "Resource"
for them.
Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, original_path
will target the source file. Returns a Resource object on success, or an Error constant in case of failure.
The cache_mode
property defines whether and how the cache should be used or updated when loading the resource. See CacheMode for details.
Tells whether or not this loader should load a resource from its resource path for a given type.
If it is not implemented, the default behavior returns whether the path's extension is within the ones provided by _get_recognized_extensions, and if the type is within the ones provided by _get_resource_type.
If implemented, renames dependencies within the given resource and saves it. renames
is a dictionary { String => String }
mapping old dependency paths to new paths.
Returns @GlobalScope.OK on success, or an Error constant in case of failure.