Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_EditorToggleUIComponent.c
Go to the documentation of this file.
1
2
3
class
SCR_EditorToggleUIComponent
:
ScriptedWidgetComponent
4
{
5
[
Attribute
()]
6
protected
string
m_sProgressWidgetName
;
7
8
[
Attribute
()]
9
protected
string
m_sInitLoadingWidgetName
;
10
11
[
Attribute
()]
12
protected
string
m_sLoadingWidgetName
;
13
14
[
Attribute
()]
15
protected
string
m_sBlurName
;
16
17
[
Attribute
()]
18
protected
string
m_sAutoInitName
;
19
20
[
Attribute
(
"0.4"
,
desc
:
"When the actual charging starts. This should be after ping is evaluated. Thinging this value also means changing the process min of m_RadialProcessBar and the Ping input!"
)]
21
protected
float
m_fChargeThreshold
;
22
23
protected
SCR_EditorManagerEntity
m_EditorManager
;
24
protected
MenuManager
m_MenuManager
;
25
protected
Widget
m_Widget
;
26
protected
Widget
m_Blur
;
27
protected
Widget
m_AutoInit
;
28
protected
Widget
m_ProgressWidget
;
29
protected
SCR_ImageRadialProgressBarUIComponent
m_RadialProcessBar
;
30
protected
SCR_FadeUIComponent
m_LoadingWidget
;
31
protected
SCR_FadeUIComponent
m_InitLoadingWidget
;
32
33
//State
34
protected
bool
m_bCharging
;
35
36
//------------------------------------------------------------------------------------------------
37
protected
void
ChargeStart
()
38
{
39
if
(
m_MenuManager
.IsAnyDialogOpen() ||
m_EditorManager
.GetCurrentModeEntity().GetPreventClose())
40
return
;
41
42
m_bCharging
=
true
;
43
m_Blur
.SetVisible(
true
);
44
45
if
(
m_Widget
.IsVisible())
46
return
;
47
48
m_Widget
.SetVisible(
true
);
49
m_RadialProcessBar
.FadeImage(
true
);
50
m_ProgressWidget
.SetVisible(
true
);
51
m_LoadingWidget
.GetFadeWidget().SetVisible(
false
);
52
}
53
54
//------------------------------------------------------------------------------------------------
55
protected
void
ChargeFail
()
56
{
57
m_bCharging
=
false
;
58
m_Blur
.SetVisible(
false
);
59
m_Widget
.SetVisible(
false
);
60
61
if
(
m_RadialProcessBar
.GetProgress() ==
m_RadialProcessBar
.GetMaxProgress() ||
m_RadialProcessBar
.GetProgress() <=
m_RadialProcessBar
.GetMinProgress())
62
return
;
63
64
m_RadialProcessBar
.InstantProgressMaxMin(
false
);
65
}
66
67
//------------------------------------------------------------------------------------------------
68
protected
void
WaitStart
()
69
{
70
SCR_EditorModeEntity
mode =
m_EditorManager
.GetCurrentModeEntity();
71
if
(mode)
72
mode.GetInfo().
SetIconTo
(
m_RadialProcessBar
.GetFadeImage());
73
74
if
(!
m_Widget
.IsVisible())
75
{
76
m_AutoInit
.SetVisible(
m_EditorManager
.IsAutoInit());
77
m_Blur
.SetVisible(
true
);
78
m_Widget
.SetVisible(
true
);
79
m_RadialProcessBar
.InstantProgressMaxMin(
false
);
80
m_RadialProcessBar
.FadeImage(
true
);
81
//m_InitLoadingWidget.FadeIn();
82
m_LoadingWidget
.FadeIn();
83
}
84
85
if
(
m_InitLoadingWidget
&&
m_EditorManager
.IsAutoInit())
86
m_InitLoadingWidget
.FadeIn();
87
}
88
89
//------------------------------------------------------------------------------------------------
90
protected
void
WaitEnd
()
91
{
92
m_RadialProcessBar
.SetProgress(
m_RadialProcessBar
.GetMinProgress());
93
94
if
(
m_AutoInit
.IsVisible())
95
{
96
AnimateWidget
.
Opacity
(
m_AutoInit
, 0,
UIConstants
.FADE_RATE_SUPER_SLOW);
97
98
if
(
m_InitLoadingWidget
)
99
m_InitLoadingWidget
.FadeOut(
true
);
100
}
101
102
m_Blur
.SetVisible(
false
);
103
m_LoadingWidget
.FadeOut(
false
);
104
}
105
106
//------------------------------------------------------------------------------------------------
107
protected
void
OnRadialProgressFadeDone
(
SCR_ImageRadialProgressBarUIComponent
radial,
bool
isFadeIn)
108
{
109
if
(!
m_bCharging
&& !isFadeIn)
110
{
111
m_RadialProcessBar
.InstantProgressMaxMin(
false
);
112
m_Widget
.SetVisible(
false
);
113
}
114
}
115
116
//------------------------------------------------------------------------------------------------
117
protected
void
OnEditorToggleValue
(
float
value,
EActionTrigger
reason
)
118
{
119
SCR_EditorModeEntity
mode =
m_EditorManager
.GetCurrentModeEntity();
120
121
if
(
m_MenuManager
.IsAnyDialogOpen() || mode && mode.GetPreventClose())
122
ChargeFail
();
123
124
if
(value == 0)
125
{
126
//Charge has failed
127
if
(
m_bCharging
)
128
ChargeFail
();
129
130
return
;
131
}
132
//If cannot open editor
133
else
if
(!
m_EditorManager
|| !
m_EditorManager
.CanToggle())
134
{
135
//Safty if rights where removed
136
if
(
m_bCharging
)
137
ChargeFail
();
138
139
return
;
140
}
141
//Visualize the charge only after ping input time window
142
else
if
(value <
m_fChargeThreshold
)
143
{
144
return
;
145
}
146
147
if
(!
m_bCharging
)
148
ChargeStart
();
149
else
150
m_RadialProcessBar
.SetProgress(value);
151
}
152
153
//------------------------------------------------------------------------------------------------
154
protected
void
OnEditorToggleDone
()
155
{
156
//Editor failed to open, terminate
157
if
(!
m_EditorManager
.IsInTransition())
158
ChargeFail
();
159
160
m_bCharging
=
false
;
161
}
162
163
//------------------------------------------------------------------------------------------------
164
protected
void
OnRequest
()
165
{
166
WaitStart
();
167
}
168
169
//------------------------------------------------------------------------------------------------
170
protected
void
OnRequestEnd
()
171
{
172
m_bCharging
=
false
;
173
WaitEnd
();
174
}
175
176
//------------------------------------------------------------------------------------------------
177
protected
void
OnAsyncLoad
(
float
progress)
178
{
179
if
(progress < 1)
180
WaitStart
();
181
else
182
WaitEnd
();
183
}
184
185
//------------------------------------------------------------------------------------------------
186
override
void
HandlerAttached
(
Widget
w)
187
{
188
if
(
SCR_Global
.
IsEditMode
())
189
return
;
190
191
m_EditorManager
=
SCR_EditorManagerEntity
.GetInstance();
192
if
(!
m_EditorManager
)
193
return
;
194
195
InputManager
inputManager =
GetGame
().GetInputManager();
196
if
(!inputManager)
197
return
;
198
199
m_ProgressWidget
= w.FindWidget(
m_sProgressWidgetName
);
200
if
(!
m_ProgressWidget
)
201
{
202
Print
(
string
.Format(
"ProgressBarWidget '%1' not found!"
,
m_sProgressWidgetName
),
LogLevel
.WARNING);
203
return
;
204
}
205
206
m_RadialProcessBar
=
SCR_ImageRadialProgressBarUIComponent
.Cast(
m_ProgressWidget
.GetChildren().FindHandler(
SCR_ImageRadialProgressBarUIComponent
));
207
if
(!
m_RadialProcessBar
)
208
return
;
209
210
m_RadialProcessBar
.GetOnFadeDone().Insert(
OnRadialProgressFadeDone
);
211
212
m_Blur
= w.FindWidget(
m_sBlurName
);
213
m_AutoInit
= w.FindWidget(
m_sAutoInitName
);
214
m_AutoInit
.SetVisible(
false
);
215
216
Widget
loadingWidget = w.FindAnyWidget(
m_sLoadingWidgetName
);
217
m_LoadingWidget
=
SCR_FadeUIComponent
.Cast(loadingWidget.FindHandler(
SCR_FadeUIComponent
));
218
m_LoadingWidget
.GetFadeWidget().SetVisible(
false
);
219
220
Widget
initLoadingWidget = w.FindAnyWidget(
m_sInitLoadingWidgetName
);
221
m_InitLoadingWidget
=
SCR_FadeUIComponent
.Cast(initLoadingWidget.FindHandler(
SCR_FadeUIComponent
));
222
223
m_Widget
= w;
224
m_Widget
.SetVisible(
false
);
225
226
m_EditorManager
.GetOnRequest().Insert(
OnRequest
);
227
m_EditorManager
.GetOnOpened().Insert(
OnRequestEnd
);
228
m_EditorManager
.GetOnClosed().Insert(
OnRequestEnd
);
229
m_EditorManager
.GetOnAsyncLoad().Insert(
OnAsyncLoad
);
230
231
inputManager.AddActionListener(
"EditorToggle"
,
EActionTrigger
.VALUE,
OnEditorToggleValue
);
232
inputManager.AddActionListener(
"EditorToggle"
,
EActionTrigger
.UP,
OnEditorToggleDone
);
233
234
m_MenuManager
=
GetGame
().GetMenuManager();
235
}
236
237
//------------------------------------------------------------------------------------------------
238
override
void
HandlerDeattached
(
Widget
w)
239
{
240
if
(
m_EditorManager
)
241
{
242
m_EditorManager
.GetOnRequest().Remove(
OnRequest
);
243
m_EditorManager
.GetOnOpened().Remove(
OnRequestEnd
);
244
m_EditorManager
.GetOnClosed().Remove(
OnRequestEnd
);
245
m_EditorManager
.GetOnAsyncLoad().Remove(
OnAsyncLoad
);
246
}
247
248
InputManager
inputManager =
GetGame
().GetInputManager();
249
if
(inputManager)
250
{
251
inputManager.RemoveActionListener(
"EditorToggle"
,
EActionTrigger
.VALUE,
OnEditorToggleValue
);
252
inputManager.RemoveActionListener(
"EditorToggle"
,
EActionTrigger
.UP,
OnEditorToggleDone
);
253
254
}
255
256
if
(
m_RadialProcessBar
)
257
m_RadialProcessBar
.GetOnFadeDone().Remove(
OnRadialProgressFadeDone
);
258
}
259
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_EditorManagerEntity
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
Definition
SCR_EditorManagerEntity.c:2211
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
reason
string reason
Definition
ServerBrowserMenuCallbacks.c:41
AnimateWidget
Definition
AnimateWidget.c:3
AnimateWidget::Opacity
static WidgetAnimationOpacity Opacity(Widget widget, float targetValue, float speed, bool toggleVisibility=false)
Definition
AnimateWidget.c:167
InputManager
Input management system for user interactions.
Definition
InputManager.c:20
MenuManager
Definition
MenuManager.c:13
SCR_EditorModeEntity
Definition
SCR_EditorModeEntity.c:23
SCR_EditorToggleUIComponent
Definition
SCR_EditorToggleUIComponent.c:4
SCR_EditorToggleUIComponent::m_sLoadingWidgetName
string m_sLoadingWidgetName
Definition
SCR_EditorToggleUIComponent.c:12
SCR_EditorToggleUIComponent::m_AutoInit
Widget m_AutoInit
Definition
SCR_EditorToggleUIComponent.c:27
SCR_EditorToggleUIComponent::OnRequestEnd
void OnRequestEnd()
Definition
SCR_EditorToggleUIComponent.c:170
SCR_EditorToggleUIComponent::HandlerDeattached
override void HandlerDeattached(Widget w)
Definition
SCR_EditorToggleUIComponent.c:238
SCR_EditorToggleUIComponent::OnAsyncLoad
void OnAsyncLoad(float progress)
Definition
SCR_EditorToggleUIComponent.c:177
SCR_EditorToggleUIComponent::m_RadialProcessBar
SCR_ImageRadialProgressBarUIComponent m_RadialProcessBar
Definition
SCR_EditorToggleUIComponent.c:29
SCR_EditorToggleUIComponent::m_fChargeThreshold
float m_fChargeThreshold
Definition
SCR_EditorToggleUIComponent.c:21
SCR_EditorToggleUIComponent::ChargeFail
void ChargeFail()
Definition
SCR_EditorToggleUIComponent.c:55
SCR_EditorToggleUIComponent::m_EditorManager
SCR_EditorManagerEntity m_EditorManager
Definition
SCR_EditorToggleUIComponent.c:23
SCR_EditorToggleUIComponent::m_InitLoadingWidget
SCR_FadeUIComponent m_InitLoadingWidget
Definition
SCR_EditorToggleUIComponent.c:31
SCR_EditorToggleUIComponent::OnEditorToggleDone
void OnEditorToggleDone()
Definition
SCR_EditorToggleUIComponent.c:154
SCR_EditorToggleUIComponent::m_ProgressWidget
Widget m_ProgressWidget
Definition
SCR_EditorToggleUIComponent.c:28
SCR_EditorToggleUIComponent::OnRadialProgressFadeDone
void OnRadialProgressFadeDone(SCR_ImageRadialProgressBarUIComponent radial, bool isFadeIn)
Definition
SCR_EditorToggleUIComponent.c:107
SCR_EditorToggleUIComponent::HandlerAttached
override void HandlerAttached(Widget w)
Definition
SCR_EditorToggleUIComponent.c:186
SCR_EditorToggleUIComponent::m_bCharging
bool m_bCharging
Definition
SCR_EditorToggleUIComponent.c:34
SCR_EditorToggleUIComponent::OnRequest
void OnRequest()
Definition
SCR_EditorToggleUIComponent.c:164
SCR_EditorToggleUIComponent::m_sAutoInitName
string m_sAutoInitName
Definition
SCR_EditorToggleUIComponent.c:18
SCR_EditorToggleUIComponent::m_Widget
Widget m_Widget
Definition
SCR_EditorToggleUIComponent.c:25
SCR_EditorToggleUIComponent::m_sBlurName
string m_sBlurName
Definition
SCR_EditorToggleUIComponent.c:15
SCR_EditorToggleUIComponent::m_LoadingWidget
SCR_FadeUIComponent m_LoadingWidget
Definition
SCR_EditorToggleUIComponent.c:30
SCR_EditorToggleUIComponent::WaitEnd
void WaitEnd()
Definition
SCR_EditorToggleUIComponent.c:90
SCR_EditorToggleUIComponent::m_sInitLoadingWidgetName
string m_sInitLoadingWidgetName
Definition
SCR_EditorToggleUIComponent.c:9
SCR_EditorToggleUIComponent::m_MenuManager
MenuManager m_MenuManager
Definition
SCR_EditorToggleUIComponent.c:24
SCR_EditorToggleUIComponent::OnEditorToggleValue
void OnEditorToggleValue(float value, EActionTrigger reason)
Definition
SCR_EditorToggleUIComponent.c:117
SCR_EditorToggleUIComponent::m_sProgressWidgetName
string m_sProgressWidgetName
Definition
SCR_EditorToggleUIComponent.c:6
SCR_EditorToggleUIComponent::ChargeStart
void ChargeStart()
Definition
SCR_EditorToggleUIComponent.c:37
SCR_EditorToggleUIComponent::m_Blur
Widget m_Blur
Definition
SCR_EditorToggleUIComponent.c:26
SCR_EditorToggleUIComponent::WaitStart
void WaitStart()
Definition
SCR_EditorToggleUIComponent.c:68
SCR_FadeUIComponent
Definition
SCR_FadeUIComponent.c:2
SCR_Global
Definition
Functions.c:7
SCR_Global::IsEditMode
static bool IsEditMode()
Definition
Functions.c:1566
SCR_ImageRadialProgressBarUIComponent
Definition
SCR_ImageRadialProgressBarUIComponent.c:2
SCR_UIInfo::SetIconTo
bool SetIconTo(ImageWidget imageWidget)
Definition
SCR_UIInfo.c:102
ScriptedWidgetComponent
Definition
ScriptedWidgetComponent.c:13
UIConstants
Definition
Constants.c:151
Widget
Definition
Widget.c:13
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
EActionTrigger
EActionTrigger
Definition
EActionTrigger.c:13
scripts
Game
Editor
UI
Components
Common
SCR_EditorToggleUIComponent.c
Generated by
1.17.0