27 lines
831 B
GDScript
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
|