using System.Collections.Generic; using System.Linq; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.SceneManagement; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public class DataManager : Singleton { [field: Title("Inventory")] [field: SerializeField] public PlayerInventory OceanInventory { get; private set; } = new(); [field: SerializeField] public PlayerInventory CombatInventory { get; private set; } = new(); public PlayerInventory CurrentInventory { get; set; } public int Gold { get; set; } = 0; [Title("DataBase", "GameObject")] public GameObject mouseSpot; public GameObject boat; public GameObject assaultCard; public GameObject radarTargetUi; public GameObject vomit; [Title("DataBase", "Particle")] public GameObject nukeFire; public GameObject grenadeFire; public GameObject emojiHeart; public GameObject emojiPuke; public GameObject emojiAnger; [Title("DataBase", "Sprites")] public Sprite[] cardType; public Texture2D cursorTexture; public Sprite enemyMarker; public Sprite scallion; public Sprite tomato; public Sprite onion; public Sprite kingCrabMeat; public Sprite beer; [field: SerializeField] public NpcDataSO NpcDataSo { get; private set; } private void Init() { if (SceneManager.GetActiveScene().name == "02.Ocean") { CurrentInventory = OceanInventory; } else if (SceneManager.GetActiveScene().name == "02.Combat_2D") { CurrentInventory = CombatInventory; } } protected override void OnAwake() { Init(); if (gameObject.GetComponent() == null) { gameObject.AddComponent(); } } public NpcData GetNpcData(int idx) { var data = NpcDataSo.npcDataList.FirstOrDefault(d => d.idx == idx); if(data == null) { Debug.LogWarning($"NPC Data for index {idx} not found."); } return data; } /// /// Dictionary 초기화 함수 /// private Dictionary CreateDictionaryFromList(List list, int capacity) where T : IIdx { var newDictionary = new Dictionary(capacity); foreach (var item in list) { newDictionary.Add(item.Idx, item); } return newDictionary; } [ContextMenu("Json To So")] public void MakeDataSoFromJson() { // WeaponDataSo.weaponDataList = GetJsonData>("JSON/WEAPON_TABLE.json"); // #if UNITY_EDITOR_OSX || UNITY_EDITOR_WIN // EditorUtility.SetDirty(WeaponDataSo); // #endif } } }