tools separated in inv
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user