GBMetadataResolver
AUTO-GENERATED FILE — DO NOT EDIT MANUALLY
Source: shared/utils/metadata/gb_metadata_resolver.gd
Version: 5.1
class_name: GBMetadataResolver
extends: (none)
Summary
Utility for resolving Grid Building metadata on nodes.
Provides metadata resolution for root node targeting and display name features. This class is stateless and all methods are static for maximum reusability.
[b]Supported Metadata:[/b]
- [code]root_node[/code]: Specifies the logical root Node2D for targeting
- [code]display_name[/code]: Custom display name for UI
[b]Target Resolution Priority:[/b]
- Check collision object directly for “root_node” metadata (Node2D or NodePath)
- Search sibling nodes for Manipulatable component (uses Manipulatable.root)
- Search direct children (1 level deep) for Manipulatable component
- Search entire scene tree from root for Manipulatable component (hierarchy-independent)
- Return collision object if no metadata or Manipulatable found
[b]Performance Notes:[/b]
- Priority 1-3: O(n) where n is immediate siblings/children (fast)
- Priority 4: O(m) where m is total nodes in scene tree (expensive, avoid when possible)
- Priority 5: O(1) constant time fallback
[b]Usage Examples:[/b] [codeblock]
Method 1: Metadata-based targeting (fastest)
collision_object.set_meta(“root_node”, target_node) var resolved = GBMetadataResolver.resolve_root_node(collision_object)
Method 2: Manipulatable component (recommended for tests)
var manipulatable = Manipulatable.new() manipulatable.root = target_node collision_object.add_child(manipulatable) var resolved = GBMetadataResolver.resolve_root_node(collision_object)
Method 3: Display name resolution
node.set_meta(“display_name”, “Custom UI Name”) var name = GBMetadataResolver.resolve_display_name(node) [/codeblock]
Signals
(none)
Exports
(none)
Methods
(none)