CORE/core.gd
JeremyStarTM b57d00e9cd Many improvements (see commit description)
Added more things to roadmap, removed autoload singleton check, added support for Godot 4.1, all startup messages now use Logger.diag() instead of Logger.info() (making them disappear but can be shown if needed), removed autoload.gd, fixes syntax.
2023-07-07 10:58:49 +02:00

53 lines
1.4 KiB
GDScript

# core.gd
# CORE Holder
#
# This file is part of StarOpenSource CORE (SOSCORE)
# Made by the StarOpenSource Project and Contributers
# Licensed under GNU GPLv3
extends Node
const version = "git-develop"
var locked = false
var readycount = 0
var readylized = false # Fun Fact: "ready" is a signal from "Node" and I (JeremyStarTM) just added "lized" from "initialized" to it to avoid a error thrown by Godot
var config = null
var wmgr = null
var smgr = null
var resmgr = null
var events = null
var splash = null
func attach(type:String,component,do_setup:bool = true) -> void:
if locked:
return
Logger.diag("core","Attaching " + type + " to CORE")
var comp = component
if do_setup:
comp = Control.new()
comp.name = type
comp.set_script(component)
match(type):
"config": config = comp
"wmgr": wmgr = comp
"smgr": smgr = comp
"resmgr": resmgr = comp
"events": events = comp
"splash": splash = comp
_:
Logger.error("core","Failed attaching " + type + " to CORE: Invalid component")
comp.free()
return
add_child(comp)
Logger.diag("core","Attached " + type + " successfully")
func setready() -> void:
readycount = readycount+1
if readycount == 6:
readylized = true
func lock() -> void:
locked = true
Logger.diag("core","CORE is now locked. No new attachments can be added.")
func welcome() -> void:
Logger.info("core","CORE " + version + " welcomes you!<nl>It seems like everything is working :)")