pub struct SceneNode {
pub name: SmolStr,
pub decl_type: Option<SmolStr>,
pub parent_path: Option<SmolStr>,
pub parent_idx: Option<NodeIdx>,
pub script: Option<ExtId>,
pub instance: Option<ExtId>,
pub instance_is_inherited_root: bool,
pub instance_placeholder: bool,
pub unique_name_in_owner: bool,
pub header_span: TextRange,
pub name_span: TextRange,
}Expand description
One [node …] section: its header attributes + the two body properties we read.
Fields§
§name: SmolStrThe node name (unescaped; may contain spaces).
decl_type: Option<SmolStr>type="X" — the declared class (native or a custom class_name). None ⇒ instanced.
parent_path: Option<SmolStr>The raw parent="…" path ("." = child of root; relative, root-excluded). None ⇒ root.
parent_idx: Option<NodeIdx>The resolved parent (pass 2). None ⇒ root, or an unresolved/dangling parent.
script: Option<ExtId>Body script = ExtResource("id").
instance: Option<ExtId>Header instance=ExtResource("id") (an instanced sub-scene; its type comes from that scene).
instance_is_inherited_root: boolinstance= on a parent-less node ⇒ an inherited scene (set_base_scene), not a child.
instance_placeholder: boolinstance_placeholder="res://…" (the lazy-instance variant).
unique_name_in_owner: boolBody unique_name_in_owner = true (the %Name marker — distinct from the header unique_id).
header_span: TextRangeByte span of the whole [node …] header line (coarse go-to-definition).
name_span: TextRangeByte span of the name="…" value (finer go-to-definition / highlight).