5 protected int m_ActiveIndex = 0;
15 protected int m_FocusedColumn = 0;
22 const int SORT_ATTACHMENTS_OWN = 1;
23 const int SORT_CARGO_OWN = 2;
24 const int SORT_ATTACHMENTS_NEXT_OFFSET = 2;
25 const int SORT_CARGO_NEXT_OFFSET = 3;
50 if (m_ActiveIndex < m_OpenedContainers.Count())
52 return Container.Cast(m_OpenedContainers[m_ActiveIndex]);
59 if (index < m_Body.Count())
69 m_FocusedContainer = cont;
77 return c.GetFocusedSlotsIcon();
89 m_ActiveIndex = index;
119 if ( m_OpenedContainers.Count() > 0 )
121 m_ActiveIndex = m_OpenedContainers.Count() - 1;
148 UpdateSelectionIcons();
150 Inventory.GetInstance().UpdateConsoleToolbar();
155 ScrollWidget sw = GetScrollWidget();
160 sw.GetScreenPos(
x,
y );
161 sw.GetScreenSize(
x, y_s );
167 float next_pos = f_y + f_h;
169 if (next_pos > (
y + y_s ))
171 amount = sw.GetVScrollPos() + next_pos - (
y + y_s ) + 2;
172 sw.VScrollToPos( amount );
176 amount = sw.GetVScrollPos() + f_y -
y - 2;
177 sw.VScrollToPos(amount);
186 ScrollWidget sw = GetScrollWidget();
189 if (!sw.IsScrollbarVisible())
191 sw.VScrollToPos01(0.0);
193 else if (sw.GetVScrollPos01() > 1.0)
195 sw.VScrollToPos01(1.0);
203 UpdateSelectionIcons();
209 UpdateSelectionIcons();
227 icon.GetRadialIconClosed().Show(!open);
251 if( GetFocusedContainer() )
253 else if( GetRootWidget() )
254 GetRootWidget().GetScreenSize(
x,
y );
258 if ( m_ActiveIndex == 0 )
272 if( GetFocusedContainer() )
274 else if( GetRootWidget() )
275 GetRootWidget().GetPos(
x,
y );
283 if( GetFocusedContainer() )
285 else if( GetRootWidget() )
286 GetRootWidget().GetScreenPos(
x,
y );
291 if ( m_ActiveIndex == 0 )
304 return m_Body.Count();
309 if( GetFocusedContainer() )
310 return GetFocusedContainer().SelectItem();
316 if( GetFocusedContainer() )
317 return GetFocusedContainer().Select();
323 if(GetFocusedContainer())
325 return GetFocusedContainer().OnSelectButton();
332 if( GetFocusedContainer() )
333 return GetFocusedContainer().Combine();
339 if( GetFocusedContainer() )
340 return GetFocusedContainer().TransferItemToVicinity();
346 if( GetFocusedContainer() )
347 return GetFocusedContainer().TransferItem();
353 if( GetFocusedContainer() )
354 return GetFocusedContainer().InspectItem();
360 if( GetFocusedContainer() )
361 return GetFocusedContainer().SplitItem();
367 if( GetFocusedContainer() )
368 return GetFocusedContainer().EquipItem();
377 if (GetFocusedContainer())
378 return GetFocusedContainer().CanOpenCloseContainerEx(focusedEntity);
380 return CanOpenCloseContainerEx(focusedEntity);
396 if (GetFocusedContainer())
397 return GetFocusedContainer().CanSplitEx(focusedEntity);
399 return CanSplitEx(focusedEntity);
409 return focusedEntity.CanBeSplit();
419 if (GetFocusedContainer())
420 return GetFocusedContainer().CanDropEx(focusedEntity);
422 return CanDropEx(focusedEntity);
437 return player.CanDropEntity(focusedEntity);
448 if (GetFocusedContainer())
449 return GetFocusedContainer().CanSwapOrTakeToHandsEx(focusedEntity);
451 return CanSwapOrTakeToHandsEx(focusedEntity);
462 EntityAI entityInHands = player.GetItemInHands();
478 return player.GetInventory().CanAddEntityIntoHands(focusedEntity);
489 if (GetFocusedContainer())
490 return GetFocusedContainer().CanEquipEx(focusedEntity);
492 return CanEquipEx(focusedEntity);
515 if (GetFocusedContainer())
516 return GetFocusedContainer().CanTakeToInventoryEx(focusedEntity);
518 return CanTakeToInventoryEx(focusedEntity);
530 if (focusedEntity.GetHierarchyRootPlayer() != player)
543 if (GetFocusedContainer())
544 return GetFocusedContainer().CanCombineEx(focusedEntity);
546 return CanCombineEx(focusedEntity);
557 if (focusedEntity != entityInHands)
567 if( GetFocusedContainer() )
568 return GetFocusedContainer().CanCombineAmmo();
574 return m_OpenedContainers.Count() == 0;
579 if( GetFocusedContainer() )
580 return GetFocusedContainer().IsItemActive();
586 if( GetFocusedContainer() )
587 return GetFocusedContainer().IsItemWithQuantityActive();
594 if( GetFocusedContainer() )
595 item = GetFocusedContainer().GetFocusedItem();
603 if( GetFocusedContainer() )
604 item = GetFocusedContainer().GetFocusedContainerEntity();
610 return m_ColumnCount;
615 m_ColumnCount = count;
620 return m_FocusedColumn;
625 m_FocusedColumn = column;
630 for (
int i = 0; i < m_Body.Count(); i++ )
632 if ( m_Body.Get( i ) )
633 m_Body.Get( i ).UpdateInterval();
644 if (m_OpenedContainers.Count())
647 if (!m_OpenedContainers[m_ActiveIndex].
IsActive())
649 for (
int i = 0; i < m_OpenedContainers.Count() - 1; i++)
651 if (m_OpenedContainers[i].
IsActive())
653 m_OpenedContainers[i].SetActive(
false);
656 m_OpenedContainers[m_ActiveIndex].SetLastActive();
660 m_OpenedContainers[m_ActiveIndex].SetLastActive();
672 if (m_OpenedContainers.Count())
691 if (m_OpenedContainers.Count())
694 if (!m_OpenedContainers[m_ActiveIndex].
IsActive())
696 for (
int i = 1; i < m_OpenedContainers.Count(); i++)
698 if (m_OpenedContainers[i].
IsActive())
700 m_OpenedContainers[i].SetActive(
false);
703 m_OpenedContainers[m_ActiveIndex].SetActive(
true);
707 m_OpenedContainers[m_ActiveIndex].SetFirstActive();
723 super.SetActive( active );
729 if(m_MainWidget.FindAnyWidget(
"SelectedContainer"))
731 m_MainWidget.FindAnyWidget(
"SelectedContainer").Show(active);
739 if( m_OpenedContainers.Count() )
741 c =
Container.Cast(m_OpenedContainers.Get( m_ActiveIndex ));
750 c = GetFocusedContainer();
753 GetFocusedContainer().SetActive(
false);
763 for (
int i = 0; i <
Count(); i++ )
767 if(
Get( i ) &&
Get( i ).GetMainWidget() &&
Get( i ).GetMainWidget().FindAnyWidget(
"Cursor" + j ) )
768 Get( i ).GetMainWidget().FindAnyWidget(
"Cursor" + j ).Show(
false );
775 if( GetFocusedContainer() )
778 GetFocusedContainer().UnfocusAll();
784 return m_ActiveIndex == ( m_OpenedContainers.Count() - 1 );
789 return m_ActiveIndex == 0;
794 return m_ActiveIndex == 0;
799 return m_ActiveIndex >= ( m_OpenedContainers.Count() - 1 );
804 if ( GetFocusedContainer() )
806 GetFocusedContainer().ResetFocusedContainer();
817 if (m_OpenedContainers.Count())
819 active =
Container.Cast(m_OpenedContainers[m_ActiveIndex]);
822 if (active && active.IsActive())
826 if (!active || !active.IsActive())
829 if (!IsLastContainerFocused())
833 next =
Container.Cast(m_OpenedContainers[m_ActiveIndex]);
852 if (m_OpenedContainers.Count())
854 active =
Container.Cast(m_OpenedContainers[m_ActiveIndex]);
857 if (active && active.IsActive())
862 if (!active || !active.IsActive())
865 if (!IsFirstContainerFocused())
869 prev =
Container.Cast(m_OpenedContainers[m_ActiveIndex]);
887 if (m_OpenedContainers.Count())
889 active =
Container.Cast(m_OpenedContainers[m_ActiveIndex]);
901 if (m_OpenedContainers.Count())
903 active =
Container.Cast(m_OpenedContainers[m_ActiveIndex]);
915 m_OpenedContainers.Clear();
917 bool need_reset_focus =
false;
919 for (i = 0; i < m_Body.Count(); i++)
924 c.RecomputeOpenedContainers();
927 m_OpenedContainers.Insert(c);
929 else if (c.IsActive())
932 need_reset_focus =
true;
941 if (!need_reset_focus && ( m_ActiveIndex >= m_OpenedContainers.Count() || !m_OpenedContainers[m_ActiveIndex].IsActive() ))
943 need_reset_focus =
true;
944 for (i = 0; i < m_OpenedContainers.Count(); i++)
946 if (m_OpenedContainers[i].
IsActive())
948 need_reset_focus =
false;
954 if (need_reset_focus)
968 if ( pos > -1 && pos < m_Body.Count() )
970 if ( pos <= m_ActiveIndex )
972 m_Body.InsertAt( container, pos );
975 m_Body.Insert( container );
985 int index = m_Body.Find( container );
988 index = m_OpenedContainers.Find( container );
991 if (index <= m_ActiveIndex)
993 if (GetFocusedContainer() == container)
1002 m_OpenedContainers.RemoveItem( container );
1004 m_Body.RemoveItem( container );
1013 return m_Body.
Get(
x );
1018 for (
int i = 0; i < m_Body.Count(); i++ )
1020 if( m_Body.Get( i ) )
1021 m_Body.Get( i ).Refresh();
1027 for (
int i = 0; i < m_Body.Count(); i++ )
1043 m_ForcedHide = force_hide;
1045 for(
int i = 0; i < m_Body.Count(); i++)
1047 if( m_Body.Get( i ) )
1048 m_Body.Get( i ).OnHide();
1055 m_ForcedHide =
false;
1059 for(
int i = 0; i < m_Body.Count(); i++)
1061 if( m_Body.Get( i ) )
1062 m_Body.Get( i ).OnShow();
1069 m_ForcedShow = value;
void Inventory(LayoutHolder parent)
FindInventoryLocationType
flags for searching locations in inventory
array< ref PlayerStatBase > Get()
ref Widget m_RootWidget[MAX_SIMULTANIOUS_PLAYERS]
protected Widget m_Parent
proto native DayZPlayer GetPlayer()
override void SetPreviousActive(bool force=false)
override void SetNextActive()
override float GetFocusedContainerYScreenPos(bool contents=false)
override void SetLastFocus()
override void SetActive(bool active)
override void SetNextRightActive()
override Header GetHeader()
override void CheckHeaderDragability()
override float GetFocusedContainerHeight(bool contents=false)
override void SetDefaultFocus(bool while_micromanagment_mode=false)
override void SetLastActive()
override void SetNextLeftActive()
override EntityAI GetFocusedItem()
override bool IsDisplayable()
script counterpart to engine's class Inventory
static bool CanForceSwapEntitiesEx(notnull EntityAI item1, InventoryLocation item1_dst, notnull EntityAI item2, out InventoryLocation item2_dst)
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
static int GetCombinationFlags(EntityAI entity1, EntityAI entity2)
void DraggingOver(Widget w, int x, int y, Widget receiver)
void ScrollToActiveContainer()
void SetPreviousActive(bool force=false)
protected EntityAI m_Entity
void ExpandCollapseContainer()
void SetDefaultFocus(bool while_micromanagment_mode=false)
float GetFocusedContainerHeight(bool contents=false)
EntityAI GetFocusedItem()
bool CanOpenCloseContainerEx(EntityAI focusedEntity)
void SetColumnCount(int count)
bool IsLastContainerFocused()
bool CanDropEx(EntityAI focusedEntity)
void Remove(LayoutHolder container)
bool CanSwapOrTakeToHands()
override void UpdateSelectionIcons()
override void UpdateInterval()
SlotsIcon GetFocusedSlotsIcon()
void HideContent(bool force_hide=false)
Container GetFocusedContainer()
protected int m_ColumnCount
void SetSlotIcon(SlotsIcon icon)
protected bool m_LastIndex
void MoveGridCursor(int direction)
void DraggingOverHeader(Widget w, int x, int y, Widget receiver)
void CheckScrollbarVisibility()
bool IsItemWithQuantityActive()
void SetActiveIndex(int index)
override void SetActive(bool active)
void SetFocusedColumn(int column)
void RecomputeOpenedContainers()
bool CanCombineEx(EntityAI focusedEntity)
void SetForceShow(bool value)
void SetFocusedContainer(Container cont)
float GetFocusedContainerYPos(bool contents=false)
bool IsFirstContainerFocused()
protected ref array< LayoutHolder > m_OpenedContainers
bool CanSwapOrTakeToHandsEx(EntityAI focusedEntity)
protected ref array< ref LayoutHolder > m_Body
protected SlotsIcon m_SlotIcon
bool CanOpenCloseContainer()
float GetFocusedContainerYScreenPos(bool contents=false)
bool CanTakeToInventory()
Container GetContainer(int index)
void SetOpenForSlotIcon(bool open, SlotsIcon icon=null)
bool CanTakeToInventoryEx(EntityAI focusedEntity)
void Insert(LayoutHolder container, int pos=-1, bool immedUpdate=true)
void SetHeader(Header header)
bool CanEquipEx(EntityAI focusedEntity)
void SetNextRightActive()
EntityAI GetFocusedContainerEntity()
override void SetFirstActive()
protected bool m_ForcedShow
bool TransferItemToVicinity()
protected bool m_ForcedHide
void Container(LayoutHolder parent)
override void SetLastActive()
protected Container m_FocusedContainer
override void SetLayoutName()
bool CanSplitEx(EntityAI focusedEntity)
protected float m_PrevAlpha
ScrollWidget GetScrollWidget()
void ResetFocusedContainer()
void CheckHeaderDragability()
void ShowContent(bool force_show=false)
void OnDropReceivedFromHeader(Widget w, int x, int y, Widget receiver)
Widget GetRadialIconPanel()
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()