added ItemStorage.cs, ItemStorageSlot.cs, ItemStorageUI.cs

* Inventory, InventorySlot, InventoryUI, Shop, ShopSlot, ShopUI are extending them
This commit is contained in:
dhain 2022-06-02 15:08:21 +02:00
parent d28a1947eb
commit ee6704abc1
13 changed files with 231 additions and 205 deletions

View file

@ -0,0 +1,46 @@
using System.Collections.Generic;
using UnityEngine;
public class ItemStorage : MonoBehaviour {
public Dictionary<Item, int> items;
public Item[] startItems;
/**
* Methods can be added to this and they will get called every time onItemChangedCallback gets Invoked
*/
public delegate void OnItemChanged();
public OnItemChanged onItemChangedCallback;
private void Start() {
items ??= new Dictionary<Item, int>();
foreach(Item item in startItems) {
AddItem(item, 1);
}
}
/**
* Adds the specified amount of items to the Item Storage
*/
public virtual void AddItem(Item item, int amount) {
if(!items.ContainsKey(item)) {
items.Add(item, amount);
} else {
items[item] += amount;
}
onItemChangedCallback?.Invoke();
}
/**
* Removes the specified amount of items in the Item Storage
*/
public void RemoveItem(Item item, int amount) {
if(items[item] <= 0) {
items.Remove(item);
} else {
items[item] -= amount;
}
onItemChangedCallback?.Invoke();
}
}