using System.Linq; using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName = "Major Project/Inventory", order = 150)] public class Inventory : ScriptableObject { [SerializeField] protected List AllElements = new List(); public void Add(LogicBlock element) { InventoryData data; try { data = AllElements.First(p => p.element == element); } catch { data = new InventoryData() { element = element }; AllElements.Add(data); } data.Count++; } public void Remove(LogicBlock element) { if (!AllElements.Exists(p => p.element == element)) return; InventoryData data = AllElements.First(p => p.element == element); if (!data.infinit) data.Count--; } [System.Serializable] public class InventoryData { public LogicBlock element; public int Count; public bool infinit = false; } }