Files
godot-docs-l10n/classes/ru/class_resourcesaver.rst

218 lines
13 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

: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 (Нет возвращаемого значения.)`