tools separated in inv

This commit is contained in:
Altaezio
2026-02-15 19:32:21 +01:00
parent 58cb65b35b
commit 78072c7886
13 changed files with 171 additions and 80 deletions

View File

@@ -2,30 +2,35 @@ extends HBoxContainer
class_name InventoryGui
@export var inventory_item_scene: PackedScene
@export var bar: TextureRect
var inventory_item_objects: Array[InventoryGuiItem]
func _ready():
GameInfo.game_data.player_data.inventory.updated.connect(update)
update(GameInfo.game_data.player_data.inventory)
GameInfo.game_data.player_data.inventory.updated.connect(update)
update(GameInfo.game_data.player_data.inventory)
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())
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)
for i in range(inventory.items.size()):
inventory_item_objects[i].update(inventory.get_item(i), i == inventory.current_item_ind)
move_child(bar, inventory.n_tools)
bar.visible = inventory.n_tools > 0 && inventory.items.size() > inventory.n_tools
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
var objects: Array[InventoryGuiItem] = []
for i in range(nb):
var o = inventory_item_scene.instantiate() as InventoryGuiItem
add_child(o)
move_child(o, i)
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)
inventory.set_current_item(new_ind)