# coreloader.gd # CORE Loader # # This file is part of StarOpenSource CORE (SOSCORE) # Made by the StarOpenSource Project and Contributers # Licensed under GNU GPLv3 extends Node func _ready() -> void: await get_tree().create_timer(1.5).timeout Logger.diag("coreloader","Starting initialization") Logger.diag("coreloader","Loading configuration file") var scr_config = ResourceLoader.load("res://CORE/config.gd") Logger.diag("coreloader","Preloading core scripts") var scr_core = ResourceLoader.load("res://CORE/core.gd") var scr_wmgr = ResourceLoader.load("res://CORE/wmgr.gd") var scr_smgr = ResourceLoader.load("res://CORE/smgr.gd") var scr_resmgr = ResourceLoader.load("res://CORE/resmgr.gd") var scr_events = ResourceLoader.load("res://CORE/events.gd") var scr_splash = ResourceLoader.load("res://CORE/splash.tscn").instantiate() var scr_moam = ResourceLoader.load("res://CORE/moam.gd") var scr_mkdown = ResourceLoader.load("res://CORE/mkdown.gd") Logger.diag("coreloader","Constructing CORE") var core = Control.new() core.name = "core" core.script = scr_core Logger.diag("coreloader","Attaching CORE to /root/") get_tree().root.add_child(core) Logger.diag("coreloader","Attaching modules") core.attach("config",scr_config) core.attach("wmgr",scr_wmgr) core.attach("smgr",scr_smgr) core.attach("resmgr",scr_resmgr) core.attach("events",scr_events) core.attach("splash",scr_splash,false) core.attach("moam",scr_moam) core.attach("mkdown",scr_mkdown) if core.protection_mode: return Logger.diag("coreloader","Loading module configurations") core.wmgr.load_configuration() core.splash.load_configuration() core.moam.load_configuration() Logger.diag("coreloader","Initializing modules") core.wmgr.initialize() core.smgr.initialize() core.resmgr.initialize() core.events.initialize() core.splash.initialize() core.moam.initialize() core.mkdown.initialize() Logger.diag("coreloader","Locking CORE") core.lock() Logger.diag("coreloader","Waiting for CORE to fully initialize") while !core.readylized: await get_tree().create_timer(1).timeout Logger.diag("coreloader","CORE has been initialized and is ready.") Logger.diag("coreloader","Preloading project init script") var initscr = ResourceLoader.load(core.config.core_startscript) Logger.diag("coreloader","Constructing project init script") var initscr_obj = Control.new() initscr_obj.name = "ProjectInitScript" initscr_obj.set_script(initscr) Logger.diag("coreloader","Adding project init script to /root/") get_tree().root.add_child(initscr_obj) Logger.diag("coreloader","Removing coreloader") queue_free()