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