using System.Collections.Generic; using Managers; using UnityEngine; public abstract class BaseItemManager : MonoBehaviour { public static BaseItemManager Instance; public PlayerManager playerManager; public readonly Dictionary slots = new(); private void Awake() { if (Instance == null) { Instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } // Common methods here public abstract GameItem GetItemFromSlot(int slotId); public abstract void RemoveItemFromSlot(int slotId); public abstract void AddItemToOpenSlot(GameItem item); public abstract void AddItemToSlot(GameItem item, int slotId); public abstract void AddSlot(Slot slot); public abstract void RemoveSlot(int slotId); public Slot GetSlot(int slotId) { return slots.GetValueOrDefault(slotId, null); } public abstract void SwapItems(int slotId1, int slotId2); }