1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Make MissingNode/MissingResource non-virtual and hide from dialogs

This allows ClassDB to get the default values for inherited properties.
The `MissingNode` and `MissingResource` types are excluded from the create
dialog and the inspector's Resource selector.
This commit is contained in:
Raul Santos
2025-10-09 23:25:51 +02:00
parent 295e465fe4
commit 6faa4e369a
4 changed files with 18 additions and 4 deletions

View File

@@ -653,6 +653,18 @@ String EditorResourcePicker::_get_resource_type(const Ref<Resource> &p_resource)
return res_type;
}
static bool _should_hide_type(const StringName &p_type) {
if (ClassDB::is_virtual(p_type)) {
return true;
}
if (p_type == SNAME("MissingResource")) {
return true;
}
return false;
}
static void _add_allowed_type(const StringName &p_type, List<StringName> *p_vector) {
if (p_vector->find(p_type)) {
// Already added.
@@ -660,9 +672,9 @@ static void _add_allowed_type(const StringName &p_type, List<StringName> *p_vect
}
if (ClassDB::class_exists(p_type)) {
// Engine class,
// Engine class.
if (!ClassDB::is_virtual(p_type)) {
if (!_should_hide_type(p_type)) {
p_vector->push_back(p_type);
}