@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, emitsprefab_createdfor 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 whenis_copyisfalse, stores the prefab in tree data and lookup caches, emitsprefab_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, ornullif it is not found.