seeding-planets/gui/game/inventory_gui/scripts/inventory_gui.gd

27 lines
831 B
GDScript

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.size:
for o in inventory_item_objects:
o.queue_free()
inventory_item_objects = generate_inventory_item_objects(inventory.size)
for i in range(inventory.size):
inventory_item_objects[i].update(
inventory.get_item(i),
i == inventory.current_item_ind and inventory.get_item(i) != null
)
func generate_inventory_item_objects(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)
return objects