From f97fddcb97c533291399403ba619da6b719899dd Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Sun, 31 Mar 2024 11:22:57 +0200 Subject: [PATCH] Add CoreLoggerInstance variable to CoreBaseModule --- src/classes/basemodule.gd | 2 ++ src/core.gd | 8 ++++++-- tests/{ => test_resources}/custom_module.gd | 6 +++--- tests/unit/core.gd | 4 ++-- 4 files changed, 13 insertions(+), 7 deletions(-) rename tests/{ => test_resources}/custom_module.gd (59%) diff --git a/src/classes/basemodule.gd b/src/classes/basemodule.gd index fa0cd5b..7994ae2 100644 --- a/src/classes/basemodule.gd +++ b/src/classes/basemodule.gd @@ -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 diff --git a/src/core.gd b/src/core.gd index 100c926..05f98b0 100644 --- a/src/core.gd +++ b/src/core.gd @@ -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() diff --git a/tests/custom_module.gd b/tests/test_resources/custom_module.gd similarity index 59% rename from tests/custom_module.gd rename to tests/test_resources/custom_module.gd index dd77bb0..c212552 100644 --- a/tests/custom_module.gd +++ b/tests/test_resources/custom_module.gd @@ -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: diff --git a/tests/unit/core.gd b/tests/unit/core.gd index 20d5631..cde9193 100644 --- a/tests/unit/core.gd +++ b/tests/unit/core.gd @@ -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