50 lines
951 B
C#
50 lines
951 B
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UFS3;
|
|
using UnityEngine;
|
|
|
|
[CreateAssetMenu(fileName = "ItemDatabase", menuName = "Scriptable Objects/ItemDatabase")]
|
|
public class ItemDatabase : ScriptableObject
|
|
{
|
|
[Header("VERY IMPORTANT, DONT REMOVE, CHANGE ORDER OF LIST, ONLY ADD NEW ITEMS")]
|
|
public List<BaseItemData> Items;
|
|
|
|
public BaseItemData GetItemById(int id)
|
|
{
|
|
return Items[id];
|
|
}
|
|
|
|
public void ValidateIDs()
|
|
{
|
|
int num = 0;
|
|
foreach (BaseItemData item in Items)
|
|
{
|
|
if (item == null)
|
|
{
|
|
Debug.LogError($"ItemDatabase: Item with id {num} has null item, skipping.");
|
|
num++;
|
|
}
|
|
else
|
|
{
|
|
item.ID = num;
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
|
|
public int GetID(BaseItemData item)
|
|
{
|
|
if (Items.Count != Items.Distinct().Count())
|
|
{
|
|
Debug.LogError("Have duplicate IDs");
|
|
return -1;
|
|
}
|
|
int num = Items.IndexOf(item);
|
|
if (num == -1)
|
|
{
|
|
Debug.LogError("No item found returns -1");
|
|
}
|
|
return num;
|
|
}
|
|
}
|