using System; using BlueWater.Audios; using UnityEngine; using Sirenix.OdinInspector; namespace BlueWater.Tycoons { public class TycoonManager : Singleton { [field: Title("컴포넌트")] [field: SerializeField] public CustomerTableController CustomerTableController { get; private set; } [field: SerializeField] public TycoonStageController TycoonStageController { get; private set; } [field: SerializeField] public TycoonIngredientController TycoonIngredientController { get; private set; } [field: SerializeField] public CrewController CrewController { get; private set; } [field: SerializeField] public CustomerController CustomerController { get; private set; } [field: SerializeField] public ServingTableController ServingTableController { get; private set; } [field: SerializeField] public TycoonCardController TycoonCardController { get; private set; } [SerializeField] private string _dailyBgm; [field: Title("타이쿤 플레이어 스탯")] [field: SerializeField] public TycoonStatus TycoonStatus { get; private set; } [field: Title("So 데이터")] [field: SerializeField, Required] public LevelDataSo LevelDataSo { get; private set; } [field: SerializeField, Required] public CardDataSo CardDataSo { get; private set; } protected override void OnAwake() { InitializeComponents(); } private void Start() { if (!string.IsNullOrEmpty(_dailyBgm)) { AudioManager.Instance.PlayBgm(_dailyBgm); } TycoonStatus = new TycoonStatus(); TycoonStatus.Initialize(); } private void OnDestroy() { TycoonStatus.Dispose(); } [Button("컴포넌트 초기화")] private void InitializeComponents() { CustomerTableController = GetComponent(); TycoonStageController = GetComponent(); TycoonIngredientController = GetComponent(); CrewController = GetComponent(); CustomerController = GetComponent(); ServingTableController = GetComponent(); TycoonCardController = GetComponent(); } public LevelData GetCurrentLevelData() { return LevelDataSo.GetDataByIdx(TycoonStatus.CurrentLevel.ToString()); } } }