55 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
} |