godot-plateformer/_tools/limbo_state_helper.gd

27 lines
721 B
GDScript3
Raw Normal View History

2025-12-29 11:54:31 +08:00
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)