evershade/Assets/Scripts/Managers/Item/BaseItemManager.cs

38 lines
1.0 KiB
C#

using System.Collections.Generic;
using Managers;
using UnityEngine;
public abstract class BaseItemManager : MonoBehaviour
{
public static BaseItemManager Instance;
public PlayerManager playerManager;
public readonly Dictionary<int, Slot> 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);
}