This commit is contained in:
j.mei7
2022-02-21 19:02:23 +01:00
parent a62bb1ae73
commit 1e092487a9
2 changed files with 34 additions and 19 deletions

View File

@@ -23,31 +23,23 @@ public class Inventory : MonoBehaviour
public delegate void OnItemChanged(); public delegate void OnItemChanged();
public OnItemChanged onItemChangedCallback; // public OnItemChanged onItemChangedCallback;
[SerializeField]
int numberOfSlots = 20;
[SerializeField] [SerializeField]
List<Slot> inventory = new List<Slot>(); List<Slot> inventory = new List<Slot>();
public List<Slot> getInventory { get => inventory;} public List<Slot> getInventory { get => inventory;}
public void createEmptyInventory(int numberOfSlots, int maxSpaceOfSlots = 10)
{
// Initializes the inventory with a specific number of slots and slotsize.
// !!!Has to be called bevore adding any items!!!
// Example createEmptyInventory(5, 10) : 5 Slots with space for 10 items each
for (int i = 0; i < numberOfSlots; i++)
{
inventory.Add(new Slot(maxSpaceOfSlots));
}
if (onItemChangedCallback != null)
onItemChangedCallback.Invoke();
}
public void addInventorySlots(int numberOfSlots, int maxSpaceOfSlots = 10) public void addInventorySlots(int numberOfSlots, int maxSpaceOfSlots = 10)
{ {
// Adds a specific number of slots and slotsize to the inventory. // Adds a specific number of slots and slotsize to the inventory.
// Example addInventorySlots(5, 10) : Adds 5 Slots with space for 10 items each // Example addInventorySlots(5, 10) : Adds 5 Slots with space for 10 items each
for (int i = 0; i < numberOfSlots; i++) for (int i = 0; i < numberOfSlots; i++)
{ {
inventory.Add(new Slot(maxSpaceOfSlots)); inventory.Add(new Slot());
} }
if (onItemChangedCallback != null) if (onItemChangedCallback != null)
onItemChangedCallback.Invoke(); onItemChangedCallback.Invoke();
@@ -142,4 +134,30 @@ public class Inventory : MonoBehaviour
return false; return false;
} }
} }
/*
public int addItem(Item itemType, int count = 1)
{
foreach (Slot slot in inventory)
{
if (slot.ItemType.Equals(itemType))
{
slot.
}
}
}*/
void Start()
{
// Init Inventory
for (int i = 0; i < numberOfSlots; i++)
{
inventory.Add(new Slot());
}
if (onItemChangedCallback != null)
onItemChangedCallback.Invoke();
}
} }

View File

@@ -18,15 +18,12 @@ public class Slot
/// </summary> /// </summary>
Item item; Item item;
int maxItems = 1;
int count = 0; int count = 0;
public Item ItemType { get => item; set => item = value; } public Item ItemType { get => item; set => item = value; }
public int Count { get => count; set => count = value; } public int Count { get => count; set => count = value; }
public int MaxItems { get => maxItems; set => maxItems = value; } public Slot()
public Slot(int maxItems = 1)
{ {
item = null; item = null;
this.maxItems = maxItems;
} }
public void addItem(int count = 1) public void addItem(int count = 1)
{ {
@@ -45,7 +42,7 @@ public class Slot
} }
public Slot copy() public Slot copy()
{ {
Slot slot = new Slot(maxItems); Slot slot = new Slot();
slot.count = count; slot.count = count;
slot.ItemType = ItemType; slot.ItemType = ItemType;