class_name TrapDisplay extends PanelContainer const trap_hud_icon = preload("res://templates/trap_icon.tscn") @onready var trap_container : HBoxContainer = %TrapsContainer @onready var cycle_sound : AudioStreamPlayer = %CycleSound func clear_traps() -> void: for child in trap_container.get_children(): child.queue_free() func _on_trap_list_changed(traps, trap_index) -> void: clear_traps() for trap in traps: var ticon = trap_hud_icon.instantiate() trap_container.add_child(ticon) ticon.setup(trap.type, trap.quantity) %LeftArrow.visible = (trap_index != 0) %RightArrow.visible = (trap_index != trap_container.get_children().size() - 1) func _on_trap_quantity_changed(trap_index, qty) -> void: var ticon = trap_container.get_child(trap_index) as TrapIcon ticon.set_quantity(qty) func _on_trap_cycled(trap_index) -> void: trap_container.position.x = -trap_index * 150 %LeftArrow.visible = (trap_index != 0) %RightArrow.visible = (trap_index != trap_container.get_children().size() - 1) cycle_sound.play()