Elin Decompiled Documentation
EA 23.102 Nightly
Loading...
Searching...
No Matches
ButtonState.cs
Go to the documentation of this file.
1
using
System;
2
using
UnityEngine;
3
4
public
class
ButtonState
5
{
6
public
enum
ClickCriteria
7
{
8
ByDuration
,
9
ByMargin
,
10
ByDurationAndMargin
11
}
12
13
public
static
float
delta
;
14
15
public
string
id
;
16
17
public
float
pressedTimer
;
18
19
public
float
timeSinceLastClick
;
20
21
public
float
timeSinceLastButtonDown
;
22
23
public
float
clickDuration
= 0.5f;
24
25
public
float
dragMargin
= 12f;
26
27
public
int
mouse
= -1;
28
29
public
EInput.KeyMap
keymap
;
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
{
69
return
pressedTimer
>=
clickDuration
;
70
}
71
return
false
;
72
}
73
}
74
75
public
bool
IsInDoubleClickDuration
()
76
{
77
return
timeSinceLastClick
< 0.2f;
78
}
79
80
public
void
Update
()
81
{
82
timeSinceLastClick
+=
delta
;
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
{
141
pressedTimer
+=
delta
;
142
if
(
EInput
.
mpos
!=
EInput
.
dragStartPos
)
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:
160
clicked
=
pressedTimer
<
clickDuration
;
161
break
;
162
case
ClickCriteria
.ByMargin:
163
clicked
= !
draggedOverMargin
;
164
break
;
165
case
ClickCriteria
.ByDurationAndMargin:
166
clicked
= !
draggedOverMargin
&&
pressedTimer
<
clickDuration
;
167
break
;
168
}
169
if
(
clicked
)
170
{
171
timeSinceLastClick
= 0f;
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
));
194
usedKey
= (
usedMouse
= (
clicked
= (
doubleClicked
= (
dragging
= (
draggedOverMargin
= (
ignoreClick
=
false
))))));
195
}
196
}
ButtonState
Definition:
ButtonState.cs:5
ButtonState.up
bool up
Definition:
ButtonState.cs:33
ButtonState.ignoreClick
bool ignoreClick
Definition:
ButtonState.cs:49
ButtonState.Update
void Update()
Definition:
ButtonState.cs:80
ButtonState.dragging
bool dragging
Definition:
ButtonState.cs:43
ButtonState.dragging2
bool dragging2
Definition:
ButtonState.cs:45
ButtonState.usedKey
bool usedKey
Definition:
ButtonState.cs:55
ButtonState.pressing
bool pressing
Definition:
ButtonState.cs:35
ButtonState.mouse
int mouse
Definition:
ButtonState.cs:27
ButtonState.dragMargin
float dragMargin
Definition:
ButtonState.cs:25
ButtonState.clicked
bool clicked
Definition:
ButtonState.cs:37
ButtonState.pressedTimer
float pressedTimer
Definition:
ButtonState.cs:17
ButtonState.clickDuration
float clickDuration
Definition:
ButtonState.cs:23
ButtonState.delta
static float delta
Definition:
ButtonState.cs:13
ButtonState.doubleClicked
bool doubleClicked
Definition:
ButtonState.cs:39
ButtonState.Consume
void Consume()
Definition:
ButtonState.cs:184
ButtonState.wasConsumed
bool wasConsumed
Definition:
ButtonState.cs:51
ButtonState.timeSinceLastButtonDown
float timeSinceLastButtonDown
Definition:
ButtonState.cs:21
ButtonState.consumed
bool consumed
Definition:
ButtonState.cs:41
ButtonState.draggedOverMargin
bool draggedOverMargin
Definition:
ButtonState.cs:47
ButtonState.IsInDoubleClickDuration
bool IsInDoubleClickDuration()
Definition:
ButtonState.cs:75
ButtonState.usedMouse
bool usedMouse
Definition:
ButtonState.cs:53
ButtonState.id
string id
Definition:
ButtonState.cs:15
ButtonState.down
bool down
Definition:
ButtonState.cs:31
ButtonState.pressedLong
bool pressedLong
Definition:
ButtonState.cs:64
ButtonState.clickCriteria
ClickCriteria clickCriteria
Definition:
ButtonState.cs:59
ButtonState.Clear
void Clear()
Definition:
ButtonState.cs:190
ButtonState.timeSinceLastClick
float timeSinceLastClick
Definition:
ButtonState.cs:19
ButtonState.pressedLongAction
Action pressedLongAction
Definition:
ButtonState.cs:61
ButtonState.ignoreWheel
bool ignoreWheel
Definition:
ButtonState.cs:57
ButtonState.keymap
EInput.KeyMap keymap
Definition:
ButtonState.cs:29
ButtonState.ClickCriteria
ClickCriteria
Definition:
ButtonState.cs:7
ButtonState.ClickCriteria.ByDurationAndMargin
@ ByDurationAndMargin
ButtonState.ClickCriteria.ByMargin
@ ByMargin
ButtonState.ClickCriteria.ByDuration
@ ByDuration
EInput.KeyMap
Definition:
EInput.cs:11
EInput
Definition:
EInput.cs:8
EInput.isInputFieldActive
static bool isInputFieldActive
Definition:
EInput.cs:277
EInput.dragStartPos
static Vector3 dragStartPos
Definition:
EInput.cs:341
EInput.mpos
static Vector3 mpos
Definition:
EInput.cs:337
EInput.dragStartPos2
static Vector3 dragStartPos2
Definition:
EInput.cs:343
Elin
Plugins.basecore
ButtonState.cs
Generated by
1.9.6