Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
gesturesmenu.c
Go to the documentation of this file.
11
13{
14 protected int m_ID;
15 protected string m_Name;
18 protected bool m_CanPerformEmote;
19 //radial menu
20 protected Widget m_RadialMenuSelector;
21 protected Widget m_RadialMenuItemCard;
22
23 void GestureMenuItem(int id, string name, GestureCategories category)
24 {
25 m_ID = id;
26 m_Name = name;
27 m_Category = category;
28 m_CanPerformEmote = true;
29
30 PlayerBase player;
31 if (Class.CastTo(player,GetGame().GetPlayer()) && category != GestureCategories.CATEGORIES)
32 {
33 m_EmoteClass = player.GetEmoteManager().GetNameEmoteMap().Get(id);
34 }
35 }
36
37 string GetName()
38 {
39 return m_Name;
40 }
41
43 {
44 string ret = "";
45 if (GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer() && m_EmoteClass && m_EmoteClass.GetInputActionName() != "")
46 {
48
49 if (button_map && button_map.Count() > 0)
50 {
51 TStringArray buttons;
52 for (int j = 0; j < button_map.Count(); j++)
53 {
54 if (j > 0)
55 {
56 ret += "; ";
57 }
58
59 buttons = button_map.GetElement(j);
60 for (int i = 0; i < buttons.Count(); i++)
61 {
62 if (i > 0)
63 {
64 ret += " + ";
65 }
66 ret += buttons[i];
67 }
68 }
69
70 }
71 }
72 return ret;
73 }
74
75 int GetID()
76 {
77 return m_ID;
78 }
79
84
86 {
88 }
89
90 void SetRadialItemCard( Widget widget )
91 {
92 m_RadialMenuItemCard = widget;
93 }
94
95 void SetCanPerformEmote(bool state)
96 {
97 m_CanPerformEmote = state;
98 }
99
101 {
102 return m_CanPerformEmote;
103 }
104}
105
106class GesturesMenu extends UIScriptedMenu
107{
108 protected Widget m_GestureItemCardPanel;
110 protected Widget m_ToolbarPanel;
111
112 protected TextWidget m_CategoryNameText;
113
114 //
115 const string RADIAL_TEXT = "RadialText";
116 const string GESTURE_TEXT = "GestureNameText";
117 const string INPUT_TEXT = "InputActionText";
118 const string CATEGORY_NAME = "CategoryName";
119 //selections
120 protected Widget m_SelectedItem;
121 protected bool m_IsCategorySelected;
122 protected bool m_IsMenuClosing;
123 protected int m_CurrentCategory;
124
125 //instance
126 static GesturesMenu instance;
127
128 //============================================
129 // GesturesMenu
130 //============================================
132 {
133 m_GestureItems = new array<ref GestureMenuItem>;
134
135 if ( !instance )
136 {
137 instance = this;
138 }
139
140 GetGame().GetMission().GetOnInputPresetChanged().Insert(OnInputPresetChanged);
141 }
142
144 {
145 if (GetGame() && GetGame().GetMission())
146 {
147 GetGame().GetMission().RemoveActiveInputExcludes({"radialmenu"},false);
148 }
149 }
150
151 //============================================
152 // Menu Controls
153 //============================================
154 static void OpenMenu()
155 {
156 GetGame().GetUIManager().EnterScriptedMenu( MENU_GESTURES, NULL );
157 }
158
159 static void CloseMenu()
160 {
161 //execute on menu release
162 instance.OnMenuRelease();
163
164 GetGame().GetUIManager().Back();
165
166 //GetGame().GetMission().RemoveActiveInputExcludes({"radialmenu"},false);
167 }
168
169 static bool CanOpenMenu()
170 {
171 if (!instance)
172 {
173 PlayerBase player;
175 if (Class.CastTo(player,GetGame().GetPlayer()) && Class.CastTo(hic,player.GetInputController()) && hic.WeaponADS())
176 return false;
177 else
178 return true;
179 }
180 return false;
181 }
182
183 protected void OnInputPresetChanged()
184 {
185 #ifdef PLATFORM_CONSOLE
187 #endif
188 }
189
190 //============================================
191 // Init & Widget Events
192 //============================================
193 override Widget Init()
194 {
195 m_CurrentCategory = -1;
196
197 layoutRoot = GetGame().GetWorkspace().CreateWidgets( "gui/layouts/radial_menu/radial_gestures/day_z_gestures.layout" );
198 m_GestureItemCardPanel = layoutRoot.FindAnyWidget( RadialMenu.RADIAL_ITEM_CARD_CONTAINER );
199
200 //register gestures menu
201 RadialMenu.GetInstance().RegisterClass( this );
202
203 //delay updates until fully initialized
204 RadialMenu.GetInstance().SetWidgetInitialized(false);
205
206 //set radial menu properties
207 RadialMenu.GetInstance().SetWidgetProperties( "gui/layouts/radial_menu/radial_gestures/day_z_gesture_delimiter.layout" );
208
209 //create content (widgets) for items
210 RefreshGestures();
211
212 m_ToolbarPanel = layoutRoot.FindAnyWidget( "toolbar_bg" );
213 m_ToolbarPanel.Show( true );
214
215 //clear category name text
216 UpdateCategoryName( "" );
217
218 return layoutRoot;
219 }
220
221 override void OnShow()
222 {
223 super.OnShow();
224
225 Mission mission = GetGame().GetMission();
226 if (mission)
227 {
228 IngameHud hud = IngameHud.Cast(mission.GetHud());
229 if (hud)
230 {
231 hud.ShowQuickbarUI(false);
232 }
233 }
234
235 SetFocus(layoutRoot);
236 m_IsMenuClosing = false;
237 }
238
239 override void OnHide()
240 {
241 super.OnHide();
242
243 Mission mission = GetGame().GetMission();
244 if (mission)
245 {
246 IngameHud hud = IngameHud.Cast(mission.GetHud());
247 if (hud)
248 {
249 hud.ShowQuickbarUI(true);
250 }
251 }
252
253 m_IsMenuClosing = true;
254 }
255
256 override bool OnController( Widget w, int control, int value )
257 {
258 super.OnController( w, control, value );
259
260 RadialMenu.GetInstance().SetControlType( RadialMenuControlType.CONTROLLER );
261
262 return false;
263 }
264
265 override bool OnMouseEnter( Widget w, int x, int y )
266 {
267 super.OnMouseEnter( w, x, y );
268
269 RadialMenu.GetInstance().SetControlType( RadialMenuControlType.MOUSE );
270
271 return false;
272 }
273
274 override bool UseMouse()
275 {
276 return true;
277 }
278
279 override bool UseGamepad()
280 {
281 return true;
282 }
283
284 override void Update(float timeslice)
285 {
286 super.Update(timeslice);
287
288 //RefreshGestures(m_CurrentCategory);
289 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
290 if (m_CurrentCategory != GestureCategories.CATEGORIES && m_CurrentCategory != -1 && player)
291 {
292 for (int i = 0; i < m_GestureItems.Count(); i++)
293 {
294 UpdateQuickbarItemCard(m_GestureItems[i]);
295 }
296 }
297 }
298
300 {
301 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
302 if (player && m_CurrentCategory != -1)
303 {
304 bool can = player.GetEmoteManager().CanPlayEmote(gesture_item.GetID()) && !player.GetEmoteManager().IsEmotePlaying();
305 gesture_item.SetCanPerformEmote(can);
306 }
307 }
308
309 //============================================
310 // Gestures
311 //============================================
312 protected void RefreshGestures( GestureCategories category_id = -1 )
313 {
314 //create gestures content (widgets) based on categories
315 if ( category_id > -1 )
316 {
317 GetGestureItems( m_GestureItems, category_id);
318 m_CurrentCategory = category_id;
319 }
320 else
321 {
322 GetGestureItems( m_GestureItems, GestureCategories.CATEGORIES );
323 m_CurrentCategory = -1;
324 instance.m_IsCategorySelected = false;
325 }
326
327 CreateGestureContent();
329 }
330
331 protected void GetGestureItems( out array<ref GestureMenuItem> gesture_items, GestureCategories category )
332 {
333 gesture_items.Clear();
334
335 //PC PLATFORM
336 //All categories
337 if ( category == GestureCategories.CATEGORIES )
338 {
339 gesture_items.Insert( new GestureMenuItem( GestureCategories.CATEGORY_1, "#STR_USRACT_EMOTE_CATEGORY_COMMS", category ) );
340 gesture_items.Insert( new GestureMenuItem( GestureCategories.CATEGORY_2, "#STR_USRACT_EMOTE_CATEGORY_INTERACTIONS", category ) );
341 gesture_items.Insert( new GestureMenuItem( GestureCategories.CATEGORY_3, "#STR_USRACT_EMOTE_CATEGORY_POSES", category ) );
342 gesture_items.Insert( new GestureMenuItem( GestureCategories.CATEGORY_4, "#STR_USRACT_EMOTE_CATEGORY_MISC", category ) );
343 }
344 //Category 1 - commands
345 else if ( category == GestureCategories.CATEGORY_1 )
346 {
347 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_POINT, "#STR_USRACT_ID_EMOTE_POINT", category ) );
348 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_MOVE, "#STR_USRACT_ID_EMOTE_MOVE", category ) );
349 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_HOLD, "#STR_USRACT_ID_EMOTE_HOLD", category ) );
350 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_LISTENING, "#STR_USRACT_ID_EMOTE_LISTENING", category ) );
351 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_DOWN, "#STR_USRACT_ID_EMOTE_DOWN", category ) );
352 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SILENT, "#STR_USRACT_ID_EMOTE_SILENT", category ) );
353 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_WATCHING, "#STR_USRACT_ID_EMOTE_WATCHING", category ) );
354 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_POINTSELF, "#STR_USRACT_ID_EMOTE_POINTSELF", category ) );
355 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_COME, "#STR_USRACT_ID_EMOTE_COME", category ) );
356 }
357 //Category 2 - interaction
358 else if ( category == GestureCategories.CATEGORY_2 )
359 {
360 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_GREETING, "#STR_USRACT_ID_EMOTE_GREETING", category ) );
361 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_TAUNT, "#STR_USRACT_ID_EMOTE_TAUNT", category ) );
362 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SHAKE, "#STR_USRACT_ID_EMOTE_SHAKE", category ) );
363 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_NOD, "#STR_USRACT_ID_EMOTE_NOD", category ) );
364 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_LOOKATME, "#STR_USRACT_ID_EMOTE_LOOKATME", category ) );
365 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_TAUNTELBOW, "#STR_USRACT_ID_EMOTE_TAUNTELBOW", category ) );
366 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_THUMB, "#STR_USRACT_ID_EMOTE_THUMB", category ) );
367 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_THUMBDOWN, "#STR_USRACT_ID_EMOTE_THUMBDOWN", category ) );
368 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_CLAP, "#STR_USRACT_ID_EMOTE_CLAP", category ) );
369 }
370 //Category 3 - poses
371 else if ( category == GestureCategories.CATEGORY_3 )
372 {
373 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SUICIDE, "#STR_USRACT_ID_EMOTE_SUICIDE", category ) );
374 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SURRENDER, "#STR_USRACT_ID_EMOTE_SURRENDER", category ) );
375 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SALUTE, "#STR_USRACT_ID_EMOTE_SALUTE", category ) );
376 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SITB, "#STR_USRACT_ID_EMOTE_SITB", category ) );
377 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_LYINGDOWN, "#STR_USRACT_ID_EMOTE_LYINGDOWN", category ) );
378 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SITA, "#STR_USRACT_ID_EMOTE_SITA", category ) );
379 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_CAMPFIRE, "#STR_USRACT_ID_EMOTE_CAMPFIRE", category ) );
380 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SHRUG, "#STR_USRACT_ID_EMOTE_SHRUG", category ) );
381 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_SOS, "#STR_USRACT_ID_EMOTE_SOS", category ) );
382 }
383 //Category 4 - special
384 else if ( category == GestureCategories.CATEGORY_4 )
385 {
386 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_DANCE, "#STR_USRACT_ID_EMOTE_DANCE", category ) );
387 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_HEART, "#STR_USRACT_ID_EMOTE_HEART", category ) );
388 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_FACEPALM, "#STR_USRACT_ID_EMOTE_FACEPALM", category ) );
389 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_TIMEOUT, "#STR_USRACT_ID_EMOTE_TIMEOUT", category ) );
390 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_THROAT, "#STR_USRACT_ID_EMOTE_THROAT", category ) );
391 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_VOMIT, "#STR_USRACT_ID_EMOTE_VOMIT", category ) );
392 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_RPS, "#STR_USRACT_ID_EMOTE_RPS", category ) );
393 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_TAUNTTHINK, "#STR_USRACT_ID_EMOTE_TAUNTTHINK", category ) );
394 gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_TAUNTKISS, "#STR_USRACT_ID_EMOTE_TAUNTKISS", category ) );
395 //gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_RPS_R, "#STR_USRACT_ID_EMOTE_RPS_R", category ) );
396 //gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_RPS_P, "#STR_USRACT_ID_EMOTE_RPS_P", category ) );
397 //gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_RPS_S, "#STR_USRACT_ID_EMOTE_RPS_S", category ) );
398 //gesture_items.Insert( new GestureMenuItem( EmoteConstants.ID_EMOTE_DEBUG, "ID_EMOTE_DEBUG", category ) );
399 }
400 }
401
402 protected void CreateGestureContent()
403 {
404 //delete existing gesture widgets
405 DeleteGestureItems();
406
407 for ( int i = 0; i < m_GestureItems.Count(); ++i )
408 {
409 GestureMenuItem gesture_item = m_GestureItems.Get( i );
410
411 //create item card
412 Widget gesture_item_card_widget = Widget.Cast( GetGame().GetWorkspace().CreateWidgets( "gui/layouts/radial_menu/radial_gestures/day_z_gesture_item_card.layout", m_GestureItemCardPanel ) );
413 gesture_item.SetRadialItemCard( gesture_item_card_widget );
414
415 //update item card widget
416 UpdateQuickbarItemCard( gesture_item );
417
418 //set data
419 gesture_item_card_widget.SetUserData( gesture_item );
420 }
421
422 //set radial parameters for content
423 if ( m_GestureItems.Count() > 0 )
424 {
425 RadialMenu radial_menu = RadialMenu.GetInstance();
426 radial_menu.SetRadiusOffset( 0 );
427 radial_menu.SetExecuteDistOffset( 0.5 );
428 radial_menu.SetOffsetFromTop( 0 );
429 radial_menu.SetItemCardRadiusOffset( 0.25 );
430 radial_menu.ActivateControllerTimeout( false );
431 }
432
433 //refresh radial menu
434 RadialMenu.GetInstance().Refresh();
435 }
436
437 protected void UpdateQuickbarItemCard( GestureMenuItem gesture_item )
438 {
439 Widget gesture_item_card_widget = gesture_item.GetRadialItemCard();
440 //texts
441 RichTextWidget gesture_text = RichTextWidget.Cast( gesture_item_card_widget.FindAnyWidget( GESTURE_TEXT ) );
442 RichTextWidget input_text = RichTextWidget.Cast( gesture_item_card_widget.FindAnyWidget( INPUT_TEXT ) );
443 gesture_text.SetText( gesture_item.GetName() );
444 bool input_name_available = gesture_item.GetBoundButtonText() != "";
445 input_text.Show(input_name_available);
446 if (input_name_available)
447 {
448 input_text.SetText(gesture_item.GetBoundButtonText());
449 }
450 //coloring
451 ProcessEmoteConditionRequest(gesture_item);
452 if (gesture_item.GetCanPerformEmote())
453 {
454 gesture_item_card_widget.SetFlags(WidgetFlags.DISABLED); //flag just seems to be...'there', useful for showing radial selector. Still...
455 gesture_text.SetColor(ARGB(255,255,255,255));
456 input_text.SetColor(ARGB(255,255,255,255));
457 }
458 else
459 {
460 gesture_item_card_widget.ClearFlags(WidgetFlags.DISABLED);
461 gesture_text.SetColor(ARGB(255,150,150,150));
462 input_text.SetColor(ARGB(255,150,150,150));
463 }
464 }
465
466 protected void DeleteGestureItems()
467 {
468 Widget child;
469 Widget child_to_destroy;
470
471 child = m_GestureItemCardPanel.GetChildren();
472 while ( child )
473 {
474 child_to_destroy = child;
475 child = child.GetSibling();
476
477 delete child_to_destroy;
478 }
479 }
480
482 protected void UpdateToolbar() {}
483
484 protected void UpdateCategoryName( string name )
485 {
486 if ( !m_CategoryNameText )
487 {
488 m_CategoryNameText = TextWidget.Cast( layoutRoot.FindAnyWidget( CATEGORY_NAME ) );
489 }
490
491 m_CategoryNameText.SetText( name );
492 }
493
494 //============================================
495 // Radial Menu Events
496 //============================================
497 //Common
499 {
500 }
501
502 //Mouse
503 void OnMouseSelect( Widget w )
504 {
505 MarkSelected( w );
506 }
507
508 void OnMouseDeselect( Widget w )
509 {
510 UnmarkSelected( w );
511 }
512
513 void OnMouseExecute( Widget w )
514 {
515 }
516
518 void OnMousePressLeft( Widget w )
519 {
520 if (instance.m_IsCategorySelected)
521 {
522 ExecuteSelectedItem();
523 }
524 else
525 {
526 ExecuteSelectedCategory( w );
527 }
528 }
529
531 void OnMousePressRight( Widget w )
532 {
533 BackOneLevel();
534 }
535
536 //Controller
537 void OnControllerSelect( Widget w )
538 {
539 MarkSelected( w );
540 }
541
542 void OnControllerDeselect( Widget w )
543 {
544 UnmarkSelected( w );
545 }
546
547 void OnControllerExecute( Widget w )
548 {
549 }
550
551 void OnControllerPressSelect( Widget w )
552 {
553 if (instance.m_IsCategorySelected)
554 {
555 ExecuteSelectedItem();
556 }
557 else
558 {
559 ExecuteSelectedCategory( w );
560 }
561 }
562
563 void OnControllerPressBack( Widget w )
564 {
565 BackOneLevel();
566 }
567
568 //Actions
569 protected void MarkSelected( Widget w )
570 {
571 instance.m_SelectedItem = w;
572
573 if ( w )
574 {
575 GestureMenuItem gesture_item;
576 w.GetUserData( gesture_item );
577
578 //is not category
579 /*
580 if ( gesture_item && gesture_item.GetCategory() != GestureCategories.CATEGORIES )
581 {
582 //alter item visual
583 //TextWidget text_widget = TextWidget.Cast( gesture_item.GetRadialItemCard().FindAnyWidget( RADIAL_TEXT ) );
584 //text_widget.SetColor( ARGB( 255, 66, 175, 95 ) );
585 }
586 */
587 }
588 }
589
590 protected void UnmarkSelected( Widget w )
591 {
592 instance.m_SelectedItem = NULL;
593
594 if ( w )
595 {
596 GestureMenuItem gesture_item;
597 w.GetUserData( gesture_item );
598
599 //is not category
600 /*
601 if ( gesture_item && gesture_item.GetCategory() != GestureCategories.CATEGORIES )
602 {
603 //alter item visual
604 //TextWidget text_widget = TextWidget.Cast( gesture_item.GetRadialItemCard().FindAnyWidget( RADIAL_TEXT ) );
605 //text_widget.SetColor( ARGB( 255, 255, 255, 255 ) );
606 }
607 */
608 }
609 }
610
611 protected void ExecuteSelectedCategory( Widget w )
612 {
613 //only when category is not picked yet
614 if ( w )
615 {
616 GestureMenuItem gesture_item;
617 w.GetUserData( gesture_item );
618
619 //is category
620 if ( !instance.m_IsCategorySelected && gesture_item.GetCategory() == GestureCategories.CATEGORIES )
621 {
622 //set category selected
623 instance.m_IsCategorySelected = true;
624
625 //show selected category gestures
626 GetGestureItems( m_GestureItems, gesture_item.GetID() );
627 CreateGestureContent();
628 RefreshGestures( gesture_item.GetID() );
629
630 //update category name text
631 UpdateCategoryName( gesture_item.GetName() );
632 }
633 /*else
634 {
635 ExecuteSelectedItem();
636 }*/
637 }
638 }
639
640 protected void ExecuteSelectedItem()
641 {
642 if ( instance.m_IsCategorySelected && instance.m_SelectedItem )
643 {
644 if ( !GetGame().IsDedicatedServer() )
645 {
646 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
647
648 GestureMenuItem gesture_item;
649 instance.m_SelectedItem.GetUserData( gesture_item );
650
651 if ( gesture_item )
652 {
653 if( player.GetEmoteManager() )
654 {
655 player.GetEmoteManager().CreateEmoteCBFromMenu( gesture_item.GetID() );
656 }
657 }
658 }
659 }
660 }
661
662 //only moves to the GestureCategories.CATEGORIES for now
663 protected void BackOneLevel()
664 {
665 RefreshGestures();
666 UpdateCategoryName( "" );
667 }
668
670 {
671 return m_IsMenuClosing;
672 }
673
674 void SetMenuClosing(bool state)
675 {
676 m_IsMenuClosing = state;
677 }
678
679 protected void UpdateControlsElements()
680 {
681 Widget toolbarBackSpacer = layoutRoot.FindAnyWidget("BackSpacer");
682
683 RichTextWidget toolbarSelectIcon = RichTextWidget.Cast(layoutRoot.FindAnyWidget("SelectIcon"));
684 RichTextWidget toolbarBackIcon = RichTextWidget.Cast(layoutRoot.FindAnyWidget("BackIcon"));
685
686 string selectAction;
687 string backAction;
688 int controllerID;
689
690 if (GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer() && GetGame().GetInput().GetCurrentInputDevice() == EInputDeviceType.MOUSE_AND_KEYBOARD)
691 {
692 selectAction = "UAMenuSelect";
693 backAction = "UAMenuBack";
694 controllerID = EUAINPUT_DEVICE_KEYBOARDMOUSE;
695 }
696 else
697 {
698 selectAction = "UAUISelect";
699 backAction = "UAUIBack";
700 controllerID = EUAINPUT_DEVICE_CONTROLLER;
701 }
702
703 toolbarSelectIcon.SetText(InputUtils.GetRichtextButtonIconFromInputAction(selectAction, "", controllerID, InputUtils.ICON_SCALE_TOOLBAR));
704 toolbarBackIcon.SetText(InputUtils.GetRichtextButtonIconFromInputAction(backAction, "", controllerID, InputUtils.ICON_SCALE_TOOLBAR));
705 toolbarBackSpacer.Show(instance.m_IsCategorySelected);
706 }
707
708 //-----------------------------------------------------------------
710 protected void OnMenuRelease();
711}
void OnInputPresetChanged()
Definition inventory.c:168
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
Super root of all classes in Enforce script.
Definition enscript.c:11
string GetInputActionName()
Definition emotebase.c:70
static string GetRichtextButtonIconFromInputAction(notnull UAInput pInput, string pLocalizedDescription, int pInputDeviceType=EUAINPUT_DEVICE_CONTROLLER, float pScale=ICON_SCALE_NORMAL, bool pVertical=false)
Definition inpututils.c:167
static map< int, ref TStringArray > GetComboButtonNamesFromInput(string pInputName, int pInputDeviceType)
returns a map of button names, combo or not
Definition inpututils.c:33
static const float ICON_SCALE_TOOLBAR
Definition inpututils.c:15
Mission class.
Definition gameplay.c:687
void ExecuteSelectedCategory(Widget w)
override bool OnMouseEnter(Widget w, int x, int y)
TextWidget m_CategoryNameText
override void OnShow()
void UpdateQuickbarItemCard(GestureMenuItem gesture_item)
void DeleteGestureItems()
override void Update(float timeslice)
static void CloseMenu()
bool m_IsCategorySelected
void UpdateToolbar()
DEPRECATED.
override bool UseMouse()
void RefreshGestures(GestureCategories category_id=-1)
void MarkSelected(Widget w)
Widget m_GestureItemCardPanel
void OnControllerPressSelect(Widget w)
ref array< ref GestureMenuItem > m_GestureItems
void CreateGestureContent()
override void OnHide()
void OnControlsChanged(RadialMenuControlType type)
void OnMousePressRight(Widget w)
RMB.
void OnMouseExecute(Widget w)
static bool CanOpenMenu()
void OnControllerDeselect(Widget w)
void ExecuteSelectedItem()
override bool UseGamepad()
void UnmarkSelected(Widget w)
void OnControllerSelect(Widget w)
void UpdateControlsElements()
void GetGestureItems(out array< ref GestureMenuItem > gesture_items, GestureCategories category)
static GesturesMenu instance
void OnMouseDeselect(Widget w)
Widget m_SelectedItem
void OnControllerPressBack(Widget w)
override Widget Init()
void ProcessEmoteConditionRequest(GestureMenuItem gesture_item)
void OnMenuRelease()
DEPRECATED.
void UpdateCategoryName(string name)
override bool OnController(Widget w, int control, int value)
void SetMenuClosing(bool state)
void OnMousePressLeft(Widget w)
LMB.
void OnMouseSelect(Widget w)
Widget m_ToolbarPanel
static void OpenMenu()
void OnInputPresetChanged()
void OnControllerExecute(Widget w)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Mission mission
int GetID()
Get the ID registered in SEffectManager.
Definition effect.c:561
int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it)
Definition effect.c:51
proto native CGame GetGame()
EmoteBase m_EmoteClass
Widget m_RadialMenuSelector
GestureCategories
Definition gesturesmenu.c:2
@ CATEGORY_5
Definition gesturesmenu.c:8
@ CATEGORIES
Definition gesturesmenu.c:3
@ CATEGORY_4
Definition gesturesmenu.c:7
@ CATEGORY_1
Definition gesturesmenu.c:4
@ CONSOLE_GESTURES
Definition gesturesmenu.c:9
@ CATEGORY_2
Definition gesturesmenu.c:5
@ CATEGORY_3
Definition gesturesmenu.c:6
string GetBoundButtonText()
void SetRadialItemCard(Widget widget)
Widget m_RadialMenuItemCard
bool m_CanPerformEmote
void GestureMenuItem(int id, string name, GestureCategories category)
bool GetCanPerformEmote()
void SetCanPerformEmote(bool state)
Widget GetRadialItemCard()
string m_Category
folder structure eg. StaticEntities/Walls
Definition enentity.c:846
const int MENU_GESTURES
Definition constants.c:194
WidgetFlags
Definition enwidgets.c:58
Icon x
Icon y
EInputDeviceType
Definition input.c:3
void UpdateControlsElements()
PlayerBase GetPlayer()
int GetCategory()
int ARGB(int a, int r, int g, int b)
Definition proto.c:322
RadialMenuControlType
Definition radialmenu.c:2
void RadialMenu()
Definition radialmenu.c:84
class SyncedValue m_Name