extends Node signal next_quick_slot signal previous_quick_slot signal select_quick_slot(slot_index: int) signal quick_slot_item_changed(item_id: String) signal item_picked_up(item: DBItemResource) signal item_dropped(item: DBItemResource) signal inventory_opened signal inventory_closed 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) signal item_removed(item_id: String, amount: int) var quick_slot_item_id: String = "001" var inventory: Dictionary[String, DBItemResource] func _ready() -> void: self.quick_slot_item_changed.connect(_on_quick_slot_item_changed) self.item_picked_up.connect(_on_item_picked_up) self.item_dropped.connect(_on_item_dropped) self.add_to_inventory.connect(_on_add_to_inventory) self.remove_from_inventory.connect(_on_remove_from_inventory) func _on_add_to_inventory(item_id: String, amount: int = 1) -> void: if not inventory.has(item_id): inventory[item_id] = DBItems.data[item_id] inventory[item_id].amount += amount func _on_remove_from_inventory(item_id: String, amount: int = 1) -> void: if not inventory.has(item_id): return inventory[item_id].amount -= amount func _on_item_dropped(item_id: String) -> void: _on_remove_from_inventory(item_id, 1) func _on_item_picked_up(item_id: String) -> void: _on_add_to_inventory(item_id, 1) func _on_quick_slot_item_changed(item_id: String) -> void: quick_slot_item_id = item_id