88 lines
2.9 KiB
C#
88 lines
2.9 KiB
C#
using System.Collections.Generic;
|
|
using BlueWater.Npcs.Crews;
|
|
using BlueWater.Utility;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
|
|
namespace BlueWater.Tycoons
|
|
{
|
|
public class CrewController : MonoBehaviour
|
|
{
|
|
[Title("Crew 프리팹")]
|
|
[SerializeField]
|
|
private CleanerCrew _cleanerCrewPrefab;
|
|
|
|
[SerializeField]
|
|
private ServingCrew _servingCrewPrefab;
|
|
|
|
[SerializeField]
|
|
private BartenderCrew _bartenderCrewPrefab;
|
|
|
|
[Title("Crew 생성 변수")]
|
|
[SerializeField]
|
|
private Transform _cleanerCrewSpawnTransform;
|
|
|
|
[SerializeField]
|
|
private Transform _servingCrewSpawnTransform;
|
|
|
|
[SerializeField]
|
|
private Transform _bartenderCrewSpawnTransform;
|
|
|
|
[field: Title("실시간 데이터")]
|
|
[field: SerializeField]
|
|
public List<Crew> Crews { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public List<CleanerCrew> CleanerCrews { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public List<ServingCrew> ServingCrews { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public List<BartenderCrew> BartenderCrews { get; private set; }
|
|
|
|
private void Start()
|
|
{
|
|
EventManager.OnCreateCleanerCrew += CreateCleanerCrew;
|
|
EventManager.OnCreateServingCrew += CreateServingCrew;
|
|
EventManager.OnCreateBartenderCrew += CreateBartenderCrew;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
EventManager.OnCreateCleanerCrew -= CreateCleanerCrew;
|
|
EventManager.OnCreateServingCrew -= CreateServingCrew;
|
|
EventManager.OnCreateBartenderCrew -= CreateBartenderCrew;
|
|
}
|
|
|
|
public CleanerCrew CreateCleanerCrew()
|
|
{
|
|
var newCrew = Instantiate(_cleanerCrewPrefab, _cleanerCrewSpawnTransform.position, _cleanerCrewPrefab.transform.rotation);
|
|
Utils.RegisterList(CleanerCrews, newCrew);
|
|
Utils.RegisterList(Crews, newCrew);
|
|
newCrew.Initialize();
|
|
|
|
return newCrew;
|
|
}
|
|
|
|
public ServingCrew CreateServingCrew()
|
|
{
|
|
var newCrew = Instantiate(_servingCrewPrefab, _servingCrewSpawnTransform.position, _servingCrewPrefab.transform.rotation);
|
|
Utils.RegisterList(ServingCrews, newCrew);
|
|
Utils.RegisterList(Crews, newCrew);
|
|
newCrew.Initialize();
|
|
|
|
return newCrew;
|
|
}
|
|
|
|
public BartenderCrew CreateBartenderCrew()
|
|
{
|
|
var newCrew = Instantiate(_bartenderCrewPrefab, _bartenderCrewSpawnTransform.position, _bartenderCrewPrefab.transform.rotation);
|
|
Utils.RegisterList(BartenderCrews, newCrew);
|
|
Utils.RegisterList(Crews, newCrew);
|
|
newCrew.Initialize();
|
|
|
|
return newCrew;
|
|
}
|
|
}
|
|
} |