You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

119 lines
2.4 KiB

  1. using System;
  2. using SUISS.Core;
  3. using Tweening;
  4. using UnityEngine;
  5. public class OverlayButtons : MonoBehaviour
  6. {
  7. public OverlayButton InfoButton
  8. {
  9. get
  10. {
  11. return this._infoButton;
  12. }
  13. }
  14. public OverlayButton MoveButton
  15. {
  16. get
  17. {
  18. return this._moveButton;
  19. }
  20. }
  21. public OverlayButton UpgradeButton
  22. {
  23. get
  24. {
  25. return this._upgradeButton;
  26. }
  27. }
  28. public OverlayButton DemolishButton
  29. {
  30. get
  31. {
  32. return this._demolishButton;
  33. }
  34. }
  35. public static OverlayButtons Get(Component comp)
  36. {
  37. OverlayButtons overlayButtons = comp.GetComponent<OverlayButtons>();
  38. if (overlayButtons == null)
  39. {
  40. overlayButtons = OverlayButtons.Create(comp.gameObject);
  41. }
  42. return overlayButtons;
  43. }
  44. public void DisableAllButtons()
  45. {
  46. this.InfoButton.DisableButton();
  47. this.MoveButton.DisableButton();
  48. this.UpgradeButton.DisableButton();
  49. this.DemolishButton.DisableButton();
  50. }
  51. public void ShowOpenAnimation(Action onFinished = null)
  52. {
  53. if (this._tweener.IsPlaying)
  54. {
  55. this._tweener.Stop();
  56. }
  57. if (onFinished != null)
  58. {
  59. Tweener.FinishedPlayingEventHandler onFinishedInternal = null;
  60. onFinishedInternal = delegate(Tweener tweener)
  61. {
  62. tweener.FinishedPlaying -= onFinishedInternal;
  63. onFinished();
  64. };
  65. this._tweener.FinishedPlaying += onFinishedInternal;
  66. }
  67. this._tweener.Reset(false);
  68. this._tweener.Play();
  69. }
  70. public void ShowCloseAnimation(Action onFinished = null)
  71. {
  72. if (this._tweener.IsPlaying)
  73. {
  74. this._tweener.Stop();
  75. }
  76. if (onFinished != null)
  77. {
  78. Tweener.FinishedPlayingEventHandler onFinishedInternal = null;
  79. onFinishedInternal = delegate(Tweener tweener)
  80. {
  81. tweener.FinishedPlaying -= onFinishedInternal;
  82. onFinished();
  83. };
  84. this._tweener.FinishedPlaying += onFinishedInternal;
  85. }
  86. this._tweener.Reset(true);
  87. this._tweener.PlayReverse();
  88. }
  89. private static OverlayButtons Create(GameObject go)
  90. {
  91. OverlayManager instance = SingletonMonobehaviour<OverlayManager>.Instance;
  92. return instance.CreateOverlay<OverlayButtons>(go, instance.ButtonsPrefab);
  93. }
  94. [SerializeField]
  95. private OverlayButton _infoButton;
  96. [SerializeField]
  97. private OverlayButton _moveButton;
  98. [SerializeField]
  99. private OverlayButton _upgradeButton;
  100. [SerializeField]
  101. private OverlayButton _demolishButton;
  102. [SerializeField]
  103. private Tweener _tweener;
  104. }