Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ButtonState Class Reference

Public Types

enum  ClickCriteria { ByDuration , ByMargin , ByDurationAndMargin }
 

Public Member Functions

bool IsInDoubleClickDuration ()
 
void Update ()
 
void Consume ()
 
void Clear ()
 

Public Attributes

string id
 
float pressedTimer
 
float timeSinceLastClick
 
float timeSinceLastButtonDown
 
float clickDuration = 0.5f
 
float dragMargin = 12f
 
int mouse = -1
 
EInput.KeyMap keymap
 
bool down
 
bool up
 
bool pressing
 
bool clicked
 
bool doubleClicked
 
bool consumed
 
bool dragging
 
bool dragging2
 
bool draggedOverMargin
 
bool ignoreClick
 
bool wasConsumed
 
bool usedMouse
 
bool usedKey
 
bool ignoreWheel
 
ClickCriteria clickCriteria = ClickCriteria.ByDurationAndMargin
 
Action pressedLongAction
 

Static Public Attributes

static float delta
 

Properties

bool pressedLong [get]
 

Detailed Description

Definition at line 4 of file ButtonState.cs.

Member Enumeration Documentation

◆ ClickCriteria

Enumerator
ByDuration 
ByMargin 
ByDurationAndMargin 

Definition at line 6 of file ButtonState.cs.

Member Function Documentation

◆ Clear()

void ButtonState.Clear ( )
inline

Definition at line 190 of file ButtonState.cs.

191 {
192 pressedTimer = 0f;
193 down = (up = (pressing = false));
195 }
bool ignoreClick
Definition: ButtonState.cs:49
bool dragging
Definition: ButtonState.cs:43
bool usedKey
Definition: ButtonState.cs:55
bool pressing
Definition: ButtonState.cs:35
bool clicked
Definition: ButtonState.cs:37
float pressedTimer
Definition: ButtonState.cs:17
bool doubleClicked
Definition: ButtonState.cs:39
bool draggedOverMargin
Definition: ButtonState.cs:47
bool usedMouse
Definition: ButtonState.cs:53

References clicked, doubleClicked, down, draggedOverMargin, dragging, ignoreClick, pressedTimer, pressing, up, usedKey, and usedMouse.

Referenced by Consume(), and Update().

◆ Consume()

void ButtonState.Consume ( )
inline

Definition at line 184 of file ButtonState.cs.

185 {
186 Clear();
187 consumed = (wasConsumed = true);
188 }
bool wasConsumed
Definition: ButtonState.cs:51
bool consumed
Definition: ButtonState.cs:41
void Clear()
Definition: ButtonState.cs:190

References Clear(), consumed, and wasConsumed.

Referenced by EInput.Consume(), UIHangIcon.OnClick(), AM_BaseGameMode.OnUpdateInput(), ButtonAbility.TryUse(), and ActionMode.UpdateInput().

◆ IsInDoubleClickDuration()

bool ButtonState.IsInDoubleClickDuration ( )
inline

Definition at line 75 of file ButtonState.cs.

76 {
77 return timeSinceLastClick < 0.2f;
78 }
float timeSinceLastClick
Definition: ButtonState.cs:19

References timeSinceLastClick.

◆ Update()

void ButtonState.Update ( )
inline

Definition at line 80 of file ButtonState.cs.

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 }
bool dragging2
Definition: ButtonState.cs:45
float dragMargin
Definition: ButtonState.cs:25
float clickDuration
Definition: ButtonState.cs:23
static float delta
Definition: ButtonState.cs:13
ClickCriteria clickCriteria
Definition: ButtonState.cs:59
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

References Clear(), clickCriteria, clickDuration, clicked, consumed, delta, doubleClicked, down, draggedOverMargin, dragging, dragging2, dragMargin, EInput.dragStartPos, EInput.dragStartPos2, ignoreClick, ignoreWheel, EInput.isInputFieldActive, keymap, mouse, EInput.mpos, pressedTimer, pressing, timeSinceLastClick, up, usedKey, usedMouse, and wasConsumed.

Referenced by EInput.Update().

Member Data Documentation

◆ clickCriteria

ClickCriteria ButtonState.clickCriteria = ClickCriteria.ByDurationAndMargin

Definition at line 59 of file ButtonState.cs.

Referenced by Update().

◆ clickDuration

float ButtonState.clickDuration = 0.5f

Definition at line 23 of file ButtonState.cs.

Referenced by AM_Adv._OnUpdateInput(), and Update().

◆ clicked

◆ consumed

bool ButtonState.consumed

Definition at line 41 of file ButtonState.cs.

Referenced by Consume(), and Update().

◆ delta

float ButtonState.delta
static

Definition at line 13 of file ButtonState.cs.

Referenced by Update().

◆ doubleClicked

bool ButtonState.doubleClicked

Definition at line 39 of file ButtonState.cs.

Referenced by Clear(), and Update().

◆ down

◆ draggedOverMargin

bool ButtonState.draggedOverMargin

Definition at line 47 of file ButtonState.cs.

Referenced by AM_Sim._OnUpdateInput(), Clear(), and Update().

◆ dragging

bool ButtonState.dragging

◆ dragging2

bool ButtonState.dragging2

Definition at line 45 of file ButtonState.cs.

Referenced by Update(), and ActionMode.UpdateInput().

◆ dragMargin

float ButtonState.dragMargin = 12f

Definition at line 25 of file ButtonState.cs.

Referenced by Update().

◆ id

string ButtonState.id

Definition at line 15 of file ButtonState.cs.

◆ ignoreClick

bool ButtonState.ignoreClick

Definition at line 49 of file ButtonState.cs.

Referenced by Clear(), and Update().

◆ ignoreWheel

bool ButtonState.ignoreWheel

Definition at line 57 of file ButtonState.cs.

Referenced by Update().

◆ keymap

EInput.KeyMap ButtonState.keymap

Definition at line 29 of file ButtonState.cs.

Referenced by Update().

◆ mouse

int ButtonState.mouse = -1

Definition at line 27 of file ButtonState.cs.

Referenced by Update().

◆ pressedLongAction

Action ButtonState.pressedLongAction

Definition at line 61 of file ButtonState.cs.

Referenced by ActionMode.UpdateInput().

◆ pressedTimer

float ButtonState.pressedTimer

◆ pressing

◆ timeSinceLastButtonDown

float ButtonState.timeSinceLastButtonDown

Definition at line 21 of file ButtonState.cs.

◆ timeSinceLastClick

float ButtonState.timeSinceLastClick

Definition at line 19 of file ButtonState.cs.

Referenced by IsInDoubleClickDuration(), and Update().

◆ up

bool ButtonState.up

Definition at line 33 of file ButtonState.cs.

Referenced by Clear(), and Update().

◆ usedKey

bool ButtonState.usedKey

Definition at line 55 of file ButtonState.cs.

Referenced by Clear(), ButtonAbility.TryUse(), and Update().

◆ usedMouse

bool ButtonState.usedMouse

Definition at line 53 of file ButtonState.cs.

Referenced by Clear(), and Update().

◆ wasConsumed

bool ButtonState.wasConsumed

Definition at line 51 of file ButtonState.cs.

Referenced by Consume(), UIButton.OnPointerDown(), and Update().

Property Documentation

◆ pressedLong

bool ButtonState.pressedLong
get

The documentation for this class was generated from the following file: