2023-03-18 16:34:12 +01:00
# 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
2023-03-18 18:02:07 +01:00
const version = " git-develop "
2023-03-18 16:34:12 +01:00
var locked = false
2023-05-29 20:46:47 +02:00
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 the error thrown by Godot
2023-03-18 16:34:12 +01:00
var config = null
var wmgr = null
var smgr = null
2023-05-29 20:46:47 +02:00
var resmgr = null
2023-03-18 18:02:07 +01:00
var autoload = null
2023-05-29 20:46:47 +02:00
var events = null
2023-03-18 16:34:12 +01:00
func attach ( type : String , component : Script ) - > void :
if locked :
return
Logger . diag ( " core " , " Attaching " + type + " to CORE " )
var comp = Control . new ( )
comp . name = type
comp . set_script ( component )
match ( type ) :
" config " :
add_child ( comp )
config = comp
" wmgr " :
add_child ( comp )
wmgr = comp
" smgr " :
add_child ( comp )
smgr = comp
2023-05-29 20:46:47 +02:00
" resmgr " :
add_child ( comp )
resmgr = comp
2023-03-18 18:02:07 +01:00
" autoload " :
add_child ( comp )
autoload = comp
2023-05-29 20:46:47 +02:00
" events " :
add_child ( comp )
events = comp
2023-03-18 16:34:12 +01:00
_ :
Logger . error ( " core " , " Failed attaching " + type + " to CORE: Invalid component " )
comp . free ( )
return
Logger . diag ( " core " , " Attached " + type + " successfully " )
2023-05-29 20:46:47 +02:00
func setready ( ) - > void :
readycount = readycount + 1
if readycount == 4 :
readylized = true
2023-03-18 16:34:12 +01:00
func lock ( ) - > void :
locked = true
Logger . diag ( " core " , " CORE is now locked. No new attachments can be made. " )
2023-03-18 18:02:07 +01:00
func welcome ( ) - > void :
Logger . info ( " core " , " CORE " + version + " welcomes you!<nl>It seems like everything is working :) " )