94 lines
2.7 KiB
C#
94 lines
2.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using DDD.Items;
|
|
using DDD.Utility;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Localization;
|
|
using UnityEngine.Localization.Settings;
|
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
|
using UnityEngine.UI;
|
|
|
|
namespace DDD.Uis
|
|
{
|
|
public class CraftingIngredient : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private GameObject _connectionLine;
|
|
|
|
[SerializeField]
|
|
private Image _liquidImage;
|
|
|
|
[SerializeField]
|
|
private Image _liquidTypeImage;
|
|
|
|
[SerializeField]
|
|
private TMP_Text _liquidText;
|
|
|
|
[SerializeField]
|
|
private TMP_Text _ratioText;
|
|
|
|
[SerializeField]
|
|
private Sprite _liquidTypeSprite;
|
|
|
|
[SerializeField]
|
|
private Sprite _garnishTypeSprite;
|
|
|
|
private Coroutine _changedLocaleInstance;
|
|
private LiquidData _liquidData;
|
|
|
|
private void Start()
|
|
{
|
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
|
}
|
|
|
|
private void OnChangedLocale(Locale locale)
|
|
{
|
|
if (!gameObject.activeInHierarchy) return;
|
|
|
|
Utils.StartUniqueCoroutine(this, ref _changedLocaleInstance, ChangeLocaleCoroutine(locale));
|
|
StartCoroutine(ChangeLocaleCoroutine(locale));
|
|
}
|
|
|
|
private IEnumerator ChangeLocaleCoroutine(Locale locale)
|
|
{
|
|
var loadingOperation = Utils.GetTableAsync();
|
|
yield return loadingOperation;
|
|
|
|
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
|
{
|
|
_liquidText.text = Utils.GetLocalizedString(_liquidData.Idx);
|
|
}
|
|
}
|
|
|
|
public void Initialize(CocktailIngredient cocktailIngredient, int index)
|
|
{
|
|
_connectionLine.SetActive(index != 0);
|
|
|
|
//_liquidData = ItemManager.Instance.LiquidDataSo.GetDataByIdx(cocktailIngredient.Idx);
|
|
_liquidImage.sprite = _liquidData.Sprite;
|
|
|
|
Sprite liquidTypeSprite = null;
|
|
if (_liquidData.Type == LiquidType.Liquid)
|
|
{
|
|
liquidTypeSprite = _liquidTypeSprite;
|
|
}
|
|
else if (_liquidData.Type == LiquidType.Garnish)
|
|
{
|
|
liquidTypeSprite = _garnishTypeSprite;
|
|
}
|
|
|
|
_liquidTypeImage.sprite = liquidTypeSprite;
|
|
_liquidText.text = Utils.GetLocalizedString(_liquidData.Idx);
|
|
_ratioText.text = $"{cocktailIngredient.Ratio}%";
|
|
}
|
|
|
|
public void Show() => gameObject.SetActive(true);
|
|
public void Hide() => gameObject.SetActive(false);
|
|
}
|
|
} |