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 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; } }