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.

(cherry picked from commit 03f7a724ed)
This commit is contained in:
Vixelz 2019-02-21 14:23:48 +00:00 committed by Rémi Verschelde
parent a5f4f15510
commit 39e76014d4
1 changed files with 11 additions and 1 deletions

View File

@ -2289,6 +2289,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();
@ -2305,7 +2315,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);