mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2025-12-31 09:49:22 +03:00
218 lines
13 KiB
ReStructuredText
218 lines
13 KiB
ReStructuredText
:github_url: hide
|
||
|
||
.. _class_ResourceSaver:
|
||
|
||
ResourceSaver
|
||
=============
|
||
|
||
**Наследует:** :ref:`Object<class_Object>`
|
||
|
||
Синглтон для сохранения :ref:`Resource<class_Resource>`-ов в файловой системе.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Описание
|
||
----------------
|
||
|
||
Синглтон для сохранения типов ресурсов в файловой системе.
|
||
|
||
Он использует множество классов :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`, зарегистрированных в движке (встроенных или из плагина), для сохранения данных ресурсов в текстовых (например, ``.tres`` или ``.tscn``) или двоичных файлах (например, ``.res`` или ``.scn``).
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Методы
|
||
------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`add_resource_format_saver<class_ResourceSaver_method_add_resource_format_saver>`\ (\ format_saver\: :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`, at_front\: :ref:`bool<class_bool>` = false\ ) |
|
||
+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_recognized_extensions<class_ResourceSaver_method_get_recognized_extensions>`\ (\ type\: :ref:`Resource<class_Resource>`\ ) |
|
||
+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`get_resource_id_for_path<class_ResourceSaver_method_get_resource_id_for_path>`\ (\ path\: :ref:`String<class_String>`, generate\: :ref:`bool<class_bool>` = false\ ) |
|
||
+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`remove_resource_format_saver<class_ResourceSaver_method_remove_resource_format_saver>`\ (\ format_saver\: :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`\ ) |
|
||
+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_ResourceSaver_method_save>`\ (\ resource\: :ref:`Resource<class_Resource>`, path\: :ref:`String<class_String>` = "", flags\: |bitfield|\[:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>`\] = 0\ ) |
|
||
+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`set_uid<class_ResourceSaver_method_set_uid>`\ (\ resource\: :ref:`String<class_String>`, uid\: :ref:`int<class_int>`\ ) |
|
||
+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Перечисления
|
||
------------------------
|
||
|
||
.. _enum_ResourceSaver_SaverFlags:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
flags **SaverFlags**: :ref:`🔗<enum_ResourceSaver_SaverFlags>`
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_NONE:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_NONE** = ``0``
|
||
|
||
Нет возможности экономии ресурсов.
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_RELATIVE_PATHS:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_RELATIVE_PATHS** = ``1``
|
||
|
||
Сохраните ресурс с путем относительно сцены, которая его использует.
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_BUNDLE_RESOURCES:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_BUNDLE_RESOURCES** = ``2``
|
||
|
||
Пакеты внешних ресурсов.
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_CHANGE_PATH:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_CHANGE_PATH** = ``4``
|
||
|
||
Изменяет :ref:`Resource.resource_path<class_Resource_property_resource_path>` сохраненного ресурса в соответствии с его новым местоположением.
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_OMIT_EDITOR_PROPERTIES:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_OMIT_EDITOR_PROPERTIES** = ``8``
|
||
|
||
Не сохраняйте метаданные, специфичные для редактора (идентифицируемые префиксом ``__editor``).
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_SAVE_BIG_ENDIAN:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_SAVE_BIG_ENDIAN** = ``16``
|
||
|
||
Сохранить как big endian (см. :ref:`FileAccess.big_endian<class_FileAccess_property_big_endian>`).
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_COMPRESS:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_COMPRESS** = ``32``
|
||
|
||
Сжимать ресурс при сохранении с помощью :ref:`FileAccess.COMPRESSION_ZSTD<class_FileAccess_constant_COMPRESSION_ZSTD>`. Доступно только для двоичных типов ресурсов.
|
||
|
||
.. _class_ResourceSaver_constant_FLAG_REPLACE_SUBRESOURCE_PATHS:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>` **FLAG_REPLACE_SUBRESOURCE_PATHS** = ``64``
|
||
|
||
Перенять пути сохраненных подресурсов (см. :ref:`Resource.take_over_path()<class_Resource_method_take_over_path>`).
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описания метода
|
||
------------------------------
|
||
|
||
.. _class_ResourceSaver_method_add_resource_format_saver:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **add_resource_format_saver**\ (\ format_saver\: :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`, at_front\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_ResourceSaver_method_add_resource_format_saver>`
|
||
|
||
Регистрирует новый :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`. ResourceSaver будет использовать ResourceFormatSaver, как описано в :ref:`save()<class_ResourceSaver_method_save>`.
|
||
|
||
Этот метод выполняется неявно для ResourceFormatSavers, написанных на GDScript (см. :ref:`ResourceFormatSaver<class_ResourceFormatSaver>` для получения дополнительной информации).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_ResourceSaver_method_get_recognized_extensions:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedStringArray<class_PackedStringArray>` **get_recognized_extensions**\ (\ type\: :ref:`Resource<class_Resource>`\ ) :ref:`🔗<class_ResourceSaver_method_get_recognized_extensions>`
|
||
|
||
Возвращает список расширений, доступных для сохранения ресурса заданного типа.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_ResourceSaver_method_get_resource_id_for_path:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **get_resource_id_for_path**\ (\ path\: :ref:`String<class_String>`, generate\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_ResourceSaver_method_get_resource_id_for_path>`
|
||
|
||
Возвращает идентификатор ресурса для указанного пути. Если ``generate`` равен ``true``, будет сгенерирован новый идентификатор ресурса, если он для пути не найден. Если ``generate`` равен ``false`` и путь не найден, возвращается :ref:`ResourceUID.INVALID_ID<class_ResourceUID_constant_INVALID_ID>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_ResourceSaver_method_remove_resource_format_saver:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **remove_resource_format_saver**\ (\ format_saver\: :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`\ ) :ref:`🔗<class_ResourceSaver_method_remove_resource_format_saver>`
|
||
|
||
Отменяет регистрацию указанного :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_ResourceSaver_method_save:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Error<enum_@GlobalScope_Error>` **save**\ (\ resource\: :ref:`Resource<class_Resource>`, path\: :ref:`String<class_String>` = "", flags\: |bitfield|\[:ref:`SaverFlags<enum_ResourceSaver_SaverFlags>`\] = 0\ ) :ref:`🔗<class_ResourceSaver_method_save>`
|
||
|
||
Сохраняет ресурс на диске по указанному пути, используя :ref:`ResourceFormatSaver<class_ResourceFormatSaver>`, который распознает объект ресурса. Если ``path`` пуст, **ResourceSaver** попытается использовать :ref:`Resource.resource_path<class_Resource_property_resource_path>`.
|
||
|
||
Можно указать битовую маску ``flags`` для настройки поведения сохранения.
|
||
|
||
Возвращает :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` при успешном выполнении.
|
||
|
||
\ **Примечание:** Когда проект запущен, любой сгенерированный UID, связанный с ресурсом, не будет сохранен, поскольку требуемый код выполняется только в режиме редактора.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_ResourceSaver_method_set_uid:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Error<enum_@GlobalScope_Error>` **set_uid**\ (\ resource\: :ref:`String<class_String>`, uid\: :ref:`int<class_int>`\ ) :ref:`🔗<class_ResourceSaver_method_set_uid>`
|
||
|
||
Устанавливает UID указанного пути ``resource`` на ``uid``. Вы можете сгенерировать новый UID с помощью :ref:`ResourceUID.create_id()<class_ResourceUID_method_create_id>`.
|
||
|
||
Поскольку ресурсы обычно получают UID автоматически, этот метод полезен только в очень особых случаях.
|
||
|
||
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
|
||
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
|
||
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
|
||
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
|
||
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
|
||
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
|
||
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
|
||
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
|
||
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`
|