Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_TutorialMapUIBase.c
Go to the documentation of this file.
2{
5 protected Widget m_wBaseIcon;
8 protected Widget m_wServices;
9 protected Widget m_wSymbolWidget
11 protected static Widget m_wServiceHint;
18 protected TextWidget m_wSuppliesText
21
22 protected bool m_bCanRespawn;
23 protected bool m_bCanPlaySounds = true;
24
26
27 SCR_TutorialFakeBaseComponent m_FakeBaseComp;
28
30
34
35 //------------------------------------------------------------------------------------------------
37 {
39 return;
40
42 symbol.SetIdentity(m_FakeBaseComp.m_eMilitarySymbolIdentity);
43 symbol.SetDimension(m_FakeBaseComp.m_eMilitarySymbolDimension);
44 symbol.SetIcons(m_FakeBaseComp.m_eMilitarySymbolIcon);
45 symbol.SetAmplifier(m_FakeBaseComp.m_eMilitarySymbolAplifier);
46
47 m_MilitarySymbol.Update(symbol);
48
49 m_wBaseName.SetText(m_FakeBaseComp.m_sBaseName);
50 m_wCallsignName.SetText(m_FakeBaseComp.m_sBaseCallSign);
51 m_wBaseNameDialog.SetText(m_FakeBaseComp.m_sBaseNameLonger);
52 m_wBaseNameDialog.SetColor(m_FakeBaseComp.m_BaseColor);
53 m_wSymbolWidget.SetColor(m_FakeBaseComp.m_BaseColor);
54
55 m_wImageOverlay.SetWidthOverride(m_FakeBaseComp.m_iWidthOverride);
56 m_wImageOverlay.SetHeightOverride(m_FakeBaseComp.m_iHeightOverride);
57
58 m_wAntennaImg.SetVisible(m_FakeBaseComp.m_bAntennaWidgetVisible);
59
60 m_wServices.SetVisible(m_FakeBaseComp.m_bAllowServices);
61 m_w_ServicesOverlay.SetVisible(m_FakeBaseComp.m_bAllowServicesSizeOverlay);
62 if (m_FakeBaseComp.m_bAllowServicesSizeOverlay)
64
65 m_wHighlightImg.LoadImageFromSet(0, m_sImageSetARO, m_FakeBaseComp.m_sHighlight);
66 }
67
68 //------------------------------------------------------------------------------------------------
71 {
72 Widget w = m_wServices.FindAnyWidget("ServicesSizeOverlay");
73 if (!w)
74 return;
75
76 m_wServices.SetVisible(false);
77 m_wServices.SetOpacity(0);
78
79 for (int serviceId = 0; serviceId < 8; ++serviceId)
80 {
81 string btnName = "Service" + serviceId.ToString();
82 Widget serviceBtn = w.FindAnyWidget(btnName);
83 serviceBtn.SetOpacity(0.5);
84
86 if (handler)
87 {
88 switch (serviceId)
89 {
90 case 0:
91 {
92 handler.SetImage(m_sArmory);
93 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.ARMORY))
94 serviceBtn.SetOpacity(1);
95
96 break;
97 }
98
99 case 1:
100 {
101 handler.SetImage(m_sHelipad);
102 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.HELIPAD))
103 serviceBtn.SetOpacity(1);
104
105 break;
106 }
107
108 case 2:
109 {
110 handler.SetImage(m_sBarracks);
111 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.BARRACKS))
112 serviceBtn.SetOpacity(1);
113
114 break;
115 }
116
117 case 3:
118 {
119 handler.SetImage(m_sFuelDepot);
120 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.FUEL_DEPOT))
121 serviceBtn.SetOpacity(1);
122
123 break;
124 }
125
126 case 4:
127 {
128 handler.SetImage(m_sRadioAntenna);
129 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.RADIO_ANTENNA))
130 serviceBtn.SetOpacity(1);
131
132 break;
133 }
134
135 case 5:
136 {
138 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.LIGHT_VEHICLE_DEPOT))
139 serviceBtn.SetOpacity(1);
140
141 break;
142 }
143
144 case 6:
145 {
147 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.HEAVY_VEHICLE_DEPOT))
148 serviceBtn.SetOpacity(1);
149
150 break;
151 }
152
153 case 7:
154 {
155 handler.SetImage(m_sFieldHospital);
156 if (SCR_Enum.HasFlag(m_FakeBaseComp.m_eServices, SCR_EFakeBaseServices.FIELD_HOSPITAL))
157 serviceBtn.SetOpacity(1);
158
159 break;
160 }
161 }
162 }
163 }
164 }
165
166 //------------------------------------------------------------------------------------------------
167 void SetFakeBase(SCR_TutorialFakeBaseComponent fakeBase)
168 {
169 m_FakeBaseComp = fakeBase;
170 }
171
172 //------------------------------------------------------------------------------------------------
173 override vector GetPos()
174 {
175 if (m_FakeBaseComp)
176 return m_FakeBaseComp.GetOwner().GetOrigin();
177
178 return vector.Zero;
179 }
180
181 //------------------------------------------------------------------------------------------------
182 override void SetImage(string image)
183 {
184 }
185
186 //------------------------------------------------------------------------------------------------
187 override bool OnMouseEnter(Widget w, int x, int y)
188 {
190 if (tm && !tm.IsTaskListOpen())
191 {
192 GetGame().GetWorkspace().SetFocusedWidget(w);
193 }
194
196 m_OnMapIconEnter.Invoke();
197
198 super.OnMouseEnter(w, x, y);
199
200 if (w.Type() == ButtonWidget)
201 AnimExpand();
202
203 /*if (m_Base)
204 {
205 m_Base.GetMapDescriptor().OnIconHovered(this, true);
206 */
207 if (m_wServices)
208 {
209 m_wServices.SetVisible(true);
210 m_wServices.SetEnabled(true);
211 }
212 //}
213
214 if (m_wInfoText)
215 {
216 m_wInfoText.SetVisible(true);
217 m_wRoot.SetZOrder(1);
218 }
219
220 /*if (m_MobileAssembly){
221 m_MobileAssembly.OnIconHovered(this, true);
222 m_wServices.SetVisible(true);
223 m_w_ServicesOverlay.SetVisible(false);
224 m_wRoot.SetZOrder(1);
225 }*/
226
227 m_FakeBaseComp.ColorLinks(true);
228
229 return false;
230 }
231
232 //------------------------------------------------------------------------------------------------
233 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
234 {
235 super.OnMouseLeave(w, enterW, x, y);
236
237 AnimCollapse();
238
239 if(m_wInfoText)
240 {
241 m_wInfoText.SetVisible(false);
242 m_wRoot.SetZOrder(0);
243 }
244
245 //if (m_Base)
246 // m_Base.GetMapDescriptor().OnIconHovered(this, false);
247
248 /*if (m_MobileAssembly)
249 m_MobileAssembly.OnIconHovered(this, false);
250 m_wInfoText.SetVisible(false);
251
252 if (!m_bCanRespawn && m_bIsRespawnMenu)
253 return false;
254 */
255
256 if (m_wServices)
257 m_wServices.SetEnabled(false);
258
259 //if (m_wLocalTask.IsEnabled())
260 // m_wLocalTask.SetVisible(true);
261
262 if (enterW)
263 m_bCanPlaySounds = w.FindHandler(SCR_CampaignMapUIService) == null;
264 else
265 m_bCanPlaySounds = true;
266
267 if (RenderTargetWidget.Cast(enterW) && m_wBaseOverlay.IsEnabled())
268 {
269 m_wBaseOverlay.SetEnabled(false); // disable the base widget when not hovered, deactivating the button
270 m_bCanPlaySounds = true;
271 }
272
273 m_FakeBaseComp.ColorLinks(false);
274
275 return false;
276 }
277
278 //------------------------------------------------------------------------------------------------
279 override void AnimCollapse()
280 {
281 m_wHighlightImg.SetVisible(false);
283 m_wGradient.SetVisible(false);
284
285 if (m_wServices)
286 {
288 }
289 }
290
291 //------------------------------------------------------------------------------------------------
292 override void AnimExpand()
293 {
294 /*if (!m_bIsAnyElementHovered && m_bCanPlaySounds)
295 {
296 switch (m_eIconType)
297 {
298 case SCR_EIconType.NONE:
299 {
300 } break;
301
302 case SCR_EIconType.BASE:
303 {
304 if (!m_bIsAnyElementClicked)
305 PlayHoverSound(m_sSoundBase);
306 } break;
307
308 case SCR_EIconType.ENEMY_BASE:
309 {
310 PlayHoverSound(m_sSoundEnemyBase);
311 } break;
312
313 case SCR_EIconType.RELAY:
314 {
315 PlayHoverSound(m_sSoundRelay);
316 } break;
317 }
318 }*/
319
320 //int paddingLeft = 0;
321 //int paddingRight = 0;
322 //int paddingBottom = 0;
323 int expand = -5;
324 /*if (m_mTasks.IsEmpty())
325 paddingRight = 0;
326 if (m_mServices.IsEmpty())
327 paddingLeft = 0;
328 */
329
330 if (m_wServices)
331 {
333 }
334
335 m_wHighlightImg.SetVisible(true);
336 if (m_wGradient)
337 m_wGradient.SetVisible(true);
338 }
339
340 //------------------------------------------------------------------------------
341 override void HandlerAttached(Widget w)
342 {
343 super.HandlerAttached(w);
344
345 m_wSymbolWidget = w.FindAnyWidget("SideSymbol");
346 if (m_wSymbolWidget)
348
349 m_wImageOverlay = SizeLayoutWidget.Cast(w.FindAnyWidget("SizeBaseIcon"));
350 m_wBaseOverlay = w.FindAnyWidget("ImageOverlay");
351 m_wInfoOverlay = w.FindAnyWidget("InfoOverlay");
352 m_wServices = w.FindAnyWidget("ServicesFrame");
353 m_w_ServicesOverlay = w.FindAnyWidget("ServicesSizeOverlay");
354 m_wBaseFrame = w.FindAnyWidget("BaseFrame");
355 m_wBaseIcon = w.FindAnyWidget("SideSymbol");
356 m_wBaseName = TextWidget.Cast(w.FindAnyWidget("Name"));
357 m_wCallsignName = TextWidget.Cast(w.FindAnyWidget("Callsign"));
358 m_wBaseNameDialog = TextWidget.Cast(w.FindAnyWidget("m_w_NameDialog"));
359 m_wCallsignNameDialog = TextWidget.Cast(w.FindAnyWidget("Callsign-Dialog"));
360 m_wInfoText = w.FindAnyWidget("Info");
361 m_wAntennaImg = w.FindAnyWidget("AntenaOff");
362 m_wLocalTask = ImageWidget.Cast(w.FindAnyWidget("LocalTask"));
363
364 if (m_wInfoText)
365 m_wSuppliesText = TextWidget.Cast(m_wInfoText.FindAnyWidget("Supplies"));
366
367 m_wServices.SetVisible(false);
368 m_wServices.SetOpacity(0);
369 }
370}
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_EFakeBaseServices
static WidgetAnimationOpacity Opacity(Widget widget, float targetValue, float speed, bool toggleVisibility=false)
override void SetImage(string image)
ResourceName m_sImageSetARO
const float ANIM_SPEED
ImageWidget m_wGradient
ImageWidget m_wHighlightImg
void SetDimension(EMilitarySymbolDimension dimension)
void SetIcons(EMilitarySymbolIcon icons)
void SetAmplifier(EMilitarySymbolAmplifier amplifier)
void SetIdentity(EMilitarySymbolIdentity identity)
static SCR_TaskManagerUIComponent GetInstance()
ref ScriptInvoker m_OnMapIconEnter
SCR_TutorialFakeBaseComponent m_FakeBaseComp
override bool OnMouseEnter(Widget w, int x, int y)
override void SetImage(string image)
SizeLayoutWidget m_wImageOverlay
ref ScriptInvoker m_OnMapIconClick
override void HandlerAttached(Widget w)
ref ScriptInvoker m_OnBaseSelected
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
void SetFakeBase(SCR_TutorialFakeBaseComponent fakeBase)
SCR_MilitarySymbolUIComponent m_MilitarySymbol
static ref ScriptInvoker Event_OnIconUpdated
ScriptInvokerBase< func > ScriptInvoker
Definition tools.c:134