Add CoreLoggerInstance variable to CoreBaseModule
This commit is contained in:
parent
e2da829970
commit
f97fddcb97
4 changed files with 13 additions and 7 deletions
|
@ -30,6 +30,8 @@ var core: Core
|
|||
## [br]
|
||||
## Will be set before [method Node._ready]
|
||||
@onready var logger: CoreBaseModule = core.logger
|
||||
## Reference to a matching [class CoreLoggerInstance].
|
||||
var loggeri: CoreLoggerInstance
|
||||
## Marks a module as fully initialized and ready.
|
||||
var initialized: bool = false
|
||||
|
||||
|
|
|
@ -82,6 +82,7 @@ func cleanup() -> void:
|
|||
modules_reverse.reverse()
|
||||
for module in modules_reverse:
|
||||
await get(module)._cleanup()
|
||||
get(module).loggeri.queue_free()
|
||||
get(module).queue_free()
|
||||
for module in custom_modules_node.get_children(): unregister_custom_module(module.name)
|
||||
remove_child(custom_modules_node)
|
||||
|
@ -98,6 +99,7 @@ func initialize_modules() -> void:
|
|||
get(module).name = module
|
||||
get(module).set_script(load(basepath + "src/" + module + ".gd"))
|
||||
get(module).core = self
|
||||
get(module).loggeri = logger.get_instance(basepath.replace("res://", "") + "src/" + module + ".gd")
|
||||
get(module)._initialize()
|
||||
|
||||
# Inject modules into the SceneTree
|
||||
|
@ -140,7 +142,7 @@ func complete_init(no_success: bool = false) -> void:
|
|||
|
||||
# Registers a custom module
|
||||
## Registers a new custom module.
|
||||
func register_custom_module(module_name: String, module_class: CoreBaseModule) -> bool:
|
||||
func register_custom_module(module_name: String, module_origin: String, module_class: CoreBaseModule) -> bool:
|
||||
logger.verbf("Core", "Registering new custom module \"" + module_name + "\"")
|
||||
if !config.custom_modules:
|
||||
logger.errorf("Core", "Registering module failed: Custom module support is disabled.")
|
||||
|
@ -148,9 +150,10 @@ func register_custom_module(module_name: String, module_class: CoreBaseModule) -
|
|||
if custom_modules.has(module_name):
|
||||
logger.errorf("Core", "Registering module failed: A custom module with the name \"" + module_name + "\" already exists.")
|
||||
return false
|
||||
module_class.name = module_name
|
||||
logger.diagf("Core", "Updating variables")
|
||||
module_class.name = module_name
|
||||
module_class.core = self
|
||||
module_class.loggeri = logger.get_instance(module_origin)
|
||||
logger.diagf("Core", "Adding module to SceneTree")
|
||||
custom_modules_node.add_child(module_class)
|
||||
logger.diagf("Core", "Merging module with custom_modules")
|
||||
|
@ -170,6 +173,7 @@ func unregister_custom_module(module_name: String) -> void:
|
|||
return
|
||||
var module: Node = get_custom_module(module_name)
|
||||
await module._cleanup()
|
||||
module.loggeri.queue_free()
|
||||
custom_modules_node.remove_child(module)
|
||||
custom_modules.erase(module_name)
|
||||
module.queue_free()
|
||||
|
|
|
@ -3,14 +3,14 @@ extends CoreBaseModule
|
|||
@onready var suite: BessereTestsTest = get_node_or_null("/root/suite_core")
|
||||
|
||||
func _initialize() -> void:
|
||||
logger.info("tests/custom_module.gd", "Module has been initialized")
|
||||
loggeri.info("Module has been initialized")
|
||||
suite.callback = "_initialize"
|
||||
|
||||
func _cleanup() -> void:
|
||||
logger.info("tests/custom_module.gd", "Cleaning module")
|
||||
loggeri.info("Cleaning module")
|
||||
|
||||
func _pull_config() -> void:
|
||||
logger.info("tests/custom_module.gd", "The configuration has been updated")
|
||||
loggeri.info("The configuration has been updated")
|
||||
suite.callback = "_pull_config"
|
||||
|
||||
func hello_test() -> String:
|
|
@ -21,10 +21,10 @@ func test_custom_module_support() -> void:
|
|||
|
||||
# Load module
|
||||
var module: CoreBaseModule = CoreBaseModule.new()
|
||||
module.set_script(load("res://tests/custom_module.gd"))
|
||||
module.set_script(load("res://tests/test_resources/custom_module.gd"))
|
||||
|
||||
# Register module
|
||||
core_test.register_custom_module("test_module", module)
|
||||
core_test.register_custom_module("test_module", "tests/test_resources/custom_module.gd", module)
|
||||
await wait_process_time()
|
||||
|
||||
# Check if registered
|
||||
|
|
Loading…
Reference in a new issue