From 884103d805270bd776b7a485d9431401c0c05594 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Sun, 30 Mar 2025 18:50:13 +0000 Subject: [PATCH] #16 added ores to player inventory #14 show inventory in UI --- Assets/Scripts/Inventory/Inventory.cs | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Assets/Scripts/Inventory/Inventory.cs b/Assets/Scripts/Inventory/Inventory.cs index a8a59b5..edb224e 100644 --- a/Assets/Scripts/Inventory/Inventory.cs +++ b/Assets/Scripts/Inventory/Inventory.cs @@ -23,33 +23,37 @@ public bool AddItem(Item item, int quantity = 1) { if (items.Count >= maxInventorySize && !item.isStackable) + { + //TODO: Show inventory full message + Debug.Log("Inventory is full"); return false; + } InventorySlot existingSlot = items.Find(slot => slot.item.itemName == item.itemName); - if (existingSlot != null && item.isStackable) { + //Add to existing stack if (existingSlot.quantity + quantity <= item.maxStackSize) { existingSlot.quantity += quantity; - return true; } else { int remainingQuantity = item.maxStackSize - existingSlot.quantity; existingSlot.quantity = item.maxStackSize; - return AddItem(item, quantity - remainingQuantity); + //TODO: Show inventory overflow message + Debug.Log("Inventory overflow"); + existingSlot.quantity += remainingQuantity; } + } else { - if (items.Count < maxInventorySize) - { - items.Add(new InventorySlot(item, quantity)); - return true; - } - return false; + //Add new item to inventory + items.Add(new InventorySlot(item, quantity)); } + GameStateEvents.inventoryChanged?.Invoke(); + return true; } public void RemoveItem(Item item, int quantity = 1) @@ -67,6 +71,7 @@ items.Remove(existingSlot); } } + GameStateEvents.inventoryChanged?.Invoke(); } } -- Gitblit v1.9.3