Skip to content

@tool YggdrasilPrefabsService API

Service for loading, creating, and resolving YggdrasilPrefab instances for a tree.


Signals

Name
prefab_created(prefab: YggdrasilPrefab)

Properties

Type Name Default
Dictionary[NodeType, Array] prefabs {}
Dictionary[String, YggdrasilPrefab] _ref_id_to_prefab {}

Methods

Type Name
void load_tree(tree_data: YggdrasilTree)
YggdrasilPrefab create_prefab(node: YggdrasilNodeButton, is_copy: bool = false)
void make_unique(node: YggdrasilNodeButton)
YggdrasilPrefab get_prefab_by_reference_id(reference_id: String)

Signal Descriptions

prefab_created(prefab: YggdrasilPrefab)

Emitted when a prefab is loaded or created.

Property Descriptions

Dictionary[NodeType, Array] prefabs = {}

Maps node types to prefab arrays.

Dictionary[String, YggdrasilPrefab] _ref_id_to_prefab = {}

Maps prefab reference ids to prefab instances.

Method Descriptions

void load_tree(tree_data: YggdrasilTree)

Loads prefabs from tree_data, builds lookup caches, emits prefab_created for each prefab, and reconnects existing nodes to their referenced prefabs.

YggdrasilPrefab create_prefab(node: YggdrasilNodeButton, is_copy: bool = false)

Creates a prefab from node, optionally assigns a new reference id and links the node to it when is_copy is false, stores the prefab in tree data and lookup caches, emits prefab_created, and returns it.

void make_unique(node: YggdrasilNodeButton)

Removes prefab linkage from node, clearing its reference id and prefab reference.

YggdrasilPrefab get_prefab_by_reference_id(reference_id: String)

Returns the prefab for reference_id, or null if it is not found.