class_name HackDisplay extends PanelContainer const hack_hud_icon = preload("res://templates/hack_icon.tscn") @onready var hack_container : HBoxContainer = %HacksContainer @onready var cycle_sound : AudioStreamPlayer = %CycleSound func clear_hacks() -> void: for child in hack_container.get_children(): child.queue_free() func _on_hack_list_changed(hacks, hack_index) -> void: clear_hacks() for hack in hacks: var ticon = hack_hud_icon.instantiate() hack_container.add_child(ticon) ticon.setup(hack.type, hack.quantity) %LeftArrow.visible = (hack_index != 0) %RightArrow.visible = (hack_index != hack_container.get_children().size() - 1) func _on_hack_quantity_changed(hack_index, qty) -> void: var hicon = hack_container.get_child(hack_index) as HackIcon hicon.set_quantity(qty) func _on_hack_cycled(hack_index) -> void: hack_container.position.x = -hack_index * 150 %LeftArrow.visible = (hack_index != 0) %RightArrow.visible = (hack_index != hack_container.get_children().size() - 1) cycle_sound.play()