Struct ExDuplicateResource
pub struct ExDuplicateResource<'a, T>{ /* private fields */ }Expand description
Builder for duplicating a resource with deep duplication control.
Created by Gd::duplicate_resource_ex(). See that method for details and version-specific behavior.
Configuration methods:
deep_internal(): Duplicates internal subresources (all Godot versions).deep(subresources): Fine-grained control viaDeepDuplicateMode(Godot 4.5+).
Terminal methods:
done(): Finalize duplication (panics on failure).done_or_null(): Finalize duplication (returnsResult).
Implementations§
§impl<'a, T> ExDuplicateResource<'a, T>
impl<'a, T> ExDuplicateResource<'a, T>
pub fn deep_internal(self) -> ExDuplicateResource<'a, T>
pub fn deep_internal(self) -> ExDuplicateResource<'a, T>
Deep duplication of internal subresources (Godot 4.3+).
Duplicates subresources that have no external path (embedded/internal resources).
§Compatibility
In Godot 4.2-4.4, subresources inside Array/Dictionary properties are not duplicated (known Godot bug).
This was fixed in Godot 4.5, from which version onward this is equivalent to deep(DeepDuplicateMode::INTERNAL).
pub fn deep(self, subresources: DeepDuplicateMode) -> ExDuplicateResource<'a, T>
Available on since_api=4.5 only.
pub fn deep(self, subresources: DeepDuplicateMode) -> ExDuplicateResource<'a, T>
since_api=4.5 only.Deep duplication with control over subresources (Godot 4.5+).
The subresources parameter controls which Resource objects are duplicated:
NONE: No subresources duplicated (butArray/Dictionarycontainers are deep-copied).INTERNAL: Duplicates internal subresources only (no external path). Same asdeep_internal().ALL: Duplicates all subresources.
Note: Unlike done() without deep(), this method always deep-copies Array/Dictionary containers.
The subresources mode only controls whether Resource objects inside them are duplicated or shared.
§Compatibility
Requires Godot 4.5, as it uses Godot’s new Resource::duplicate_deep() API.
pub fn done(self) -> Gd<T>
pub fn done(self) -> Gd<T>
Complete the duplication and return the duplicated resource.
§Panics
On errors, see Gd::duplicate_resource_ex(). To check for results, use done_or_null().
pub fn done_or_null(self) -> Option<Gd<T>>
pub fn done_or_null(self) -> Option<Gd<T>>
Complete the duplication and return the duplicated resource, or None if it fails.
See Gd::duplicate_resource_ex() for details.