ResourceFormatLoader

Inherits: Reference < Object

Inherited By: GDNativeLibraryResourceLoader, ResourceFormatDDS, ResourceFormatImporter, ResourceFormatLoaderBMFont, ResourceFormatLoaderBinary, ResourceFormatLoaderDynamicFont, ResourceFormatLoaderGDScript, ResourceFormatLoaderImage, ResourceFormatLoaderNativeScript, ResourceFormatLoaderShader, ResourceFormatLoaderStreamTexture, ResourceFormatLoaderText, ResourceFormatLoaderTextureLayered, ResourceFormatLoaderTheora, ResourceFormatLoaderVideoStreamGDNative, ResourceFormatLoaderWebm, ResourceFormatPKM, ResourceFormatPVR, TranslationLoaderPO

Category: Core

Brief Description

Loads a specific resource type from a file.

Methods

void get_dependencies ( String path, String add_types ) virtual
PoolStringArray get_recognized_extensions ( ) virtual
String get_resource_type ( String path ) virtual
bool handles_type ( String typename ) virtual
Variant load ( String path, String original_path ) virtual
int rename_dependencies ( String path, String renames ) virtual

Description

Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They get queried when you call load, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoader are registered in the engine.

Extending this class allows you to define your own. You should give it a global class name with class_name for it to be registered. You may as well implement a ResourceFormatSaver.

Note: You can also extend EditorImportPlugin if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends if the format is suitable or not for the final exported game. Example: it’s better to import .PNG textures as .STEX first, so they can be loaded with better efficiency on the graphics card.

Method Descriptions

  • void get_dependencies ( String path, String add_types ) virtual

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 that 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.

Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return "". Note that custom resource types defined by scripts aren’t known by the ClassDB, so you might just return "Resource" for them.

Tells which resource class this loader can load. Note that 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 if succeeded, or an ERR_* constant listed in @GlobalScope if it failed.

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 OK on success, or an ERR_* constant listed in @GlobalScope in case of failure.