summaryrefslogtreecommitdiff
path: root/addons/gdUnit4/src/monitor/GdUnitOrphanNodeInfo.gd
diff options
context:
space:
mode:
authorradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
committerradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
commita89e744ed0e8c759caf041a580112365bbfe4303 (patch)
treedd61e320904176995727e86a857d00c90d4933ba /addons/gdUnit4/src/monitor/GdUnitOrphanNodeInfo.gd
parent6d53d8cac78250dc888aa49d5f9d4175c6652feb (diff)
escoria updateHEADmain
Diffstat (limited to 'addons/gdUnit4/src/monitor/GdUnitOrphanNodeInfo.gd')
-rw-r--r--addons/gdUnit4/src/monitor/GdUnitOrphanNodeInfo.gd70
1 files changed, 70 insertions, 0 deletions
diff --git a/addons/gdUnit4/src/monitor/GdUnitOrphanNodeInfo.gd b/addons/gdUnit4/src/monitor/GdUnitOrphanNodeInfo.gd
new file mode 100644
index 0000000..c195760
--- /dev/null
+++ b/addons/gdUnit4/src/monitor/GdUnitOrphanNodeInfo.gd
@@ -0,0 +1,70 @@
+class_name GdUnitOrphanNodeInfo
+extends RefCounted
+
+enum GdUnitOrphanType {
+ member,
+ variable,
+ unknown
+}
+
+
+var _id: int
+var _orphan_type: GdUnitOrphanType
+var _type: String
+var _name: String
+var _script_ref: String
+var _func_ref: String
+var _next: GdUnitOrphanNodeInfo
+
+const text_color := Color.ANTIQUE_WHITE
+const function_color := Color.SKY_BLUE
+const member_variable_color := Color.SALMON
+const engine_type_color := Color.LIGHT_GREEN
+const script_path_color := Color.CORNFLOWER_BLUE
+
+
+func _init(orphan_type: GdUnitOrphanType, id: int, type: String, name: String, script_ref: String, func_ref: String = "") -> void:
+ _orphan_type = orphan_type
+ _id = id
+ _type = type
+ _name = name
+ _script_ref = script_ref
+ _func_ref = func_ref
+
+
+func as_trace(info: GdUnitOrphanNodeInfo, show_orphan_id := true) -> String:
+ var trace := ""
+ if show_orphan_id:
+ trace += "• <%s> Id:%s\n" % [
+ _colored(info._type, engine_type_color),
+ _colored(info._id, engine_type_color)]
+ match info._orphan_type:
+ GdUnitOrphanType.member:
+ return trace + " at %s script: %s" % [
+ _colored(info._name, member_variable_color),
+ _colored(info._script_ref, script_path_color)
+ ] + sub_info(info._next)
+ GdUnitOrphanType.variable:
+ return trace + " at %s script: %s.%s()" % [
+ _colored(info._name, member_variable_color),
+ _colored(info._script_ref, script_path_color),
+ _colored(info._func_ref, function_color),
+ ]
+ GdUnitOrphanType.unknown:
+ return trace + " %s" % [
+ _colored(info._name, member_variable_color)
+ ]
+
+ _:
+ return trace + " No details available"
+
+
+func sub_info(next: GdUnitOrphanNodeInfo) -> String:
+ if next == null:
+ return ""
+
+ return "\n" + as_trace(next, false)
+
+
+static func _colored(value: Variant, color: Color) -> String:
+ return "[color=%s]%s[/color]" % [color.to_html(), value]