using FirstVillain.Converter; using FirstVillain.Entities; using FirstVillain.EventBus; using FirstVillain.Singleton; using Newtonsoft.Json; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class TableManager : UnitySingleton { public Wrapper LoadTable(E_TABLE table) { return LoadTableAsset(table); } private Wrapper LoadTableAsset(E_TABLE table) { var asset = AddressableManager.Instance.LoadAssetAsync(table.ToString()); return JsonConvert.DeserializeObject>(asset.text); } #region LoadAssets #endregion LoadAssets //Å×ÀÌºíº°·Î Å×ÀÌºí °¡Á®¿À´Â ÇÔ¼ö¸¦ °è¼Ó Ãß°¡ÇØ Áà¾ßÇÏ´Â ´ÜÁ¡... #region Prop public JPropInfoData GetPropInfoById(int id) { var list = LoadTableAsset(E_TABLE.JPropInfo).list; return list.Find(arg => arg.Id == id); } public List GetPropInfoList(E_TABLE table) { return LoadTableAsset(table).list; } public List GetPropGroupList(int groupId) { var list = LoadTableAsset(E_TABLE.JPropInfo).list; return list.FindAll(arg => arg.PropGroupId == groupId); } public List GetProbByType(string type) { var list = LoadTableAsset(E_TABLE.JPropRate).list; return list.FindAll(arg => arg.PropType == type); } #endregion Prop #region Stage Item public List GetStageItemList() { return LoadTableAsset(E_TABLE.JStageItem).list; } public JStageItemEffectData GetStageItemEffect(int id) { var list = LoadTableAsset(E_TABLE.JStageItemEffect).list; return list.Find(arg => arg.Id == id); } #endregion Stage Item }