Dayz  1.11.153731
Dayz Code Explorer by Zeroy
RadialQuickbarMenu.c
Go to the documentation of this file.
2 {
5 }
6 
8 {
9  protected bool m_IsLightSourceExtra;
10  protected bool m_IsNVG;
11  protected int m_Id;
12  protected int m_Category;
13  protected int m_CategorySwitchID;
14  protected EntityAI m_Item;
15  protected string m_ItemName;
16 
17  //radial menu
20 
21  void RadialQuickbarItem( int id, EntityAI item, string item_name, int category = RadialQuickbarCategory.DEFAULT, int category_switch = -1 )
22  {
23  m_Id = id;
24  m_Item = item;
25  m_ItemName = item_name;
26  m_Category = category;
27  m_CategorySwitchID = category_switch;
28 
29  //
30  if (ItemBase.Cast(m_Item))
31  {
32  m_IsNVG = ItemBase.Cast(m_Item).IsNVG();
33  m_IsLightSourceExtra = ItemBase.Cast(m_Item).IsLightSource();
34  }
35  }
36 
38  {
39  return m_Item;
40  }
41 
42  void SetItem( EntityAI item )
43  {
44  m_Item = item;
45  }
46 
48  {
49  return m_IsLightSourceExtra;
50  }
51 
52  bool IsNVGExtra()
53  {
54  return m_IsNVG;
55  }
56 
57  int GetId()
58  {
59  return m_Id;
60  }
61 
63  {
64  return m_Category;
65  }
66 
68  {
69  return m_CategorySwitchID;
70  }
71 
73  {
74  return m_RadialMenuItemCard;
75  }
76 
77  void SetRadialItemCard( Widget widget )
78  {
79  m_RadialMenuItemCard = widget;
80  }
81 
82  string GetItemName()
83  {
84  return m_ItemName;
85  }
86 }
87 
88 class RadialQuickbarMenu extends UIScriptedMenu
89 {
91  protected ref array<ref RadialQuickbarItem> m_Items;
92 
93  protected bool m_IsMenuClosing;
94  protected int m_CurrentCategory;
95  //
96  const string TEXT_ITEM_NAME = "ItemName";
97  const string TEXT_ITEM_TITLE = "ItemTitle";
98  //selections
99  protected Widget m_SelectedItem;
101 
102  //instance
103  static RadialQuickbarMenu instance;
104 
105  //============================================
106  // RadialQuickbarMenu
107  //============================================
109  {
110  m_Items = new ref array<ref RadialQuickbarItem>;
111  m_CurrentCategory = RadialQuickbarCategory.DEFAULT;
112 
113  if ( !instance )
114  {
115  instance = this;
116  }
117  }
118 
120  {
121  }
122 
123  static void SetItemToAssign( EntityAI item )
124  {
125  m_ItemToAssign = item;
126  }
127 
129  {
130  return m_ItemToAssign;
131  }
132 
133  override void OnHide()
134  {
135  super.OnHide();
136 
137  //reset item to assign
138  RadialQuickbarMenu.SetItemToAssign( NULL );
139  }
140 
141  //============================================
142  // Menu Controls
143  //============================================
144  static void OpenMenu( UIScriptedMenu parent = NULL )
145  {
147  }
148 
149  static void CloseMenu()
150  {
151  GetGame().GetUIManager().Back();
152  }
153 
154  //============================================
155  // Init & Widget Events
156  //============================================
157  override Widget Init()
158  {
159  layoutRoot = GetGame().GetWorkspace().CreateWidgets( "gui/layouts/radial_menu/radial_quickbar/radial_quickbar_menu.layout" );
160  m_ItemCardPanel = layoutRoot.FindAnyWidget( RadialMenu.RADIAL_ITEM_CARD_CONTAINER );
161 
162  //register gestures menu
163  RadialMenu.GetInstance().RegisterClass( this );
164 
165  //delay updates until fully initialized
166  RadialMenu.GetInstance().SetWidgetInitialized(false);
167 
168  //set radial menu properties
169  RadialMenu.GetInstance().SetWidgetProperties( "gui/layouts/radial_menu/radial_quickbar/radial_quickbar_delimiter.layout" );
170 
171  //create content (widgets) for items
172  RefreshQuickbar();
173 
174  //set controller toolbar icons
175  #ifdef PLATFORM_CONSOLE
176  ImageWidget toolbar_select = ImageWidget.Cast(layoutRoot.FindAnyWidget( "SelectIcon" ));
177  ImageWidget toolbar_back = ImageWidget.Cast(layoutRoot.FindAnyWidget( "CombineIcon" ));
178  #ifdef PLATFORM_XBOX
179  toolbar_select.LoadImageFile( 0, "set:xbox_buttons image:A" );
180  toolbar_back.LoadImageFile( 0, "set:xbox_buttons image:B" );
181  #endif
182  #ifdef PLATFORM_PS4
183  string confirm = "cross";
184  string back = "circle";
185  if( GetGame().GetInput().GetEnterButton() == GamepadButton.A )
186  {
187  confirm = "cross";
188  back = "circle";
189  }
190  else
191  {
192  confirm = "circle";
193  back = "cross";
194  }
195  toolbar_select.LoadImageFile( 0, "set:playstation_buttons image:" + confirm );
196  toolbar_back.LoadImageFile( 0, "set:playstation_buttons image:" + back );
197  #endif
198  #endif
199 
200  #ifdef PLATFORM_WINDOWS
201  Widget toolbar_panel = layoutRoot.FindAnyWidget( "toolbar_bg" );
202  toolbar_panel.Show( !RadialMenu.GetInstance().IsUsingMouse() );
203  #endif
204 
205  return layoutRoot;
206  }
207 
208  override void OnShow()
209  {
210  super.OnShow();
211 
212  SetFocus( layoutRoot );
213  m_IsMenuClosing = false;
214  }
215 
216  override bool OnController( Widget w, int control, int value )
217  {
218  super.OnController( w, control, value );
219 
220  RadialMenu.GetInstance().SetControlType( RadialMenuControlType.CONTROLLER );
221 
222  return false;
223  }
224 
225  override bool OnMouseEnter( Widget w, int x, int y )
226  {
227  super.OnMouseEnter( w, x, y );
228 
229  RadialMenu.GetInstance().SetControlType( RadialMenuControlType.MOUSE );
230 
231  return false;
232  }
233 
234  override bool UseMouse()
235  {
236  return true;
237  }
238 
239  override bool UseGamepad()
240  {
241  return true;
242  }
243 
244  //============================================
245  // Content
246  //============================================
247  //reset_selection - if false, selected quick bar item will be remembered after content refresh
248  protected void RefreshQuickbar( bool reset_selection = true )
249  {
250  int selected_item_id = -1;
251  if ( !reset_selection )
252  {
253  RadialQuickbarItem quickbar_item;
254  if ( instance.m_SelectedItem )
255  {
256  instance.m_SelectedItem.GetUserData( quickbar_item );
257  selected_item_id = quickbar_item.GetId();
258  }
259  }
260 
261  GetItems( m_Items );
262  //CheckForLightsAndNVG( m_Items );
263  CreateContent( selected_item_id );
264  }
265 
266  //
267  // ITEMS
268  //
269  protected void GetItems( out ref array<ref RadialQuickbarItem> items )
270  {
271  items.Clear();
272 
273  PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
274  int size = player.GetQuickBarSize();
275  EntityAI entity;
276 
277  for ( int i = 0; i < size; ++i )
278  {
279  entity = player.GetQuickBarEntity( i );
280 
281  items.Insert( new RadialQuickbarItem( i, entity, "" ) );
282  }
283 
284  CheckForLightsAndNVG(m_Items,i);
285  }
286 
287  protected void CheckForLightsAndNVG( out ref array<ref RadialQuickbarItem> items, int last_idx )
288  {
289  PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
290  int count = 0;
291  EntityAI entity;
292  ItemBase headgear = ItemBase.Cast(player.FindAttachmentBySlotName("Headgear"));
293  ItemBase eyewear = ItemBase.Cast(player.FindAttachmentBySlotName("Eyewear"));
294 
295  //nvg - headgear check
296  if ( headgear )
297  {
298  entity = headgear.FindAttachmentBySlotName("NVG");
299  if (entity)
300  {
301  items.Insert( new RadialQuickbarItem( count, entity, "", RadialQuickbarCategory.SPECIALIZED_LIGHTS ) );
302  count++;
303  }
304  }
305  //nvg - eyewear check
306  if ( eyewear )
307  {
308  entity = eyewear.FindAttachmentBySlotName("NVG");
309  if (entity)
310  {
311  items.Insert( new RadialQuickbarItem( count, entity, "", RadialQuickbarCategory.SPECIALIZED_LIGHTS ) );
312  count++;
313  }
314  }
315  //light
316  if ( headgear )
317  {
318  if ( headgear.IsLightSource() && headgear.HasEnergyManager() && headgear.GetCompEM().CanWork() )
319  {
320  entity = headgear;
321  items.Insert( new RadialQuickbarItem( count, entity, "", RadialQuickbarCategory.SPECIALIZED_LIGHTS ) );
322  count++;
323  }
324  else if ( headgear.GetInventory().AttachmentCount() > 0 )
325  {
326  ItemBase attachment;
327  for (int i = 0; i < headgear.GetInventory().AttachmentCount(); i++)
328  {
329  attachment = ItemBase.Cast(headgear.GetInventory().GetAttachmentFromIndex(i));
330  if ( attachment && attachment.IsLightSource() && attachment.HasEnergyManager() && attachment.GetCompEM().CanWork() )
331  {
332  entity = attachment;
333  items.Insert( new RadialQuickbarItem( count, entity, "", RadialQuickbarCategory.SPECIALIZED_LIGHTS ) );
334  count++;
335  }
336  }
337  }
338  }
339 
340  //Add a category switchers
341  if (m_CurrentCategory == RadialQuickbarCategory.DEFAULT && entity)
342  {
343  //items.Insert( new RadialQuickbarItem(last_idx + 1,null,"#toggle_lights",RadialQuickbarCategory.DEFAULT,RadialQuickbarCategory.SPECIALIZED_LIGHTS) );
344  items.InsertAt( new RadialQuickbarItem(32,null,"#toggle_lights",RadialQuickbarCategory.DEFAULT,RadialQuickbarCategory.SPECIALIZED_LIGHTS),0 );
345  }
346  else if (m_CurrentCategory == RadialQuickbarCategory.SPECIALIZED_LIGHTS)
347  {
348  //items.Insert( new RadialQuickbarItem(count,null,"#menu_back",RadialQuickbarCategory.SPECIALIZED_LIGHTS,RadialQuickbarCategory.DEFAULT) );
349  items.InsertAt( new RadialQuickbarItem(32,null,"#menu_back",RadialQuickbarCategory.SPECIALIZED_LIGHTS,RadialQuickbarCategory.DEFAULT),0 );
350  }
351  }
352 
353  protected void CreateContent( int selected_item_id = -1 )
354  {
355  //delete existing content
356  DeleteItems();
357 
358  int category_item_count;
359 
360  for ( int i = 0; i < m_Items.Count(); ++i )
361  {
362  RadialQuickbarItem quickbar_item = m_Items.Get( i );
363 
364  if (quickbar_item.GetItemCategory() == m_CurrentCategory)
365  {
366  //create item card
367  Widget item_card_widget = Widget.Cast( GetGame().GetWorkspace().CreateWidgets( "gui/layouts/radial_menu/radial_quickbar/radial_quickbar_item_card.layout", m_ItemCardPanel ) );
368  quickbar_item.SetRadialItemCard( item_card_widget );
369 
370  //update item card widget
371  UpdateQuickbarItemCard( quickbar_item );
372 
373  //set data
374  item_card_widget.SetUserData( quickbar_item );
375 
376  //set selection
377  if ( quickbar_item.GetId() == selected_item_id )
378  {
379  MarkSelected( quickbar_item.GetRadialItemCard() );
380  }
381  category_item_count++;
382  }
383  }
384 
385  //adjust radial parameters for content
386  if ( /*m_Items.Count()*/category_item_count > 0 )
387  {
388  RadialMenu radial_menu = RadialMenu.GetInstance();
389  radial_menu.SetRadiusOffset( 0 );
390  radial_menu.SetExecuteDistOffset( 0.5 );
391  radial_menu.SetOffsetFromTop( 0 );
392  radial_menu.SetItemCardRadiusOffset( 0.25 );
393  radial_menu.ActivateControllerTimeout( false );
394  }
395 
396  //refresh radial menu
397  RadialMenu.GetInstance().Refresh( false );
398  }
399 
400  protected void UpdateQuickbarItemCard( RadialQuickbarItem quickbar_item )
401  {
402  Widget item_card_widget = quickbar_item.GetRadialItemCard();
403 
404  //get content panels
405  Widget item_details = item_card_widget.FindAnyWidget( "ItemDetails" );
406  TextWidget item_title = TextWidget.Cast( item_card_widget.FindAnyWidget( "ItemTitle" ) );
407 
408  //set text
409  TextWidget text_widget = TextWidget.Cast( item_card_widget.FindAnyWidget( TEXT_ITEM_NAME ) );
410  EntityAI item = quickbar_item.GetItem();
411 
412  Widget quantity_panel = item_card_widget.FindAnyWidget( "QuantityPanel" );
413  if ( item )
414  {
415  //item text
416  text_widget.SetText( quickbar_item.GetItem().GetDisplayName() );
417 
418  //item preview
419  ItemPreviewWidget item_preview = ItemPreviewWidget.Cast( item_card_widget.FindAnyWidget( "ItemPreview" ) );
420  item_preview.SetItem( item );
421  item_preview.SetView( item.GetViewIndex() );
422  item_preview.SetModelOrientation( Vector( 0,0,0 ) );
423 
424  //item quantity
425  Widget quantity_stack = quantity_panel.FindAnyWidget( "QuantityStackPanel" );
426  ProgressBarWidget quantity_bar = ProgressBarWidget.Cast( quantity_panel.FindAnyWidget( "QuantityBar" ) );
427  int has_quantity = QuantityConversions.HasItemQuantity( item );
428  //calculate and set quantity
429  if ( has_quantity == QUANTITY_HIDDEN )
430  {
431  quantity_panel.Show( false );
432  }
433  else if ( has_quantity == QUANTITY_COUNT )
434  {
435  //hide bar
436  quantity_bar.Show( false );
437 
438  //show stack
439  TextWidget quantity_text = TextWidget.Cast( quantity_stack.FindAnyWidget( "Quantity" ) );
440  quantity_text.SetText( QuantityConversions.GetItemQuantityText( item ) );
441  quantity_stack.Show( true );
442  }
443  else if ( has_quantity == QUANTITY_PROGRESS )
444  {
445  //hide stack
446  quantity_stack.Show( false );
447 
448  //show bar
449  float progress_max = quantity_bar.GetMax();
450  int max = item.ConfigGetInt( "varQuantityMax" );
451  int count = item.ConfigGetInt( "count" );
452  float quantity = QuantityConversions.GetItemQuantity( ItemBase.Cast( item ) );
453 
454  if ( count > 0 )
455  {
456  max = count;
457  }
458  if ( max > 0 )
459  {
460 
461  float value = Math.Round( ( quantity / max ) * 100 );
462  quantity_bar.SetCurrent( value );
463  }
464 
465  quantity_bar.Show( true );
466  }
467 
468  //display content panels
469  item_details.Show( true );
470  item_title.Show( false );
471  }
472  else if ( quickbar_item.GetCategorySwitchID() != -1 )
473  {
474  item_title.SetText( quickbar_item.GetItemName() );
475 
476  item_details.Show( false );
477  item_title.Show( true );
478  }
479  else
480  {
481  item_title.SetText( "#container_empty" );
482 
483  //display content panels
484  item_details.Show( false );
485  item_title.Show( true );
486  }
487  }
488 
489  //Common
490  protected void DeleteItems()
491  {
492  Widget child;
493  Widget child_to_destroy;
494 
495  child = m_ItemCardPanel.GetChildren();
496  while ( child )
497  {
498  child_to_destroy = child;
499  child = child.GetSibling();
500 
501  delete child_to_destroy;
502  }
503  }
504 
505  protected void ChangeCurrentCategory(int category)
506  {
507  m_CurrentCategory = category;
508  RefreshQuickbar(false);
509  }
510 
511  //============================================
512  // Radial Menu Events
513  //============================================
514  //Common
516  {
517  //show/hide controller toolbar
518  Widget toolbar_panel = layoutRoot.FindAnyWidget( "toolbar_bg" );
519  if ( type == RadialMenuControlType.CONTROLLER )
520  {
521  toolbar_panel.Show( true );
522  }
523  else
524  {
525  toolbar_panel.Show( true );
526  }
527  }
528 
529  //Controller
531  {
532  MarkSelected( w );
533  }
534 
536  {
537  UnmarkSelected( w );
538  }
539 
541  {
542  PrimaryAction( w );
543  }
544 
546  {
547  SecondaryAction( w );
548  }
549 
550  /*void OnMouseClick( Widget w )
551  {
552  MarkSelected( w );
553  PrimaryAction( w );
554  //SecondaryAction( w );
555  }*/
556 
557  //Actions
558  protected void MarkSelected( Widget w )
559  {
560  m_SelectedItem = w;
561 
562  /*
563  if ( w )
564  {
565  RadialQuickbarItem quickbar_item;
566  w.GetUserData( quickbar_item );
567 
568  //is not category
569  if ( quickbar_item )
570  {
571  if ( quickbar_item.GetItem() )
572  {
573  //alter item visual
574  TextWidget text_widget = TextWidget.Cast( quickbar_item.GetRadialItemCard().FindAnyWidget( TEXT_ITEM_NAME ) );
575  text_widget.SetColor( ARGB( 255, 66, 175, 95 ) );
576  }
577  else
578  {
579  //alter item visual
580  TextWidget title_widget = TextWidget.Cast( quickbar_item.GetRadialItemCard().FindAnyWidget( TEXT_ITEM_TITLE ) );
581  title_widget.SetColor( ARGB( 255, 66, 175, 95 ) );
582  }
583  }
584  }
585  */
586  }
587 
588  protected void UnmarkSelected( Widget w )
589  {
590  m_SelectedItem = NULL;
591 
592  /*
593  if ( w )
594  {
595  RadialQuickbarItem quickbar_item;
596  w.GetUserData( quickbar_item );
597 
598  //is not category
599  if ( quickbar_item )
600  {
601  if ( quickbar_item.GetItem() )
602  {
603  //alter item visual
604  TextWidget text_widget = TextWidget.Cast( quickbar_item.GetRadialItemCard().FindAnyWidget( TEXT_ITEM_NAME ) );
605  text_widget.SetColor( ARGB( 255, 255, 255, 255 ) );
606  }
607  else
608  {
609  //alter item visual
610  TextWidget title_widget = TextWidget.Cast( quickbar_item.GetRadialItemCard().FindAnyWidget( TEXT_ITEM_TITLE ) );
611  title_widget.SetColor( ARGB( 255, 255, 255, 255 ) );
612  }
613  }
614  }
615  */
616  }
617 
618  protected void PrimaryAction( Widget w )
619  {
620  if ( instance.m_SelectedItem )
621  {
622  if ( !GetGame().IsMultiplayer() || GetGame().IsClient() )
623  {
624  RadialQuickbarItem quickbar_item;
625  instance.m_SelectedItem.GetUserData( quickbar_item );
626 
627  if ( quickbar_item )
628  {
629  PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
630 
631  //ASSIGN ACTION
632  if ( GetItemToAssign() )
633  {
634  //assign item to slot
635  if ( quickbar_item.GetItem() == GetItemToAssign() )
636  {
637  player.RemoveQuickBarEntityShortcut( GetItemToAssign() );
638  }
639  else
640  {
641  player.SetQuickBarEntityShortcut( GetItemToAssign(), quickbar_item.GetId() );
642  }
643  }
644  //LIGHTS
645  else if (m_CurrentCategory == RadialQuickbarCategory.SPECIALIZED_LIGHTS && quickbar_item.IsLightSourceExtra())
646  {
647  HandleLights(quickbar_item);
648  }
649  //NVG
650  else if (m_CurrentCategory == RadialQuickbarCategory.SPECIALIZED_LIGHTS && quickbar_item.IsNVGExtra())
651  {
652  HandleNVG(quickbar_item);
653  }
654  //change quickbar category
655  else if (quickbar_item.GetCategorySwitchID() != -1)
656  {
657  ChangeCurrentCategory(quickbar_item.GetCategorySwitchID());
658  return;
659  }
660  //SWAP
661  else
662  {
663  EntityAI item = quickbar_item.GetItem();
664 
665  if ( item )
666  {
667  //swap
668  player.RadialQuickBarSingleUse( quickbar_item.GetId() + 1 ); //id must begin with 1 (simulating key press 1-9)
669  }
670  }
671 
672  RefreshQuickbar( false );
673  }
674  }
675  }
676  }
677 
678  protected void SecondaryAction( Widget w )
679  {
680  if ( instance.m_SelectedItem && m_CurrentCategory == RadialQuickbarCategory.DEFAULT )
681  {
682  if ( !GetGame().IsMultiplayer() || GetGame().IsClient() )
683  {
684  RadialQuickbarItem quickbar_item;
685  instance.m_SelectedItem.GetUserData( quickbar_item );
686 
687  if ( quickbar_item )
688  {
689  PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
690  EntityAI item = quickbar_item.GetItem();
691 
692  //COMBINE
693  if ( item )
694  {
695  player.RadialQuickBarCombine( quickbar_item.GetId() + 1 ); //id must begin with 1 (simulating key press 1-9)
696  RefreshQuickbar( false );
697  }
698  }
699  }
700  }
701  }
702 
703  //-------------------------------------------
704  //NVG/Light handling extension
705  //-------------------------------------------
706  void HandleLights(RadialQuickbarItem quickbar_item)
707  {
708  PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
709  ItemBase item = ItemBase.Cast(quickbar_item.GetItem());
710  ActionManagerClient mngr_client = ActionManagerClient.Cast(player.GetActionManager());
711  ActionTarget atrg;
712 
713  if ( Headtorch_ColorBase.Cast(item) )
714  {
715  atrg = new ActionTarget(item,null,-1,vector.Zero,-1.0);
716  if ( mngr_client.GetAction(ActionTurnOnHeadtorch).Can(player,atrg,null) )
717  {
718  mngr_client.PerformActionStart(player.GetActionManager().GetAction(ActionTurnOnHeadtorch),atrg,null);
719  }
720  else if ( mngr_client.GetAction(ActionTurnOffHeadtorch).Can(player,atrg,null) )
721  {
722  mngr_client.PerformActionStart(player.GetActionManager().GetAction(ActionTurnOffHeadtorch),atrg,null);
723  }
724  }
725  else if ( Mich2001Helmet.Cast(item.GetHierarchyParent()) )
726  {
727  atrg = new ActionTarget(item.GetHierarchyParent(),null,-1,vector.Zero,-1.0);
728  if ( mngr_client.GetAction(ActionTurnOnHelmetFlashlight).Can(player,atrg,null) )
729  {
730  mngr_client.PerformActionStart(player.GetActionManager().GetAction(ActionTurnOnHelmetFlashlight),atrg,null);
731  }
732  else if ( mngr_client.GetAction(ActionTurnOffHelmetFlashlight).Can(player,atrg,null) )
733  {
734  mngr_client.PerformActionStart(player.GetActionManager().GetAction(ActionTurnOffHelmetFlashlight),atrg,null);
735  }
736  }
737  }
738 
739  void HandleNVG(RadialQuickbarItem quickbar_item)
740  {
741  PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
742  ActionManagerClient mngr_client = ActionManagerClient.Cast(player.GetActionManager());
743  ActionTarget atrg;
744 
745  atrg = new ActionTarget(quickbar_item.GetItem().GetHierarchyParent(),null,-1,vector.Zero,-1.0);
746  if ( mngr_client.GetAction(ActionToggleNVG).Can(player,atrg,null) )
747  {
748  mngr_client.PerformActionStart(player.GetActionManager().GetAction(ActionToggleNVG),atrg,null);
749  }
750  }
751 
753  {
754  return m_IsMenuClosing;
755  }
756 
757  void SetMenuClosing(bool state)
758  {
759  m_IsMenuClosing = state;
760  }
761 }
ItemBase
Definition: InventoryItem.c:445
GetGame
proto native CGame GetGame()
UIScriptedMenu
Xbox menu.
Definition: DayZGame.c:1
UIScriptedMenu::m_CurrentCategory
protected int m_CurrentCategory
Definition: GesturesMenu.c:80
UIScriptedMenu::PrimaryAction
protected void PrimaryAction(Widget w)
Definition: RadialQuickbarMenu.c:618
RadialQuickbarItem
void RadialQuickbarItem(int id, EntityAI item, string item_name, int category=RadialQuickbarCategory.DEFAULT, int category_switch=-1)
Definition: RadialQuickbarMenu.c:21
m_Item
protected EntityAI m_Item
Definition: RadialQuickbarMenu.c:14
UIScriptedMenu::~RadialQuickbarMenu
void ~RadialQuickbarMenu()
Definition: RadialQuickbarMenu.c:119
UIScriptedMenu::SetItemToAssign
static void SetItemToAssign(EntityAI item)
Definition: RadialQuickbarMenu.c:123
UIScriptedMenu::UseMouse
override bool UseMouse()
Definition: RadialQuickbarMenu.c:234
UIScriptedMenu::m_IsMenuClosing
protected bool m_IsMenuClosing
Definition: GesturesMenu.c:79
ActionManagerClient::PerformActionStart
void PerformActionStart(ActionBase action, ActionTarget target, ItemBase item, Param extra_data=NULL)
Definition: ActionManagerClient.c:617
QuantityConversions
Definition: QuantityConversions.c:1
SPECIALIZED_LIGHTS
@ SPECIALIZED_LIGHTS
Definition: RadialQuickbarMenu.c:4
Math::Round
proto static native float Round(float f)
Returns mathematical round of value.
IsNVGExtra
bool IsNVGExtra()
Definition: RadialQuickbarMenu.c:52
SetItem
void SetItem(EntityAI item)
Definition: RadialQuickbarMenu.c:42
MENU_RADIAL_QUICKBAR
const int MENU_RADIAL_QUICKBAR
Definition: constants.c:71
UIScriptedMenu::UseGamepad
override bool UseGamepad()
Definition: RadialQuickbarMenu.c:239
UIScriptedMenu::m_ItemCardPanel
protected Widget m_ItemCardPanel
Definition: RadialQuickbarMenu.c:90
UIScriptedMenu::CreateContent
protected void CreateContent(int selected_item_id=-1)
Definition: RadialQuickbarMenu.c:353
UIManager::EnterScriptedMenu
proto native UIScriptedMenu EnterScriptedMenu(int id, UIMenuPanel parent)
Create & open menu with specific id (see MenuID) and set its parent.
UIScriptedMenu::RefreshQuickbar
protected void RefreshQuickbar(bool reset_selection=true)
Definition: RadialQuickbarMenu.c:248
UIScriptedMenu::GetItemToAssign
static EntityAI GetItemToAssign()
Definition: RadialQuickbarMenu.c:128
m_RadialMenuSelector
protected Widget m_RadialMenuSelector
Definition: RadialQuickbarMenu.c:18
WorkspaceWidget::CreateWidgets
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL)
Create widgets from *.layout file.
y
Icon y
UIScriptedMenu::UpdateQuickbarItemCard
protected void UpdateQuickbarItemCard(GestureMenuItem gesture_item)
Definition: GesturesMenu.c:341
UIManager::Back
bool Back()
Close top window on windows stack, returns true when any window is closed.
Definition: UIManager.c:55
m_RadialMenuItemCard
protected Widget m_RadialMenuItemCard
Definition: RadialQuickbarMenu.c:19
UIScriptedMenu::OnControllerSelect
void OnControllerSelect(Widget w)
Definition: RadialQuickbarMenu.c:530
GetCategorySwitchID
int GetCategorySwitchID()
Definition: RadialQuickbarMenu.c:67
UIScriptedMenu::UnmarkSelected
protected void UnmarkSelected(Widget w)
Definition: GesturesMenu.c:539
GetItemName
string GetItemName()
Definition: RadialQuickbarMenu.c:82
UIScriptedMenu::OnControlsChanged
void OnControlsChanged(RadialMenuControlType type)
Definition: RadialQuickbarMenu.c:515
UIScriptedMenu::GetItems
protected void GetItems(out ref array< ref RadialQuickbarItem > items)
Definition: RadialQuickbarMenu.c:269
UIScriptedMenu::CheckForLightsAndNVG
protected void CheckForLightsAndNVG(out ref array< ref RadialQuickbarItem > items, int last_idx)
Definition: RadialQuickbarMenu.c:287
UIScriptedMenu::HandleLights
void HandleLights(RadialQuickbarItem quickbar_item)
Definition: RadialQuickbarMenu.c:706
UIScriptedMenu::OpenMenu
static void OpenMenu(UIScriptedMenu parent=NULL)
Definition: RadialQuickbarMenu.c:144
UIScriptedMenu::CloseMenu
static void CloseMenu()
Definition: RadialQuickbarMenu.c:149
QUANTITY_PROGRESS
const int QUANTITY_PROGRESS
Definition: constants.c:368
GetItemCategory
int GetItemCategory()
Definition: RadialQuickbarMenu.c:62
m_ItemName
protected string m_ItemName
Definition: RadialQuickbarMenu.c:15
ActionTurnOnHeadtorch
Definition: ActionTurnOnHeadtorch.c:1
UIScriptedMenu::DeleteItems
protected void DeleteItems()
Definition: RadialQuickbarMenu.c:490
DEFAULT
@ DEFAULT
Definition: RadialQuickbarMenu.c:3
UIScriptedMenu::OnHide
override void OnHide()
Definition: RadialQuickbarMenu.c:133
UIScriptedMenu::m_SelectedItem
protected Widget m_SelectedItem
Definition: GesturesMenu.c:77
QuantityConversions::HasItemQuantity
static int HasItemQuantity(notnull EntityAI item)
Definition: QuantityConversions.c:119
IsLightSourceExtra
bool IsLightSourceExtra()
Definition: RadialQuickbarMenu.c:47
UIScriptedMenu::OnControllerDeselect
void OnControllerDeselect(Widget w)
Definition: RadialQuickbarMenu.c:535
PlayerBase
Definition: PlayerBaseClient.c:1
UIScriptedMenu::HandleNVG
void HandleNVG(RadialQuickbarItem quickbar_item)
Definition: RadialQuickbarMenu.c:739
vector
Definition: EnConvert.c:95
ActionTurnOnHelmetFlashlight
Definition: ActionTurnOnHelmetFlashlight.c:1
UIScriptedMenu::m_ItemToAssign
static EntityAI m_ItemToAssign
Definition: RadialQuickbarMenu.c:100
TextWidget
Definition: EnWidgets.c:196
UIScriptedMenu::SetMenuClosing
void SetMenuClosing(bool state)
Definition: RadialQuickbarMenu.c:757
UIScriptedMenu::OnShow
override void OnShow()
Definition: RadialQuickbarMenu.c:208
UIScriptedMenu::MarkSelected
protected void MarkSelected(Widget w)
Definition: GesturesMenu.c:518
m_IsLightSourceExtra
enum RadialQuickbarCategory m_IsLightSourceExtra
QuantityConversions::GetItemQuantityText
static string GetItemQuantityText(EntityAI item, bool showMax=false)
Definition: QuantityConversions.c:3
CGame::GetUIManager
proto native UIManager GetUIManager()
QUANTITY_HIDDEN
const int QUANTITY_HIDDEN
Definition: constants.c:366
GetRadialItemCard
Widget GetRadialItemCard()
Definition: RadialQuickbarMenu.c:72
m_Id
protected int m_Id
Definition: RadialQuickbarMenu.c:11
ItemPreviewWidget::SetItem
proto native void SetItem(EntityAI object)
RadialMenuControlType
RadialMenuControlType
Definition: RadialMenu.c:1
UIScriptedMenu::OnController
override bool OnController(Widget w, int control, int value)
Definition: RadialQuickbarMenu.c:216
UIScriptedMenu::OnControllerPressBack
void OnControllerPressBack(Widget w)
Definition: RadialQuickbarMenu.c:545
ActionManagerBase::GetAction
static ActionBase GetAction(typename actionName)
Definition: ActionManagerBase.c:161
RadialMenu
void RadialMenu()
Definition: RadialMenu.c:81
UIScriptedMenu::UpdateQuickbarItemCard
protected void UpdateQuickbarItemCard(RadialQuickbarItem quickbar_item)
Definition: RadialQuickbarMenu.c:400
UIScriptedMenu::OnMouseEnter
override bool OnMouseEnter(Widget w, int x, int y)
Definition: RadialQuickbarMenu.c:225
ActionManagerClient
Definition: ActionManagerClient.c:4
QUANTITY_COUNT
const int QUANTITY_COUNT
Definition: constants.c:367
UIScriptedMenu::instance
static RadialQuickbarMenu instance
Definition: RadialQuickbarMenu.c:103
ActionTarget
class ActionTargets ActionTarget
m_IsNVG
protected bool m_IsNVG
Definition: RadialQuickbarMenu.c:10
SetFocus
proto native void SetFocus(Widget w)
x
Icon x
GetItem
EntityAI GetItem()
Definition: RadialQuickbarMenu.c:37
QuantityConversions::GetItemQuantity
static float GetItemQuantity(InventoryItem item)
Definition: QuantityConversions.c:72
SetRadialItemCard
void SetRadialItemCard(Widget widget)
Definition: RadialQuickbarMenu.c:77
m_Category
protected int m_Category
Definition: RadialQuickbarMenu.c:12
UIScriptedMenu::SecondaryAction
protected void SecondaryAction(Widget w)
Definition: RadialQuickbarMenu.c:678
UIScriptedMenu::Init
override Widget Init()
Definition: RadialQuickbarMenu.c:157
ItemPreviewWidget
Definition: gameplay.c:259
UIScriptedMenu::IsMenuClosing
bool IsMenuClosing()
Definition: RadialQuickbarMenu.c:752
ActionTurnOffHelmetFlashlight
Definition: ActionTurnOffHelmetFlashlight.c:1
vector::Zero
static const vector Zero
Definition: EnConvert.c:100
GetId
int GetId()
Definition: RadialQuickbarMenu.c:57
CGame::GetWorkspace
proto native WorkspaceWidget GetWorkspace()
Widget
Definition: EnWidgets.c:166
GamepadButton
GamepadButton
Definition: EnSystem.c:340
UIScriptedMenu::m_Items
protected ref array< ref RadialQuickbarItem > m_Items
Definition: RadialQuickbarMenu.c:91
ItemPreviewWidget::SetModelOrientation
proto native void SetModelOrientation(vector vOrientation)
ItemPreviewWidget::SetView
proto native void SetView(int viewIndex)
0 - default boundingbox_min + boundingbox_max + invView 1 - boundingbox_min2 + boundingbox_max2 + inv...
m_CategorySwitchID
protected int m_CategorySwitchID
Definition: RadialQuickbarMenu.c:13
Math
Definition: EnMath.c:6
UIScriptedMenu::ChangeCurrentCategory
protected void ChangeCurrentCategory(int category)
Definition: RadialQuickbarMenu.c:505
GetPlayer
PlayerBase GetPlayer()
Definition: ModifiersManager.c:264
ActionToggleNVG
Definition: ActionToggleNVG.c:1
Vector
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
EntityAI
Base native class of all vehicles in game.
Definition: Building.c:4
RadialQuickbarCategory
RadialQuickbarCategory
Definition: RadialQuickbarMenu.c:1
ActionTurnOffHeadtorch
Definition: ActionTurnOffHeadtorch.c:1
GetInput
ActionInput GetInput()
Definition: ActionBase.c:1012
UIScriptedMenu::OnControllerPressSelect
void OnControllerPressSelect(Widget w)
Definition: RadialQuickbarMenu.c:540
UIScriptedMenu::RadialQuickbarMenu
void RadialQuickbarMenu()
Definition: RadialQuickbarMenu.c:108