using System; using CIG.Translation; using SUISS.Core; using UnityEngine; using UnityEngine.UI; public class FlagButton : MonoBehaviour { public Localization.Culture RepresentingCulture { get; private set; } public Button Button { get { return this._button; } } protected void OnEnable() { Localization.CurrentCultureChangedEvent += this.OnCurrentCultureChangedEvent; this.OnCurrentCultureChangedEvent(Localization.CurrentCulture); } protected void OnDisable() { Localization.CurrentCultureChangedEvent -= this.OnCurrentCultureChangedEvent; } protected void OnDestroy() { this._button.onClick.RemoveAllListeners(); this.RepresentingCulture = null; } public void SetCulture(Localization.Culture culture) { this.RepresentingCulture = culture; this._flagImage.sprite = SingletonMonobehaviour.Instance.GetAsset(culture); } private void OnCurrentCultureChangedEvent(Localization.Culture culture) { this._glowObject.SetActive(culture == this.RepresentingCulture); } [SerializeField] private Button _button; [SerializeField] private GameObject _glowObject; [SerializeField] private Image _flagImage; }