@tool extends PanelContainer @onready var grid: DashboardGrid = %DashboardGrid var _modules: Array = [] func _ready() -> void: _set_background() if not Engine.is_editor_hint(): _add_modules() func _set_background() -> void: var bg: StyleBoxFlat if ConfigManager.has_method("get_color"): bg = StyleBoxFlat.new() bg.bg_color = ConfigManager.get_color("background_color", Color(0.08, 0.08, 0.12)) else: bg = StyleBoxFlat.new() bg.bg_color = Color(0.08, 0.08, 0.12) add_theme_stylebox_override("panel", bg) func _add_modules() -> void: var cpu := preload("res://panels/cpu/cpu_module.tscn").instantiate() grid.place_module(cpu, 0, 0) _modules.append(cpu) var mem := preload("res://panels/memory/memory_module.tscn").instantiate() grid.place_module(mem, 1, 0) _modules.append(mem) var test := preload("res://panels/testing/testing_module.tscn").instantiate() grid.place_module(test, 2, 0) _modules.append(test) var timer := Timer.new() timer.timeout.connect(_refresh_modules) timer.autostart = true timer.wait_time = 1.0 add_child(timer) func _refresh_modules() -> void: var data: Dictionary = {} for mod in _modules: if is_instance_valid(mod) and mod.has_method("refresh"): mod.refresh(data)