Resource

Base class for all resources.

Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from Reference, resources are reference-counted and freed when no longer in use. They are also cached once loaded from disk, so that any further attempts to load a resource from a given path will return the same reference (all this in contrast to a Node, which is not reference-counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a Node or another resource. Note: In C#, resources will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free resources that are no longer in use. This means that unused resources will linger on for a while before being removed.

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Functions

_setupLocalToScene
void _setupLocalToScene()

Virtual function which can be overridden to customize the behavior value of setupLocalToScene.

duplicate
Ref!Resource duplicate(bool subresources)

Duplicates the resource, returning a new resource. By default, sub-resources are shared between resource copies for efficiency. This can be changed by passing true to the subresources argument which will copy the subresources. Note: If subresources is true, this method will only perform a shallow copy. Nested resources within subresources will not be duplicated and will still be shared. Note: When duplicating a resource, only exported properties are copied. Other properties will be set to their default value in the new resource.

emitChanged
void emitChanged()

Emits the changed signal. If external objects which depend on this resource should be updated, this method must be called manually whenever the state of this resource has changed (such as modification of properties). The method is equivalent to:

getLocalScene
Node getLocalScene()

If resourceLocalToScene is enabled and the resource was loaded from a PackedScene instantiation, returns the local scene where this resource's unique copy is in use. Otherwise, returns null.

getName
String getName()
getPath
String getPath()
getRid
RID getRid()

Returns the RID of the resource (or an empty RID). Many resources (such as Texture, Mesh, etc) are high-level abstractions of resources stored in a server, so this function will return the original RID.

isLocalToScene
bool isLocalToScene()
opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(Resource other)
opEquals
bool opEquals(typeof(null) n)
setLocalToScene
void setLocalToScene(bool enable)
setName
void setName(String name)
setPath
void setPath(String path)
setupLocalToScene
void setupLocalToScene()

This method is called when a resource with resourceLocalToScene enabled is loaded from a PackedScene instantiation. Its behavior can be customized by overriding _setupLocalToScene from script. For most resources, this method performs no base logic. ViewportTexture performs custom logic to properly set the proxy texture and flags in the local viewport.

takeOverPath
void takeOverPath(String path)

Sets the path of the resource, potentially overriding an existing cache entry for this path. This differs from setting resourcePath, as the latter would error out if another resource was already cached for the given path.

toHash
size_t toHash()

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Properties

resourceLocalToScene
bool resourceLocalToScene [@property getter]
bool resourceLocalToScene [@property setter]

If true, the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.

resourceName
String resourceName [@property getter]
String resourceName [@property setter]

The name of the resource. This is an optional identifier. If resourceName is not empty, its value will be displayed to represent the current resource in the editor inspector. For built-in scripts, the resourceName will be displayed as the tab name in the script editor.

resourcePath
String resourcePath [@property getter]
String resourcePath [@property setter]

The path to the resource. In case it has its own file, it will return its filepath. If it's tied to the scene, it will return the scene's path, followed by the resource's index.

Static functions

_new
Resource _new()

Construct a new instance of Resource. Note: use memnew!Resource instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Meta