2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 10:08:05 +02:00
<class name= "ResourceSaver" inherits= "Object" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 22:42:36 +02:00
<brief_description >
2023-04-28 01:35:33 +02:00
A singleton for saving [Resource]s to the filesystem.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2023-04-28 01:35:33 +02:00
A singleton for saving resource types to the filesystem.
It uses the many [ResourceFormatSaver] classes registered in the engine (either built-in or from a plugin) to save resource data to text-based (e.g. [code].tres[/code] or [code].tscn[/code]) or binary files (e.g. [code].res[/code] or [code].scn[/code]).
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
</tutorials>
<methods >
2022-05-15 15:42:27 +02:00
<method name= "add_resource_format_saver" >
<return type= "void" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "format_saver" type= "ResourceFormatSaver" />
<param index= "1" name= "at_front" type= "bool" default= "false" />
2022-05-15 15:42:27 +02:00
<description >
Registers a new [ResourceFormatSaver]. The ResourceSaver will use the ResourceFormatSaver as described in [method save].
2022-07-21 13:37:00 +02:00
This method is performed implicitly for ResourceFormatSavers written in GDScript (see [ResourceFormatSaver] for more information).
2022-05-15 15:42:27 +02:00
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "get_recognized_extensions" >
2021-07-30 15:28:05 +02:00
<return type= "PackedStringArray" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "type" type= "Resource" />
2017-09-12 22:42:36 +02:00
<description >
2018-09-01 20:07:51 +02:00
Returns the list of extensions available for saving a resource of a given type.
2017-09-12 22:42:36 +02:00
</description>
</method>
2024-04-19 19:26:21 +02:00
<method name= "get_resource_id_for_path" >
<return type= "int" />
<param index= "0" name= "path" type= "String" />
<param index= "1" name= "generate" type= "bool" default= "false" />
<description >
Returns the resource ID for the given path. If [param generate] is [code]true[/code], a new resource ID will be generated if one for the path is not found. If [param generate] is [code]false[/code] and the path is not found, [constant ResourceUID.INVALID_ID] is returned.
</description>
</method>
2022-05-15 15:42:27 +02:00
<method name= "remove_resource_format_saver" >
<return type= "void" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "format_saver" type= "ResourceFormatSaver" />
2022-05-15 15:42:27 +02:00
<description >
Unregisters the given [ResourceFormatSaver].
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "save" >
2021-07-30 15:28:05 +02:00
<return type= "int" enum= "Error" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "resource" type= "Resource" />
<param index= "1" name= "path" type= "String" default= """" />
2023-06-15 16:06:22 +02:00
<param index= "2" name= "flags" type= "int" enum= "ResourceSaver.SaverFlags" is_bitfield= "true" default= "0" />
2017-09-12 22:42:36 +02:00
<description >
2022-08-10 04:00:19 +02:00
Saves a resource to disk to the given path, using a [ResourceFormatSaver] that recognizes the resource object. If [param path] is empty, [ResourceSaver] will try to use [member Resource.resource_path].
The [param flags] bitmask can be specified to customize the save behavior using [enum SaverFlags] flags.
2019-06-27 13:24:03 +02:00
Returns [constant OK] on success.
2023-10-15 14:59:01 +02:00
[b]Note:[/b] When the project is running, any generated UID associated with the resource will not be saved as the required code is only executed in editor mode.
2017-09-12 22:42:36 +02:00
</description>
</method>
</methods>
<constants >
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_NONE" value= "0" enum= "SaverFlags" is_bitfield= "true" >
2022-02-10 20:11:40 +01:00
No resource saving option.
</constant>
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_RELATIVE_PATHS" value= "1" enum= "SaverFlags" is_bitfield= "true" >
2019-06-18 18:04:29 +02:00
Save the resource with a path relative to the scene which uses it.
2017-09-12 22:42:36 +02:00
</constant>
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_BUNDLE_RESOURCES" value= "2" enum= "SaverFlags" is_bitfield= "true" >
2019-06-18 18:04:29 +02:00
Bundles external resources.
2017-09-12 22:42:36 +02:00
</constant>
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_CHANGE_PATH" value= "4" enum= "SaverFlags" is_bitfield= "true" >
2019-06-22 01:04:47 +02:00
Changes the [member Resource.resource_path] of the saved resource to match its new location.
2017-09-12 22:42:36 +02:00
</constant>
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_OMIT_EDITOR_PROPERTIES" value= "8" enum= "SaverFlags" is_bitfield= "true" >
2019-06-18 18:04:29 +02:00
Do not save editor-specific metadata (identified by their [code]__editor[/code] prefix).
2017-09-12 22:42:36 +02:00
</constant>
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_SAVE_BIG_ENDIAN" value= "16" enum= "SaverFlags" is_bitfield= "true" >
2022-09-05 13:01:31 +02:00
Save as big endian (see [member FileAccess.big_endian]).
2017-09-12 22:42:36 +02:00
</constant>
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_COMPRESS" value= "32" enum= "SaverFlags" is_bitfield= "true" >
2022-09-05 13:01:31 +02:00
Compress the resource on save using [constant FileAccess.COMPRESSION_ZSTD]. Only available for binary resource types.
2017-09-12 22:42:36 +02:00
</constant>
2022-06-24 11:16:37 +02:00
<constant name= "FLAG_REPLACE_SUBRESOURCE_PATHS" value= "64" enum= "SaverFlags" is_bitfield= "true" >
2019-06-18 18:04:29 +02:00
Take over the paths of the saved subresources (see [method Resource.take_over_path]).
2018-10-25 15:14:36 +02:00
</constant>
2017-09-12 22:42:36 +02:00
</constants>
</class>