Include global class resources in Resource property inspector

Much like how script defined global classes can be created from the
"New Resource..." button in the FileSystem panel, this allows the
creation of script defined resources to be embedded.
This commit is contained in:
Vixelz 2019-02-21 14:23:48 +00:00
parent 16934c7411
commit 03f7a724ed
1 changed files with 11 additions and 1 deletions

View File

@ -2287,6 +2287,16 @@ void EditorPropertyResource::_update_menu_items() {
E = E->next(); E = E->next();
} }
List<StringName> global_classes;
ScriptServer::get_global_class_list(&global_classes);
E = global_classes.front();
while (E) {
if (EditorNode::get_editor_data().script_class_is_parent(E->get(), base_type)) {
valid_inheritors.insert(E->get());
}
E = E->next();
}
for (Set<String>::Element *F = valid_inheritors.front(); F; F = F->next()) { for (Set<String>::Element *F = valid_inheritors.front(); F; F = F->next()) {
String t = F->get(); String t = F->get();
@ -2303,7 +2313,7 @@ void EditorPropertyResource::_update_menu_items() {
} }
} }
if (!is_custom_resource && !ClassDB::can_instance(t)) if (!is_custom_resource && !(ScriptServer::is_global_class(t) || ClassDB::can_instance(t)))
continue; continue;
inheritors_array.push_back(t); inheritors_array.push_back(t);