using System; using System.Collections.Generic; using BlueWater.Items; using BlueWater.Tycoons; using Sirenix.OdinInspector; using UnityEngine; namespace BlueWater { public enum SaveStage { None = 0, TitanSlime = 3, Rhinoceros = 4, SandMole = 5, GhostBarrel = 6 } public class DataManager : Singleton { public SaveStage CurrentSaveStage { get; set; } [field: Title("스프라이트 데이터")] [field: SerializeField] public SpriteDataSo SpriteDataSo { get; private set; } [field: Title("아이템 데이터")] [field: SerializeField] public Inventory Inventory { get; private set; } [field: Title("아이템 데이터")] [field: SerializeField] public List FoodRecipes { get; private set; } = new(); [field: Title("타이쿤 데이터")] [field: SerializeField] public TycoonData TycoonData { get; private set; } [field: Title("실시간 데이터")] public int Gold { get; set; } public event Action OnChangeFoodRecipe; public event Action OnChangeGold; private void Start() { GetMoney(5000); } public void TestData() { Inventory.AddItem(new ItemSlot("10107", 2)); Inventory.AddItem(new ItemSlot("10108", 1)); Inventory.AddItem(new ItemSlot("10109", 2)); Inventory.AddItem(new ItemSlot("10201", 1)); Inventory.AddItem(new ItemSlot("10404", 9)); Inventory.AddItem(new ItemSlot("10503", 4)); Inventory.AddItem(new ItemSlot("10507", 15)); Inventory.AddItem(new ItemSlot("10508", 100)); Inventory.AddItem(new ItemSlot("10603", 3)); Inventory.AddItem(new ItemSlot("10701", 999)); Inventory.AddItem(new ItemSlot("10704", 5396)); Inventory.AddItem(new ItemSlot("10705", 66)); Inventory.AddItem(new ItemSlot("10706", 35)); Inventory.AddItem(new ItemSlot("60001", 2)); AddFoodRecipe("30001"); AddFoodRecipe("30002"); AddFoodRecipe("30004"); AddFoodRecipe("30005"); AddFoodRecipe("30006"); } public void AddFoodRecipe(string idx) { if (FoodRecipes.Contains(idx)) return; var foodData = ItemManager.Instance.GetFoodDataByIdx(idx); if (foodData == null) return; FoodRecipes.Add(idx); OnChangeFoodRecipe?.Invoke(foodData); } public void GetMoney(int money) { Gold += money; OnChangeGold?.Invoke(Gold); } } }