extends HBoxContainer class_name InventoryGui @export var inventory_item_scene: PackedScene var inventory_item_objects: Array[InventoryGuiItem] func update(inventory: Inventory): if len(inventory_item_objects) == 0 or len(inventory_item_objects) != inventory.items.size(): for o in inventory_item_objects: o.queue_free() inventory_item_objects = generate_inventory_item_objects(inventory, inventory.items.size()) for i in range(inventory.items.size()): inventory_item_objects[i].update(inventory.get_item(i), i == inventory.current_item_ind) func generate_inventory_item_objects(inventory: Inventory, nb: int = 1) -> Array[InventoryGuiItem]: var objects: Array[InventoryGuiItem] = [] for i in range(nb): var o = inventory_item_scene.instantiate() as InventoryGuiItem add_child(o) objects.append(o) o.item_clicked.connect(func(): change_current_item_ind(inventory, i)) return objects func change_current_item_ind(inventory: Inventory, new_ind: int): inventory.set_current_item(new_ind)