28 lines
717 B
GDScript
28 lines
717 B
GDScript
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)
|