CapersProject/Assets/02.Scripts/BlueWater/Ui/Tycoon/CocktailRecipeButton.cs
2025-02-10 11:13:46 +09:00

55 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using DDD.Items;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace DDD.Uis
{
public class CocktailRecipeButton : MonoBehaviour, ISelectHandler
{
[field: SerializeField]
public Button Button { get; private set; }
[SerializeField]
private Image _cocktailImage;
[SerializeField]
private Material _grayScaleMaterial;
[SerializeField]
private string _cocktailIdx;
public CocktailData CocktailData { get; private set; }
private Action<CocktailRecipeButton> _onSelectedAction;
private void OnDestroy()
{
_onSelectedAction = null;
}
public void Initialize()
{
//CocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(_cocktailIdx);
_cocktailImage.sprite = CocktailData.Sprite;
}
public void OnSelect(BaseEventData eventData)
{
_onSelectedAction?.Invoke(this);
}
public void CheckUnlock(HashSet<string> unlockLiquidIdxs)
{
_cocktailImage.material = CocktailData.ValidIngredients.All(element => unlockLiquidIdxs.Contains(element.Idx)) ? null : _grayScaleMaterial;
}
public void AddSelectedAction(Action<CocktailRecipeButton> selectedAction)
{
_onSelectedAction += selectedAction;
}
}
}