ResourceFormatLoader
Hereda: RefCounted < Object
Carga un tipo de recurso específico de un archivo.
Descripción
Godot carga recursos en el editor o en los juegos exportados usando ResourceFormatLoaders. Se consultan automáticamente a través del singleton ResourceLoader, o cuando se carga un recurso con dependencias internas. Cada tipo de archivo puede cargarse como un tipo de recurso diferente, por lo que se registran varios ResourceFormatLoaders en el motor.
Extender esta clase te permite definir tu propio cargador. Asegúrate de respetar los tipos y valores de retorno documentados. Debes darle un nombre de clase global con class_name para que se registre. Al igual que los ResourceFormatLoaders incorporados, se llamará automáticamente cuando se carguen los recursos de su(s) tipo(s) manejado(s). También puedes implementar un ResourceFormatSaver.
Nota: También puedes extender EditorImportPlugin si el tipo de recurso que necesitas existe pero Godot es incapaz de cargar su formato. Elegir una forma en lugar de otra depende de si el formato es adecuado o no para el juego exportado final. Por ejemplo, es mejor importar primero las texturas .png como .ctex (CompressedTexture2D), para que se puedan cargar con mayor eficacia en la tarjeta gráfica.
Métodos
_get_classes_used(path: String) virtual const |
|
_get_dependencies(path: String, add_types: bool) virtual const |
|
_get_recognized_extensions() virtual const |
|
_get_resource_script_class(path: String) virtual const |
|
_get_resource_type(path: String) virtual const |
|
_get_resource_uid(path: String) virtual const |
|
_handles_type(type: StringName) virtual const |
|
_load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) virtual required const |
|
_recognize_path(path: String, type: StringName) virtual const |
|
_rename_dependencies(path: String, renames: Dictionary) virtual const |
Enumeraciones
enum CacheMode: 🔗
CacheMode CACHE_MODE_IGNORE = 0
Ni el recurso principal (el que se solicitó cargar) ni ninguno de sus subrecursos se recuperan de la caché ni se almacenan en ella. Las dependencias (recursos externos) se cargan con CACHE_MODE_REUSE.
CacheMode CACHE_MODE_REUSE = 1
El recurso principal (el que se solicitó cargar), sus subrecursos y sus dependencias (recursos externos) se recuperan de la caché si están presentes, en lugar de cargarse. Los que no están en caché se cargan y luego se almacenan en la caché. Las mismas reglas se propagan recursivamente por el árbol de dependencias (recursos externos).
CacheMode CACHE_MODE_REPLACE = 2
Como CACHE_MODE_REUSE, pero la caché se comprueba para el recurso principal (el que se solicitó cargar), así como para cada uno de sus subrecursos. Aquellos que ya están en la caché, siempre que los tipos cargados y cacheados coincidan, ven sus datos actualizados desde el almacenamiento en las instancias ya existentes. De lo contrario, se recrean como objetos completamente nuevos.
CacheMode CACHE_MODE_IGNORE_DEEP = 3
Como CACHE_MODE_IGNORE, pero se propaga recursivamente por el árbol de dependencias (recursos externos).
CacheMode CACHE_MODE_REPLACE_DEEP = 4
Como CACHE_MODE_REPLACE, pero se propaga recursivamente por el árbol de dependencias (recursos externos).
Descripciones de Métodos
bool _exists(path: String) virtual const 🔗
There is currently no description for this method. Please help us by contributing one!
PackedStringArray _get_classes_used(path: String) virtual const 🔗
There is currently no description for this method. Please help us by contributing one!
PackedStringArray _get_dependencies(path: String, add_types: bool) virtual const 🔗
Debería devolver las dependencias para el recurso en la path dada. Cada dependencia es una string compuesta por una a tres secciones separadas por ::, omitiendo las secciones finales vacías:
La primera sección debería contener el UID si el recurso tiene uno. De lo contrario, debería contener la ruta del archivo.
La segunda sección debería contener el nombre de clase de la dependencia si
add_typesestrue. De lo contrario, debería estar vacía.La tercera sección debería contener la ruta de respaldo si el recurso tiene un UID. De lo contrario, debería estar vacía.
func _get_dependencies(path, add_types):
return [
"uid://fqgvuwrkuixh::Script::res://script.gd",
"uid://fqgvuwrkuixh::::res://script.gd",
"res://script.gd::Script",
"res://script.gd",
]
Nota: Los tipos de recursos personalizados definidos por scripts no son conocidos por la ClassDB, por lo que se puede usar "Resource" como nombre de la clase.
PackedStringArray _get_recognized_extensions() virtual const 🔗
Obtiene la lista de extensiones de los archivos que este cargador es capaz de leer.
String _get_resource_script_class(path: String) virtual const 🔗
Devuelve el nombre de la clase de script asociada con el Resource bajo la path dada. Si el recurso no tiene script o el script no es una clase con nombre, debería devolver "".
String _get_resource_type(path: String) virtual const 🔗
Obtiene el nombre de la clase del recurso asociado con el camino dado. Si el cargador no puede manejarlo, debe devolver ".
Nota: Los tipos de recursos personalizados definidos por los scripts no son conocidos por el ClassDB, por lo que debería devolver "Resource" por ellos.
int _get_resource_uid(path: String) virtual const 🔗
Debería devolver el ID único para el recurso asociado con la ruta dada. Si este método no se sobrescribe, se genera un archivo .uid junto con el archivo de recurso, conteniendo el ID único.
bool _handles_type(type: StringName) virtual const 🔗
Dice qué clase de recursos puede cargar este cargador.
Nota: Los tipos de recursos personalizados definidos por los scripts no son conocidos por la ClassDB, por lo que sólo puedes manejar "Resource" para ellos.
Variant _load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) virtual required const 🔗
Carga un recurso cuando el motor encuentra que este cargador es compatible. Si el recurso cargado es el resultado de una importación, original_path se dirigirá al archivo fuente. Devuelve un objeto Resource en caso de éxito, o una constante Error en caso de fracaso.
La propiedad cache_mode define si y cómo la caché debería ser usada o actualizada al cargar el recurso. Véase CacheMode para más detalles.
bool _recognize_path(path: String, type: StringName) virtual const 🔗
Indica si este cargador debe o no cargar un recurso desde su ruta de recurso para un tipo dado.
Si no se implementa, el comportamiento predeterminado devuelve si la extensión de la ruta está dentro de las proporcionadas por _get_recognized_extensions(), y si el tipo está dentro de los proporcionados por _get_resource_type().
Error _rename_dependencies(path: String, renames: Dictionary) virtual const 🔗
Si se implementa, renombra las dependencias dentro del recurso dado y lo guarda. renames es un diccionario { String => String } que mapea las antiguas rutas de dependencia a las nuevas rutas.
Devuelve @GlobalScope.OK en caso de éxito, o una constante Error en caso de fracaso.