Resource

package
v0.0.0-...-a2f56bd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 12, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Overview

Package Resource provides methods for working with Resource object instances.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateSceneUniqueId

func GenerateSceneUniqueId() string

Generates a unique identifier for a resource to be contained inside a [PackedScene], based on the current date, time, and a random value. The returned string is only composed of letters ([code]a[/code] to [code]y[/code]) and numbers ([code]0[/code] to [code]8[/code]). See also [member resource_scene_unique_id].

func Load

func Load[T Any](path string) T

Load behaves like the builtin "load" function in GDScript. It can also be used to preload a resource if called before startup.

Types

type Advanced

type Advanced = class

Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.

type Any

type Any interface {
	gd.IsClass
	AsResource() Instance
}

type ID

type ID = gd.RID

ID that uniquely identifies a resource.

func AllocateID

func AllocateID() ID

New allocates a unique ID which can be used by the implementation to construct an RID. This is used mainly from native extensions to implement servers.

func Int64

func Int64(id int64) ID

Int64 returns a resource ID from the given int64.

type Implementation

type Implementation = implementation

Implementation implements Interface with empty methods.

type Instance

type Instance [1]gdclass.Resource

Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from [RefCounted], resources are reference-counted and freed when no longer in use. They can also be nested within other resources, and saved on disk. [PackedScene], one of the most common [Object]s in a Godot project, is also a resource, uniquely capable of storing and instantiating the [Node]s it contains as many times as desired. In GDScript, resources can loaded from disk by their [member resource_path] using [method @GDScript.load] or [method @GDScript.preload]. The engine keeps a global cache of all loaded resources, referenced by paths (see [method ResourceLoader.has_cached]). A resource will be cached when loaded for the first time and removed from cache once all references are released. When a resource is cached, subsequent loads using its path will return the cached reference. [b]Note:[/b] 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 remain in memory for a while before being removed.

See [Interface] for methods that can be overridden by a [Class] that extends it.

%!(EXTRA string=Resource)

var Nil Instance

Nil is a nil/null instance of the class. Equivalent to the zero value.

func New

func New() Instance

func (Instance) AsObject

func (self Instance) AsObject() [1]gd.Object

func (Instance) AsRefCounted

func (self Instance) AsRefCounted() [1]gd.RefCounted

func (Instance) AsResource

func (self Instance) AsResource() Instance

func (Instance) Duplicate

func (self Instance) Duplicate() [1]gdclass.Resource

Duplicates this resource, returning a new resource with its [code]export[/code]ed or [constant PROPERTY_USAGE_STORAGE] properties copied from the original. If [param subresources] is [code]false[/code], a shallow copy is returned; nested resources within subresources are not duplicated and are shared with the original resource (with one exception; see below). If [param subresources] is [code]true[/code], a deep copy is returned; nested subresources will be duplicated and are not shared (with two exceptions; see below). [param subresources] is usually respected, with the following exceptions: - Subresource properties with the [constant PROPERTY_USAGE_ALWAYS_DUPLICATE] flag are always duplicated. - Subresource properties with the [constant PROPERTY_USAGE_NEVER_DUPLICATE] flag are never duplicated. - Subresources inside [Array] and [Dictionary] properties are never duplicated. [b]Note:[/b] For custom resources, this method will fail if [method Object._init] has been defined with required parameters.

func (Instance) EmitChanged

func (self Instance) EmitChanged()

Emits the [signal changed] signal. This method is called automatically for some built-in resources. [b]Note:[/b] For custom resources, it's recommended to call this method whenever a meaningful change occurs, such as a modified property. This ensures that custom [Object]s depending on the resource are properly updated. [codeblock] var damage:

set(new_value):
    if damage != new_value:
        damage = new_value
        emit_changed()

[/codeblock]

func (Instance) GetLocalScene

func (self Instance) GetLocalScene() [1]gdclass.Node

If [member resource_local_to_scene] is set to [code]true[/code] and the resource has been loaded from a [PackedScene] instantiation, returns the root [Node] of the scene where this resource is used. Otherwise, returns [code]null[/code].

func (Instance) GetRid

func (self Instance) GetRid() ID

Returns the [RID] of this resource (or an empty RID). Many resources (such as [Texture2D], [Mesh], and so on) are high-level abstractions of resources stored in a specialized server ([DisplayServer], [RenderingServer], etc.), so this function will return the original [RID].

func (Instance) OnChanged

func (self Instance) OnChanged(cb func())

func (Instance) OnSetupLocalToSceneRequested

func (self Instance) OnSetupLocalToSceneRequested(cb func())

func (Instance) ResourceLocalToScene

func (self Instance) ResourceLocalToScene() bool

func (Instance) ResourceName

func (self Instance) ResourceName() string

func (Instance) ResourcePath

func (self Instance) ResourcePath() string

func (Instance) ResourceSceneUniqueId

func (self Instance) ResourceSceneUniqueId() string

func (Instance) SetResourceLocalToScene

func (self Instance) SetResourceLocalToScene(value bool)

func (Instance) SetResourceName

func (self Instance) SetResourceName(value string)

func (Instance) SetResourcePath

func (self Instance) SetResourcePath(value string)

func (Instance) SetResourceSceneUniqueId

func (self Instance) SetResourceSceneUniqueId(value string)

func (Instance) SetupLocalToScene

func (self Instance) SetupLocalToScene()

Calls [method _setup_local_to_scene]. If [member resource_local_to_scene] is set to [code]true[/code], this method is automatically called from [method PackedScene.instantiate] by the newly duplicated resource within the scene instance.

func (Instance) TakeOverPath

func (self Instance) TakeOverPath(path string)

Sets the [member resource_path] to [param path], potentially overriding an existing cache entry for this path. Further attempts to load an overridden resource by path will instead return this resource.

func (*Instance) UnsafePointer

func (self *Instance) UnsafePointer() unsafe.Pointer

func (Instance) Virtual

func (self Instance) Virtual(name string) reflect.Value

type Interface

type Interface interface {
	//Override this method to customize the newly duplicated resource created from [method PackedScene.instantiate], if the original's [member resource_local_to_scene] is set to [code]true[/code].
	//[b]Example:[/b] Set a random [code]damage[/code] value to every local resource from an instantiated scene.
	//[codeblock]
	//extends Resource
	//
	//var damage = 0
	//
	//func _setup_local_to_scene():
	//    damage = randi_range(10, 40)
	//[/codeblock]
	SetupLocalToScene()
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL