Merge pull request #108577 from YYF233333/global_class_list

Simplify `ScriptServer::get_global_class_list`
This commit is contained in:
Thaddeus Crews 2025-09-30 11:19:10 -05:00
commit fdf32d1b2a
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC
23 changed files with 155 additions and 150 deletions

View file

@ -516,29 +516,25 @@ void validate_class(const Context &p_context, const ExposedClass &p_exposed_clas
}
void add_exposed_classes(Context &r_context) {
List<StringName> class_list;
ClassDB::get_class_list(&class_list);
class_list.sort_custom<StringName::AlphCompare>();
LocalVector<StringName> class_list;
ClassDB::get_class_list(class_list);
while (class_list.size()) {
StringName class_name = class_list.front()->get();
for (uint32_t class_list_idx = 0; class_list_idx < class_list.size(); class_list_idx++) {
StringName class_name = class_list[class_list_idx];
ClassDB::APIType api_type = ClassDB::get_api_type(class_name);
if (api_type == ClassDB::API_NONE) {
class_list.pop_front();
continue;
}
if (!ClassDB::is_class_exposed(class_name)) {
INFO(vformat("Ignoring class '%s' because it's not exposed.", class_name));
class_list.pop_front();
continue;
}
if (!ClassDB::is_class_enabled(class_name)) {
INFO(vformat("Ignoring class '%s' because it's not enabled.", class_name));
class_list.pop_front();
continue;
}
@ -815,7 +811,6 @@ void add_exposed_classes(Context &r_context) {
}
r_context.exposed_classes.insert(class_name, exposed_class);
class_list.pop_front();
}
}