summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/ButtonBehavior.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assembly-CSharp/ButtonBehavior.cs')
-rw-r--r--Client/Assembly-CSharp/ButtonBehavior.cs64
1 files changed, 64 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/ButtonBehavior.cs b/Client/Assembly-CSharp/ButtonBehavior.cs
new file mode 100644
index 0000000..aa941c8
--- /dev/null
+++ b/Client/Assembly-CSharp/ButtonBehavior.cs
@@ -0,0 +1,64 @@
+using System;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ButtonBehavior : MonoBehaviour
+{
+ public bool OnUp = true;
+
+ public bool OnDown;
+
+ public bool Repeat;
+
+ public Button.ButtonClickedEvent OnClick = new Button.ButtonClickedEvent();
+
+ private Controller myController = new Controller();
+
+ private Collider2D[] colliders;
+
+ private float downTime;
+
+ public void OnEnable()
+ {
+ this.colliders = base.GetComponents<Collider2D>();
+ this.myController.Reset();
+ }
+
+ public void Update()
+ {
+ this.myController.Update();
+ foreach (Collider2D coll in this.colliders)
+ {
+ switch (this.myController.CheckDrag(coll, false))
+ {
+ case DragState.TouchStart:
+ if (this.OnDown)
+ {
+ this.OnClick.Invoke();
+ }
+ break;
+ case DragState.Dragging:
+ if (this.Repeat)
+ {
+ this.downTime += Time.fixedDeltaTime;
+ if (this.downTime >= 0.3f)
+ {
+ this.downTime = 0f;
+ this.OnClick.Invoke();
+ }
+ }
+ else
+ {
+ this.downTime = 0f;
+ }
+ break;
+ case DragState.Released:
+ if (this.OnUp)
+ {
+ this.OnClick.Invoke();
+ }
+ break;
+ }
+ }
+ }
+}