From c833c0947ef67bdba48c8719f17391e7f8f94134 Mon Sep 17 00:00:00 2001 From: Ryan Reed Date: Sun, 6 Apr 2025 15:00:51 -0400 Subject: [PATCH] feat: Clear inventory when loading inventory resource --- autoloads/inventory_manager.gd | 7 +++++++ scenes/ui/inventory/inventory.gd | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/autoloads/inventory_manager.gd b/autoloads/inventory_manager.gd index 8a3da19..8434d6b 100644 --- a/autoloads/inventory_manager.gd +++ b/autoloads/inventory_manager.gd @@ -9,6 +9,7 @@ signal item_dropped(item: DBItemResource) signal inventory_opened signal inventory_closed +signal clear_inventory signal add_to_inventory(item_id: String, amount: int) signal remove_from_inventory(item_id: String, amount: int) signal item_added(item_id: String, amount: int) @@ -21,6 +22,7 @@ var max_inventory_items: int = 40 # 4 rows of 10 var inventory: Array[DBItemResource] = [] var _inventory_cache: Dictionary[String, Dictionary] = {} ## Used for caching certain information + func _ready() -> void: self.quick_slot_item_changed.connect(_on_quick_slot_item_changed) self.item_picked_up.connect(_on_item_picked_up) @@ -28,6 +30,7 @@ func _ready() -> void: self.add_to_inventory.connect(_on_add_to_inventory) self.remove_from_inventory.connect(_on_remove_from_inventory) + self.clear_inventory.connect(_on_clear_inventory) func available_space(item_id: String) -> int: @@ -129,6 +132,10 @@ func _on_remove_from_inventory(item_id: String, amount: int = 1) -> void: item_removed.emit(item_id, amount - amount_remaining) +func _on_clear_inventory() -> void: + inventory.clear() + _inventory_cache.clear() + func _on_item_dropped(item_id: String) -> void: _on_remove_from_inventory(item_id, 1) diff --git a/scenes/ui/inventory/inventory.gd b/scenes/ui/inventory/inventory.gd index 00a1c8c..874042a 100644 --- a/scenes/ui/inventory/inventory.gd +++ b/scenes/ui/inventory/inventory.gd @@ -57,12 +57,12 @@ func toggle_inventory() -> void: else: _open_inventory() - ## Add any items from the existing inventory resource func update_inventory_with_resource() -> void: if inventory_resource == null: return + InventoryManager.clear_inventory.emit() for item_resource: DBItemResource in inventory_resource.inventory: InventoryManager.add_to_inventory.emit(item_resource.id, item_resource.amount)