95 lines
2.3 KiB
C#
95 lines
2.3 KiB
C#
using System;
|
|
using DDD.ScriptableObjects;
|
|
using Sirenix.OdinInspector;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.UI;
|
|
|
|
namespace DDD.Uis.Tycoon
|
|
{
|
|
public class TodayMenuButton : MonoBehaviour
|
|
{
|
|
[Title("컴포넌트")]
|
|
[SerializeField]
|
|
private Button _button;
|
|
|
|
[SerializeField]
|
|
private GameObject _addMenuText;
|
|
|
|
[SerializeField]
|
|
private GameObject _addedPanel;
|
|
|
|
[SerializeField]
|
|
private Image _image;
|
|
|
|
[SerializeField]
|
|
private TMP_Text _nameText;
|
|
|
|
[SerializeField]
|
|
private TMP_Text _countText;
|
|
|
|
[field: Title("실시간 데이터")]
|
|
[field: SerializeField]
|
|
[field: DisableIf("@true")]
|
|
public bool IsAddedMenu { get; private set; }
|
|
|
|
public CraftRecipeData AddedCraftRecipeData { get; private set; }
|
|
public int AddedCount;
|
|
|
|
private UnityAction _clickAction;
|
|
|
|
private void Start()
|
|
{
|
|
if (IsAddedMenu)
|
|
{
|
|
_addMenuText.SetActive(false);
|
|
_addedPanel.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
_addMenuText.SetActive(true);
|
|
_addedPanel.SetActive(false);
|
|
}
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
UnregisterButtonListener();
|
|
}
|
|
|
|
public void RegisterButtonListener(UnityAction clickAction)
|
|
{
|
|
_clickAction = clickAction;
|
|
_button.onClick.AddListener(_clickAction);
|
|
}
|
|
|
|
private void UnregisterButtonListener()
|
|
{
|
|
if (_clickAction == null) return;
|
|
|
|
_button.onClick.RemoveListener(_clickAction);
|
|
_clickAction = null;
|
|
}
|
|
|
|
public void AddedMenu(CraftRecipeData craftRecipeData, int count)
|
|
{
|
|
if (IsAddedMenu && AddedCraftRecipeData != null)
|
|
{
|
|
AddedCount += count;
|
|
}
|
|
else
|
|
{
|
|
AddedCraftRecipeData = craftRecipeData;
|
|
AddedCount = count;
|
|
IsAddedMenu = true;
|
|
}
|
|
|
|
_addMenuText.SetActive(false);
|
|
_addedPanel.SetActive(true);
|
|
_nameText.text = AddedCraftRecipeData.Name;
|
|
_countText.text = $"x{AddedCount}";
|
|
}
|
|
}
|
|
}
|