extends MarginContainer const ROW_SCENE : PackedScene = preload("res://game/ui/hints/hint_row.tscn") @onready var rows : HBoxContainer = $HBoxContainer var _refresh_queued : bool = false func _ready() -> void: Hints.changed.connect(_queue_refresh) refresh() func _queue_refresh() -> void: #plusieurs changements dans la meme frame (transition d'etat + monture...) : une seule reconstruction if _refresh_queued: return _refresh_queued = true refresh.call_deferred() func refresh() -> void: _refresh_queued = false for c in rows.get_children(): rows.remove_child(c) c.queue_free() for hint in Hints.get_visible(): var row : HintRow = ROW_SCENE.instantiate() rows.add_child(row) row.setup(hint)