CapersProject/Assets/02.Scripts/Tycoon/TycoonManager.cs
2024-11-17 13:29:57 +09:00

84 lines
2.7 KiB
C#

using System;
using BlueWater.Audios;
using UnityEngine;
using Sirenix.OdinInspector;
namespace BlueWater.Tycoons
{
public class TycoonManager : Singleton<TycoonManager>
{
[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<CustomerTableController>();
TycoonStageController = GetComponent<TycoonStageController>();
TycoonIngredientController = GetComponent<TycoonIngredientController>();
CrewController = GetComponent<CrewController>();
CustomerController = GetComponent<CustomerController>();
ServingTableController = GetComponent<ServingTableController>();
TycoonCardController = GetComponent<TycoonCardController>();
}
public LevelData GetCurrentLevelData()
{
return LevelDataSo.GetDataByIdx(TycoonStatus.CurrentLevel.ToString());
}
}
}