extends Node2D

@export var state_root : LimboHSM
@export var draw_offset : Vector2
@export var font : Font = ThemeDB.fallback_font

func _draw() -> void:
	if state_root:
		draw_string(font,draw_offset,_get_deepest_substate(state_root).name)

func _process(delta: float) -> void:
	queue_redraw()

func _get_deepest_substate(state : LimboState) -> LimboState:
	var active_substate : LimboState = null

	# 如果这个状态有 get_active_state() 方法，就调用
	if state.has_method("get_active_state"):
		active_substate = state.get_active_state()

	# 如果没有子状态，返回自己
	if active_substate == null:
		return state

	# 如果有子状态，继续递归
	return _get_deepest_substate(active_substate)
