add plugin system with plugin/layout managers

- plugin_manager: scans res://plugins/*/plugin.cfg, loads tile definitions
- plugin_tile: new base class for plugin tiles, extends ModuleBase
- layout_manager: save/restore tile grid positions per named layout
- migrate existing cpu/memory/testing tiles into system_monitor plugin
- add module_resized signal to DashboardGrid for auto-save
- dashboard reads from PluginManager + LayoutManager instead of hardcoded paths
- project.godot registers PluginManager and LayoutManager autoloads
- AGENTS.md updated with new structure and conventions
This commit is contained in:
Eric Smith 2026-05-21 08:39:15 -04:00
parent 63af41ea61
commit f43676e46c
19 changed files with 528 additions and 39 deletions

View file

@ -1,41 +0,0 @@
[gd_scene format=3 uid="uid://bq3bs2hb4r7fb"]
[ext_resource type="Script" path="res://panels/cpu/cpu_module.gd" id="1"]
[ext_resource type="Shader" path="res://shaders/vial_fill.gdshader" id="2"]
[node name="CpuModule" type="PanelContainer"]
anchors_preset = 0
script = ExtResource("1")
[node name="VialFill" type="ColorRect" parent="."]
unique_name_in_owner = true
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
mouse_filter = 2
[node name="MarginContainer" type="MarginContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
theme_constant_overrides/margin_left = 12
theme_constant_overrides/margin_top = 12
theme_constant_overrides/margin_right = 12
theme_constant_overrides/margin_bottom = 12
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
[node name="Title" type="Label" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
text = "CPU"
[node name="Spacer" type="Control" parent="MarginContainer/VBoxContainer"]
size_flags_vertical = 3
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
horizontal_alignment = 1
size_flags_horizontal = 4