97 const string TEXT_ITEM_NAME =
"ItemName";
98 const string TEXT_ITEM_TITLE =
"ItemTitle";
132 m_ItemToAssign = item;
137 return m_ItemToAssign;
147 #ifdef PLATFORM_CONSOLE
148 UpdateControlsElements();
172 m_ItemCardPanel = layoutRoot.FindAnyWidget(
RadialMenu.RADIAL_ITEM_CARD_CONTAINER);
178 RadialMenu.GetInstance().SetWidgetInitialized(
false);
181 RadialMenu.GetInstance().SetWidgetProperties(
"gui/layouts/radial_menu/radial_quickbar/radial_quickbar_delimiter.layout");
187 UpdateControlsElements();
189 m_ToolbarPanel = layoutRoot.FindAnyWidget(
"toolbar_bg" );
190 m_ToolbarPanel.Show(
true );
205 hud.ShowQuickbarUI(
false);
210 m_IsMenuClosing =
false;
223 hud.ShowQuickbarUI(
true);
228 RadialQuickbarMenu.SetItemToAssign(NULL);
229 m_IsMenuClosing =
true;
234 super.OnController( w, control, value );
243 super.OnMouseEnter( w,
x,
y );
266 int selected_item_id = -1;
267 if ( !reset_selection )
270 if ( instance.m_SelectedItem )
272 instance.m_SelectedItem.GetUserData( quickbar_item );
273 selected_item_id = quickbar_item.GetId();
279 CreateContent( selected_item_id );
290 int size = player.GetQuickBarSize();
293 for (
int i = 0; i < size; ++i )
295 entity = player.GetQuickBarEntity( i );
300 CheckForLightsAndNVG(m_Items,i);
308 ItemBase headgear =
ItemBase.Cast(player.FindAttachmentBySlotName(
"Headgear"));
309 ItemBase eyewear =
ItemBase.Cast(player.FindAttachmentBySlotName(
"Eyewear"));
314 entity = headgear.FindAttachmentBySlotName(
"NVG");
324 entity = eyewear.FindAttachmentBySlotName(
"NVG");
330 else if ( eyewear.IsLightSource() && eyewear.HasEnergyManager() && eyewear.GetCompEM().CanWork() )
340 if ( headgear.GetInventory().AttachmentCount() > 0 )
343 for (
int i = 0; i < headgear.GetInventory().AttachmentCount(); i++)
345 attachment =
ItemBase.Cast(headgear.GetInventory().GetAttachmentFromIndex(i));
346 if ( attachment && attachment.IsLightSource() && attachment.HasEnergyManager() && attachment.GetCompEM().CanWork() )
372 int category_item_count;
374 for (
int i = 0; i < m_Items.Count(); ++i )
378 if (quickbar_item.GetItemCategory() == m_CurrentCategory)
381 Widget item_card_widget =
Widget.Cast(
GetGame().GetWorkspace().CreateWidgets(
"gui/layouts/radial_menu/radial_quickbar/radial_quickbar_item_card.layout", m_ItemCardPanel ) );
382 quickbar_item.SetRadialItemCard( item_card_widget );
385 UpdateQuickbarItemCard( quickbar_item );
388 item_card_widget.SetUserData( quickbar_item );
391 if ( quickbar_item.GetId() == selected_item_id )
393 MarkSelected( quickbar_item.GetRadialItemCard() );
395 category_item_count++;
400 if ( category_item_count > 0 )
403 radial_menu.SetRadiusOffset( 0 );
404 radial_menu.SetExecuteDistOffset( 0.5 );
405 radial_menu.SetOffsetFromTop( 0 );
406 radial_menu.SetItemCardRadiusOffset( 0.25 );
407 radial_menu.ActivateControllerTimeout(
false );
416 Widget item_card_widget = quickbar_item.GetRadialItemCard();
419 Widget item_details = item_card_widget.FindAnyWidget(
"ItemDetails" );
424 EntityAI item = quickbar_item.GetItem();
426 Widget quantity_panel = item_card_widget.FindAnyWidget(
"QuantityPanel" );
430 text_widget.SetText( quickbar_item.GetItem().GetDisplayName() );
435 item_preview.
SetView( item.GetViewIndex() );
439 Widget quantity_stack = quantity_panel.FindAnyWidget(
"QuantityStackPanel" );
440 ProgressBarWidget quantity_bar = ProgressBarWidget.Cast( quantity_panel.FindAnyWidget(
"QuantityBar" ) );
445 quantity_panel.Show(
false );
450 quantity_bar.Show(
false );
455 quantity_stack.Show(
true );
460 quantity_stack.Show(
false );
463 float progress_max = quantity_bar.GetMax();
464 int max = item.ConfigGetInt(
"varQuantityMax" );
465 int count = item.ConfigGetInt(
"count" );
475 float value =
Math.
Round( ( quantity / max ) * 100 );
476 quantity_bar.SetCurrent( value );
479 quantity_bar.Show(
true );
483 item_details.Show(
true );
484 item_title.Show(
false );
486 else if ( quickbar_item.GetCategorySwitchID() != -1 )
488 item_title.SetText( quickbar_item.GetItemName() );
490 item_details.Show(
false );
491 item_title.Show(
true );
495 item_title.SetText(
"#container_empty" );
498 item_details.Show(
false );
499 item_title.Show(
true );
509 child = m_ItemCardPanel.GetChildren();
512 child_to_destroy = child;
513 child = child.GetSibling();
515 delete child_to_destroy;
521 m_CurrentCategory = category;
523 UpdateControlsElements();
591 w.GetUserData( quickbar_item );
594 if (quickbar_item &&
Class.
CastTo(item,quickbar_item.GetItem()))
625 m_SelectedItem = NULL;
655 if ( instance.m_SelectedItem )
657 if ( !
GetGame().IsDedicatedServer() )
660 instance.m_SelectedItem.GetUserData( quickbar_item );
667 if ( GetItemToAssign() )
670 if ( quickbar_item.GetItem() == GetItemToAssign() )
672 player.RemoveQuickBarEntityShortcut( GetItemToAssign() );
676 player.SetQuickBarEntityShortcut( GetItemToAssign(), quickbar_item.GetId() );
680 else if (m_CurrentCategory ==
RadialQuickbarCategory.SPECIALIZED_LIGHTS && quickbar_item.IsLightSourceExtra())
682 HandleLights(quickbar_item);
687 HandleNVG(quickbar_item);
690 else if (quickbar_item.GetCategorySwitchID() != -1)
692 ChangeCurrentCategory(quickbar_item.GetCategorySwitchID());
698 EntityAI item = quickbar_item.GetItem();
703 player.RadialQuickBarSingleUse( quickbar_item.GetId() + 1 );
717 if ( !
GetGame().IsDedicatedServer() )
720 instance.m_SelectedItem.GetUserData( quickbar_item );
725 EntityAI item = quickbar_item.GetItem();
729 player.RadialQuickBarCombine( quickbar_item.GetId() + 1 );
756 if ( Headtorch_ColorBase.Cast(item) )
768 else if ( Mich2001Helmet.Cast(item.GetHierarchyParent()) )
797 return m_IsMenuClosing;
802 m_IsMenuClosing = state;
807 Widget toolbarBackSpacer = layoutRoot.FindAnyWidget(
"BackSpacer");
819 selectAction =
"UAMenuSelect";
820 backAction =
"UAMenuBack";
821 controllerID = EUAINPUT_DEVICE_KEYBOARDMOUSE;
825 selectAction =
"UAUISelect";
826 backAction =
"UAUIBack";
827 controllerID = EUAINPUT_DEVICE_CONTROLLER;
protected void OnInputPresetChanged()
DetachActionData m_ItemName
class ActionTargets ActionTarget
class GetServerModListResult m_Id
GetServersResultRow the output structure of the GetServers operation that represents one game server.
void PerformActionStart(ActionBase action, ActionTarget target, ItemBase item, Param extra_data=NULL)
proto native Mission GetMission()
proto native UIManager GetUIManager()
proto native WorkspaceWidget GetWorkspace()
Super root of all classes in Enforce script.
ScriptInvoker GetOnInputPresetChanged()
void RemoveActiveInputExcludes(array< string > excludes, bool bForceSupress=false)
deprecated
static string GetItemQuantityText(EntityAI item, bool showMax=false)
static int HasItemQuantity(notnull EntityAI item)
static float GetItemQuantity(InventoryItem item)
proto bool Insert(func fn, int flags=EScriptInvokerInsertFlags.IMMEDIATE)
insert method to list
proto native UIScriptedMenu EnterScriptedMenu(int id, UIMenuPanel parent)
Create & open menu with specific id (see MenuID) and set its parent.
bool Back()
Close top window on windows stack, returns true when any window is closed.
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
const int QUANTITY_PROGRESS
const int QUANTITY_HIDDEN
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
string m_Category
folder structure eg. StaticEntities/Walls
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Round(float f)
Returns mathematical round of value.