using System; using SUISS.Core; using Tweening; using UnityEngine; public class OverlayButtons : MonoBehaviour { public OverlayButton InfoButton { get { return this._infoButton; } } public OverlayButton MoveButton { get { return this._moveButton; } } public OverlayButton UpgradeButton { get { return this._upgradeButton; } } public OverlayButton DemolishButton { get { return this._demolishButton; } } public static OverlayButtons Get(Component comp) { OverlayButtons overlayButtons = comp.GetComponent<OverlayButtons>(); if (overlayButtons == null) { overlayButtons = OverlayButtons.Create(comp.gameObject); } return overlayButtons; } public void DisableAllButtons() { this.InfoButton.DisableButton(); this.MoveButton.DisableButton(); this.UpgradeButton.DisableButton(); this.DemolishButton.DisableButton(); } public void ShowOpenAnimation(Action onFinished = null) { if (this._tweener.IsPlaying) { this._tweener.Stop(); } if (onFinished != null) { Tweener.FinishedPlayingEventHandler onFinishedInternal = null; onFinishedInternal = delegate(Tweener tweener) { tweener.FinishedPlaying -= onFinishedInternal; onFinished(); }; this._tweener.FinishedPlaying += onFinishedInternal; } this._tweener.Reset(false); this._tweener.Play(); } public void ShowCloseAnimation(Action onFinished = null) { if (this._tweener.IsPlaying) { this._tweener.Stop(); } if (onFinished != null) { Tweener.FinishedPlayingEventHandler onFinishedInternal = null; onFinishedInternal = delegate(Tweener tweener) { tweener.FinishedPlaying -= onFinishedInternal; onFinished(); }; this._tweener.FinishedPlaying += onFinishedInternal; } this._tweener.Reset(true); this._tweener.PlayReverse(); } private static OverlayButtons Create(GameObject go) { OverlayManager instance = SingletonMonobehaviour<OverlayManager>.Instance; return instance.CreateOverlay<OverlayButtons>(go, instance.ButtonsPrefab); } [SerializeField] private OverlayButton _infoButton; [SerializeField] private OverlayButton _moveButton; [SerializeField] private OverlayButton _upgradeButton; [SerializeField] private OverlayButton _demolishButton; [SerializeField] private Tweener _tweener; }