Browse Source

feat: Clear inventory when loading inventory resource

pull/24/head
Ryan Reed 3 weeks ago
parent
commit
c833c0947e
2 changed files with 8 additions and 1 deletions
  1. +7
    -0
      autoloads/inventory_manager.gd
  2. +1
    -1
      scenes/ui/inventory/inventory.gd

+ 7
- 0
autoloads/inventory_manager.gd View File

@ -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)


+ 1
- 1
scenes/ui/inventory/inventory.gd View File

@ -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)


Loading…
Cancel
Save