Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ButtonState.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3
4public class ButtonState
5{
6 public enum ClickCriteria
7 {
11 }
12
13 public static float delta;
14
15 public string id;
16
17 public float pressedTimer;
18
19 public float timeSinceLastClick;
20
22
23 public float clickDuration = 0.5f;
24
25 public float dragMargin = 12f;
26
27 public int mouse = -1;
28
30
31 public bool down;
32
33 public bool up;
34
35 public bool pressing;
36
37 public bool clicked;
38
39 public bool doubleClicked;
40
41 public bool consumed;
42
43 public bool dragging;
44
45 public bool dragging2;
46
47 public bool draggedOverMargin;
48
49 public bool ignoreClick;
50
51 public bool wasConsumed;
52
53 public bool usedMouse;
54
55 public bool usedKey;
56
57 public bool ignoreWheel;
58
59 public ClickCriteria clickCriteria = ClickCriteria.ByDurationAndMargin;
60
61 public Action pressedLongAction;
62
63 public bool pressedLong
64 {
65 get
66 {
67 if (pressing)
68 {
70 }
71 return false;
72 }
73 }
74
76 {
77 return timeSinceLastClick < 0.2f;
78 }
79
80 public void Update()
81 {
83 if (mouse != -1 && !usedKey)
84 {
85 down = Input.GetMouseButtonDown(mouse);
86 up = Input.GetMouseButtonUp(mouse);
87 pressing = Input.GetMouseButton(mouse);
88 if (down)
89 {
90 usedMouse = true;
91 }
92 }
93 if (mouse == 1)
94 {
95 if (down)
96 {
97 EInput.dragStartPos2 = EInput.mpos;
98 }
99 else if (pressing)
100 {
101 if (Vector3.Distance(EInput.mpos, EInput.dragStartPos2) > dragMargin)
102 {
103 dragging2 = true;
104 }
105 }
106 else
107 {
108 dragging2 = false;
109 }
110 }
111 if (keymap != null && !usedMouse && !EInput.isInputFieldActive)
112 {
113 down = Input.GetKeyDown(keymap.key);
114 up = Input.GetKeyUp(keymap.key);
115 pressing = Input.GetKey(keymap.key);
116 if (down)
117 {
118 usedKey = true;
119 }
120 }
121 if (consumed)
122 {
123 if (down || up || pressing)
124 {
125 Clear();
126 return;
127 }
128 consumed = false;
129 }
130 if (down)
131 {
132 wasConsumed = false;
133 EInput.dragStartPos = EInput.mpos;
134 if (timeSinceLastClick < 0.2f)
135 {
136 doubleClicked = true;
137 }
138 }
139 else if (pressing)
140 {
143 {
144 dragging = true;
145 }
146 if (Vector3.Distance(EInput.mpos, EInput.dragStartPos) > dragMargin)
147 {
148 draggedOverMargin = true;
149 }
150 }
151 else if (up)
152 {
153 if (ignoreWheel)
154 {
155 EInput.ignoreWheelDuration = 0.2f;
156 }
157 switch (clickCriteria)
158 {
159 case ClickCriteria.ByDuration:
161 break;
162 case ClickCriteria.ByMargin:
164 break;
165 case ClickCriteria.ByDurationAndMargin:
167 break;
168 }
169 if (clicked)
170 {
172 }
173 if (ignoreClick)
174 {
175 clicked = false;
176 }
177 }
178 else
179 {
180 Clear();
181 }
182 }
183
184 public void Consume()
185 {
186 Clear();
187 consumed = (wasConsumed = true);
188 }
189
190 public void Clear()
191 {
192 pressedTimer = 0f;
193 down = (up = (pressing = false));
195 }
196}
bool ignoreClick
Definition: ButtonState.cs:49
void Update()
Definition: ButtonState.cs:80
bool dragging
Definition: ButtonState.cs:43
bool dragging2
Definition: ButtonState.cs:45
bool usedKey
Definition: ButtonState.cs:55
bool pressing
Definition: ButtonState.cs:35
float dragMargin
Definition: ButtonState.cs:25
bool clicked
Definition: ButtonState.cs:37
float pressedTimer
Definition: ButtonState.cs:17
float clickDuration
Definition: ButtonState.cs:23
static float delta
Definition: ButtonState.cs:13
bool doubleClicked
Definition: ButtonState.cs:39
void Consume()
Definition: ButtonState.cs:184
bool wasConsumed
Definition: ButtonState.cs:51
float timeSinceLastButtonDown
Definition: ButtonState.cs:21
bool consumed
Definition: ButtonState.cs:41
bool draggedOverMargin
Definition: ButtonState.cs:47
bool IsInDoubleClickDuration()
Definition: ButtonState.cs:75
bool usedMouse
Definition: ButtonState.cs:53
string id
Definition: ButtonState.cs:15
bool pressedLong
Definition: ButtonState.cs:64
ClickCriteria clickCriteria
Definition: ButtonState.cs:59
void Clear()
Definition: ButtonState.cs:190
float timeSinceLastClick
Definition: ButtonState.cs:19
Action pressedLongAction
Definition: ButtonState.cs:61
bool ignoreWheel
Definition: ButtonState.cs:57
EInput.KeyMap keymap
Definition: ButtonState.cs:29
Definition: EInput.cs:8
static bool isInputFieldActive
Definition: EInput.cs:277
static Vector3 dragStartPos
Definition: EInput.cs:341
static Vector3 mpos
Definition: EInput.cs:337
static Vector3 dragStartPos2
Definition: EInput.cs:343