MCPcopy Create free account
hub / github.com/Redot-Engine/redot-engine / init_languages

Method init_languages

core/object/script_language.cpp:281–327  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

279}
280
281void ScriptServer::init_languages() {
282 { // Load global classes.
283 global_classes_clear();
284#ifndef DISABLE_DEPRECATED
285 if (ProjectSettings::get_singleton()->has_setting("_global_script_classes")) {
286 Array script_classes = GLOBAL_GET("_global_script_classes");
287
288 for (const Variant &script_class : script_classes) {
289 Dictionary c = script_class;
290 if (!c.has("class") || !c.has("language") || !c.has("path") || !c.has("base") || !c.has("is_abstract") || !c.has("is_tool")) {
291 continue;
292 }
293 add_global_class(c["class"], c["base"], c["language"], c["path"], c["is_abstract"], c["is_tool"]);
294 }
295 ProjectSettings::get_singleton()->clear("_global_script_classes");
296 }
297#endif
298
299 Array script_classes = ProjectSettings::get_singleton()->get_global_class_list();
300 for (const Variant &script_class : script_classes) {
301 Dictionary c = script_class;
302 if (!c.has("class") || !c.has("language") || !c.has("path") || !c.has("base") || !c.has("is_abstract") || !c.has("is_tool")) {
303 continue;
304 }
305 add_global_class(c["class"], c["base"], c["language"], c["path"], c["is_abstract"], c["is_tool"]);
306 }
307 }
308
309 HashSet<ScriptLanguage *> langs_to_init;
310 {
311 MutexLock lock(languages_mutex);
312 for (int i = 0; i < _language_count; i++) {
313 if (_languages[i]) {
314 langs_to_init.insert(_languages[i]);
315 }
316 }
317 }
318
319 for (ScriptLanguage *E : langs_to_init) {
320 E->init();
321 }
322
323 {
324 MutexLock lock(languages_mutex);
325 languages_ready = true;
326 }
327}
328
329void ScriptServer::finish_languages() {
330 HashSet<ScriptLanguage *> langs_to_finish;

Callers

nothing calls this directly

Calls 6

has_settingMethod · 0.45
hasMethod · 0.45
clearMethod · 0.45
get_global_class_listMethod · 0.45
insertMethod · 0.45
initMethod · 0.45

Tested by

no test coverage detected