KitchenChaos/Assets/Scripts/UI/DeliveryManagerUI.cs

50 lines
1.5 KiB
C#

using System;
using UnityEngine;
public class DeliveryManagerUI : MonoBehaviour {
[SerializeField] private Transform container;
[SerializeField] private Transform recipeTemplate;
public static DeliveryManagerUI Instance { get; private set; }
private void Awake() {
recipeTemplate.gameObject.SetActive(false);
Instance = this;
}
private void Start() {
DeliveryManager.Instance.OnRecipeSpawned += DeliveryManager_OnRecipeSpawned;
DeliveryManager.Instance.OnRecipeCompleted += DeliveryManager_OnRecipeCompleted;
Show();
UpdateVisual();
}
private void DeliveryManager_OnRecipeCompleted(object sender, EventArgs e) {
UpdateVisual();
}
private void DeliveryManager_OnRecipeSpawned(object sender, EventArgs e) {
UpdateVisual();
}
private void UpdateVisual() {
foreach (Transform child in container) {
if (child == recipeTemplate) continue;
Destroy(child.gameObject);
}
foreach (RecipeSO recipeSO in DeliveryManager.Instance.WaitingRecipeSOList) {
Transform recipeTransform = Instantiate(recipeTemplate, container);
recipeTransform.gameObject.SetActive(true);
recipeTransform.GetComponent<DeliveryManagerSingleUI>().SetRecipeSO(recipeSO);
}
}
public void Hide() {
gameObject.SetActive(false);
}
public void Show() {
gameObject.SetActive(true);
}
}