71 lines
1.8 KiB
GDScript
71 lines
1.8 KiB
GDScript
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]
|