Merge pull request #62470 from vnen/gdscript-export-nodes

GDScript: Enable exporting nodes to the inspector
This commit is contained in:
Rémi Verschelde 2022-06-28 08:07:00 +02:00 committed by GitHub
commit 4c14bf7482
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 3 deletions

View File

@ -3035,13 +3035,17 @@ String EditorPropertyNodePath::_get_meta_pointer_property() const {
Variant EditorPropertyNodePath::_get_cache_value(const StringName &p_prop, bool &r_valid) const {
if (p_prop == get_edited_property()) {
r_valid = true;
return const_cast<EditorPropertyNodePath *>(this)->get_edited_object()->get(_get_meta_pointer_property(), &r_valid);
return const_cast<EditorPropertyNodePath *>(this)->get_edited_object()->get(pointer_mode ? StringName(_get_meta_pointer_property()) : get_edited_property(), &r_valid);
}
return Variant();
}
StringName EditorPropertyNodePath::_get_revert_property() const {
return _get_meta_pointer_property();
if (pointer_mode) {
return _get_meta_pointer_property();
} else {
return get_edited_property();
}
}
void EditorPropertyNodePath::_node_selected(const NodePath &p_path) {

View File

@ -3605,8 +3605,12 @@ bool GDScriptParser::export_annotations(const AnnotationNode *p_annotation, Node
variable->export_info.type = Variant::OBJECT;
variable->export_info.hint = PROPERTY_HINT_RESOURCE_TYPE;
variable->export_info.hint_string = export_type.native_type;
} else if (ClassDB::is_parent_class(export_type.native_type, SNAME("Node"))) {
variable->export_info.type = Variant::OBJECT;
variable->export_info.hint = PROPERTY_HINT_NODE_TYPE;
variable->export_info.hint_string = export_type.native_type;
} else {
push_error(R"(Export type can only be built-in, a resource, or an enum.)", variable);
push_error(R"(Export type can only be built-in, a resource, a node, or an enum.)", variable);
return false;
}
break;