ResourceSaver

Наследует: Object

Синглтон для сохранения Resource-ов в файловой системе.

Описание

Синглтон для сохранения типов ресурсов в файловой системе.

Он использует множество классов ResourceFormatSaver, зарегистрированных в движке (встроенных или из плагина), для сохранения данных ресурсов в текстовых (например, .tres или .tscn) или двоичных файлах (например, .res или .scn).

Методы

void

add_resource_format_saver(format_saver: ResourceFormatSaver, at_front: bool = false)

PackedStringArray

get_recognized_extensions(type: Resource)

int

get_resource_id_for_path(path: String, generate: bool = false)

void

remove_resource_format_saver(format_saver: ResourceFormatSaver)

Error

save(resource: Resource, path: String = "", flags: BitField[SaverFlags] = 0)

Error

set_uid(resource: String, uid: int)


Перечисления

flags SaverFlags: 🔗

SaverFlags FLAG_NONE = 0

Нет возможности экономии ресурсов.

SaverFlags FLAG_RELATIVE_PATHS = 1

Сохраните ресурс с путем относительно сцены, которая его использует.

SaverFlags FLAG_BUNDLE_RESOURCES = 2

Пакеты внешних ресурсов.

SaverFlags FLAG_CHANGE_PATH = 4

Изменяет Resource.resource_path сохраненного ресурса в соответствии с его новым местоположением.

SaverFlags FLAG_OMIT_EDITOR_PROPERTIES = 8

Не сохраняйте метаданные, специфичные для редактора (идентифицируемые префиксом __editor).

SaverFlags FLAG_SAVE_BIG_ENDIAN = 16

Сохранить как big endian (см. FileAccess.big_endian).

SaverFlags FLAG_COMPRESS = 32

Сжимать ресурс при сохранении с помощью FileAccess.COMPRESSION_ZSTD. Доступно только для двоичных типов ресурсов.

SaverFlags FLAG_REPLACE_SUBRESOURCE_PATHS = 64

Перенять пути сохраненных подресурсов (см. Resource.take_over_path()).


Описания метода

void add_resource_format_saver(format_saver: ResourceFormatSaver, at_front: bool = false) 🔗

Регистрирует новый ResourceFormatSaver. ResourceSaver будет использовать ResourceFormatSaver, как описано в save().

Этот метод выполняется неявно для ResourceFormatSavers, написанных на GDScript (см. ResourceFormatSaver для получения дополнительной информации).


PackedStringArray get_recognized_extensions(type: Resource) 🔗

Возвращает список расширений, доступных для сохранения ресурса заданного типа.


int get_resource_id_for_path(path: String, generate: bool = false) 🔗

Возвращает идентификатор ресурса для указанного пути. Если generate равен true, будет сгенерирован новый идентификатор ресурса, если он для пути не найден. Если generate равен false и путь не найден, возвращается ResourceUID.INVALID_ID.


void remove_resource_format_saver(format_saver: ResourceFormatSaver) 🔗

Отменяет регистрацию указанного ResourceFormatSaver.


Error save(resource: Resource, path: String = "", flags: BitField[SaverFlags] = 0) 🔗

Сохраняет ресурс на диске по указанному пути, используя ResourceFormatSaver, который распознает объект ресурса. Если path пуст, ResourceSaver попытается использовать Resource.resource_path.

Можно указать битовую маску flags для настройки поведения сохранения.

Возвращает @GlobalScope.OK при успешном выполнении.

Примечание: Когда проект запущен, любой сгенерированный UID, связанный с ресурсом, не будет сохранен, поскольку требуемый код выполняется только в режиме редактора.


Error set_uid(resource: String, uid: int) 🔗

Устанавливает UID указанного пути resource на uid. Вы можете сгенерировать новый UID с помощью ResourceUID.create_id().

Поскольку ресурсы обычно получают UID автоматически, этот метод полезен только в очень особых случаях.