10 const float STORAGE_NON_HIGHLIGHTED_OPACITY = 0.35;
11 const string ARSENAL_TITLE_LAYOUT =
"{E668FD2152D06CF9}UI/layouts/Menus/Inventory/ArsenalInventoryTraverseTitlePanel.layout";
12 const string SUPPLY_TITLE_LAYOUT =
"{4CAAD8087F93ABE6}UI/layouts/Menus/Inventory/SupplyInventoryTraverseTitlePanel.layout";
13 const string GENERIC_CONTAINER_PREFAB =
"{9F0C54A3740F7FC9}Prefabs/Props/Military/SupplyBox/SupplyPortableContainers/SupplyPortableContainer_01/SupplyContainerGeneric.et";
14 const string STORAGE_TITLE_LAYOUT =
"{1E788C30AF7F76E9}UI/layouts/Menus/Inventory/InventoryTraverseTitlePanel.layout";
15 const string SLOT_LAYOUT_1x1_EMPTY =
"{B11F8BE49DFB62A2}UI/layouts/Menus/Inventory/Inventory20Slot_1x1_empty.layout";
25 protected ref array<SCR_InventorySlotUI>
m_aSlots = {};
95 PlayerController pPlayerController =
GetGame().GetPlayerController();
96 if( !pPlayerController )
103 m_InventoryManager = SCR_InventoryStorageManagerComponent.Cast(
m_Player.FindComponent( SCR_InventoryStorageManagerComponent ) );
129 if ( wSizeContainer )
162 UIInfo uiInfo = attributes.GetUIInfo();
190 if (!resourceInventoryPlayerComponent)
195 RplId resourceInventoryPlayerComponentRplId =
Replication.FindItemId(resourceInventoryPlayerComponent);
197 if (!resourceInventoryPlayerComponentRplId.IsValid())
268 if (enterW && w && w.FindAnyWidget(enterW.GetName()))
295 m_wGrid.SetRowFillWeight( m, 0 );
298 m_wGrid.SetColumnFillWeight( n, 0 );
304 private BaseInventoryStorageComponent PushState(BaseInventoryStorageComponent storage)
311 private BaseInventoryStorageComponent PopState(
int traverseStorageIndex)
316 if ( traverseStorageIndex == -1 )
329 BaseInventoryStorageComponent GetCurrentNavigationStorage()
345 void Traverse(BaseInventoryStorageComponent storage)
348 PushState( storage );
356 IEntity entity = storage.GetOwner();
360 SCR_InventoryMenuUI inventoryMenu = GetInventoryMenuHandler();
366 void Back(
int traverseStorageIndex)
370 BaseInventoryStorageComponent lastStorage =
m_aTraverseStorage.Get(traverseStorageIndex);
374 IEntity entity = lastStorage.GetOwner();
378 SCR_InventoryMenuUI inventoryMenu = GetInventoryMenuHandler();
383 auto storage = PopState( traverseStorageIndex );
408 float GetTotalResources(notnull SCR_ResourceConsumer resourceContainer)
410 return resourceContainer.GetAggregatedResourceValue();
414 float GetMaxResources(notnull SCR_ResourceConsumer resourceContainer)
416 return resourceContainer.GetAggregatedMaxResourceValue();
420 void GetTraverseStorage( out notnull array<BaseInventoryStorageComponent> aTraverseStorage )
427 void Action_ChangePage( SCR_SpinBoxPagingComponent pSpinBox,
int page )
429 int slotToFocus = -1;
434 GetGame().GetCallqueue().CallLater(
m_MenuHandler.FocusOnSlotInStorage, 0,
false,
this, slotToFocus);
438 void Action_PrevPage()
440 int slotToFocus = -1;
445 GetGame().GetCallqueue().CallLater(
m_MenuHandler.FocusOnSlotInStorage, 0,
false,
this, slotToFocus);
448 void Action_NextPage()
450 int slotToFocus = -1;
455 GetGame().GetCallqueue().CallLater(
m_MenuHandler.FocusOnSlotInStorage, 0,
false,
this, slotToFocus);
460 bool IsStorageEnabled() {
return m_bEnabled; }
469 BaseInventoryStorageComponent GetStorage() {
return m_Storage; }
472 EquipedWeaponStorageComponent GetWeaponStorage() {
return EquipedWeaponStorageComponent.Cast(
m_Storage ); }
475 string GetStorageName()
477 ItemAttributeCollection attributes =
m_Storage.GetAttributes();
480 UIInfo uiInfo = attributes.GetUIInfo();
483 return uiInfo.GetName();
493 void Show(
bool bShow )
534 Widget GetStorageGrid() {
return m_wGrid; }
541 SCR_InventoryMenuUI GetInventoryMenuHandler() {
return m_MenuHandler; }
544 SCR_InventoryStorageManagerComponent GetInventoryManager() {
return m_InventoryManager; }
584 GridSlot.SetColumn( pWidget, iCol );
598 if (WeaponAttachmentsStorageComponent.Cast(pComponent))
601 if (SCR_ResourceComponent.FindResourceComponent(pComponent.GetOwner()))
604 if (BaseInventoryStorageComponent.Cast(pComponent))
607 if (pComponent.GetOwner().
FindComponent(SCR_ArsenalInventoryStorageManagerComponent))
610 BaseInventoryStorageComponent inventoryStorageComponent = GetCurrentNavigationStorage();
612 if (inventoryStorageComponent)
641 private bool ValidateNavigationQueue()
645 if (traverseSize > 0)
647 BaseInventoryStorageComponent lastStorage = null;
648 ref array<IEntity> rootItems =
new array<IEntity>();
651 for (
int i = 0; i < traverseSize; i++)
658 for (
int j = 0; j < rootItems.Count(); j++)
663 auto storage = BaseInventoryStorageComponent.Cast(
664 rootItems[j].FindComponent(BaseInventoryStorageComponent)
668 BaseInventoryStorageComponent parentStorage;
669 if ( current.GetParentSlot() )
670 parentStorage = current.GetParentSlot().GetStorage();
672 found = storage == current || parentStorage == storage;
682 if (i == traverseSize - 1)
684 lastStorage = current;
689 current.GetAll(rootItems);
717 float resources, maxResources;
718 bool hasStored =
false;
758 if (focusedSlot &&
m_aSlots.Contains(focusedSlot))
762 if ( ValidateNavigationQueue() )
765 if (traverseSize > 0)
794 array<IEntity> tmpAItemsInStorage =
new array<IEntity>();
795 BaseInventoryStorageComponent tmpStorage =
m_Storage;
804 array<IEntity> itemsInStorage = {};
809 if (focusedItemName.IsEmpty())
814 if (uiSlot && uiSlot.GetItemResource() == focusedItemName)
859 SCR_ResourceComponent resourceComponent = SCR_ResourceComponent.FindResourceComponent(targetStorage.GetOwner());
860 if(!resourceComponent)
863 float totalResources, maxResources;
865 Widget resourceDisplay = targetTitle.FindAnyWidget(
"ResourceDisplayStored");
870 resourceText =
TextWidget.Cast(resourceDisplay.FindAnyWidget(
"ResourceText"));
873 if (resourceText &&
SCR_ResourceSystemHelper.GetStoredAndMaxResources(resourceComponent, totalResources, maxResources))
876 resourceDisplay.SetVisible(
true);
880 resourceDisplay.SetVisible(
false);
884 resourceDisplay = targetTitle.FindAnyWidget(
"ResourceDisplayAvailable");
888 resourceText =
TextWidget.Cast(resourceDisplay.FindAnyWidget(
"ResourceText"));
891 if (resourceText &&
SCR_ResourceSystemHelper.GetAvailableResources(resourceComponent, totalResources) && resourceComponent.IsResourceTypeEnabled())
894 resourceDisplay.SetVisible(
true);
899 resourceDisplay.SetVisible(
false);
910 int iCompensationOffset = 0;
911 array<SCR_InventorySlotUI> slotsToUpdate = {};
915 RplComponent rplComp;
917 foreach (
int i,
IEntity item : pItemsInStorage)
928 if (attributes && attributes.IsStackable())
936 iCompensationOffset++;
940 if (i - iCompensationOffset >
m_aSlots.Count() - 1)
943 m_aSlots[i - iCompensationOffset++] = uiSlot;
952 rplComp = RplComponent.Cast(item.FindComponent(RplComponent));
956 slotsToUpdate.Insert(uiSlot);
964 iCompensationOffset++;
969 slot.OnOwnedSlotsUpdated();
976 array<IEntity> pItemsInStorage = {};
978 BaseInventoryStorageComponent storage = GetCurrentNavigationStorage();
992 if (slot.GetInventoryItemComponent().GetOwner().GetPrefabData().GetPrefabName() != itemPrefab)
1000 foreach (
IEntity item : pItemsInStorage)
1002 if (item.GetPrefabData().GetPrefabName() != itemPrefab)
1007 stackChange = changeMap.Get(slotId);
1011 stackChange.param2++;
1012 stackChange.param3 = iic;
1018 if (finalChange.param1 == finalChange.param2)
1021 m_aSlots[slotId].UpdateInventorySlot(finalChange.param3, finalChange.param2);
1029 int count = pItemsInStorage.Count();
1032 for (
int i =
m_aSlots.Count() - count; i > 0; i--)
1041 for (
int i = 0; i < count; i++)
1044 m_aSlots[i].UpdateReferencedComponent(pItemsInStorage[i]);
1081 IEntity pEntity = pInvItem.GetOwner();
1085 if ( !pEntPrefabData )
1087 float fWeight = pInvItem.GetTotalWeight();
1091 for (
int i =
m_aSlots.Count() - 1; i >= 0; i-- )
1097 if ( fWeight != pInvItemActual.GetTotalWeight() )
1100 IEntity pEnt = pInvItemActual.GetOwner();
1104 if ( pMagazineActual )
1106 if (pMagazineActual.GetAmmoCount() != pMagazine.GetAmmoCount())
1120 for (
int i = 0; i < iCount; i++ )
1124 string sName =
m_aSlots[ i ].GetItemName();
1125 if ( sName.Compare( sItemName,
false ) == 0 )
1137 return string.Empty;
1138 if ( !pAttributes.GetUIInfo() )
1139 return string.Empty;
1140 return pAttributes.GetUIInfo().GetName();
1147 ref array<IEntity> pItemsInStorage =
new array<IEntity>();
1162 array<int> aCoordinates;
1163 int iWidgetColumnSize, iWidgetRowSize;
1164 int iPageCounter = 0;
1174 Widget w = pSlot.GetWidget();
1178 iWidgetColumnSize = pSlot.GetColumnSize();
1179 iWidgetRowSize = pSlot.GetRowSize();
1182 aCoordinates =
m_iMatrix.Reserve1stFreePlace( iWidgetColumnSize, iWidgetRowSize );
1185 if( ( aCoordinates[0] != -1 ) && ( aCoordinates[1] != -1 ) )
1187 GridSlot.SetColumn( w, aCoordinates[0] );
1188 GridSlot.SetRow( w, aCoordinates[1] );
1189 pSlot.SetPage( iPageCounter );
1196 aCoordinates =
m_iMatrix.Reserve1stFreePlace( iWidgetColumnSize, iWidgetRowSize );
1197 if( ( aCoordinates[0] == -1 ) || ( aCoordinates[1] == -1 ) )
1199 GridSlot.SetColumn( w, aCoordinates[0] );
1200 GridSlot.SetRow( w, aCoordinates[1] );
1201 pSlot.SetPage( iPageCounter );
1203 GridSlot.SetColumnSpan( w, iWidgetColumnSize );
1204 GridSlot.SetRowSpan( w, iWidgetRowSize );
1212 array<int> aCoordinates = {};
1226 array<int> aCoordinates =
m_iMatrix.Reserve1stFreePlace( 1, 1 );
1228 pAttrib.SetSlotType(
ESlotID.SLOT_ANY );
1229 pAttrib.SetSlotSize(
ESlotSize.SLOT_1x1 );
1239 protected void ShowPage(
int iPage, out
int slotToFocus = -1 )
1247 array<Widget> emptySlots = {};
1250 child =
m_wGrid.GetChildren();
1252 for (
int i = 0; i <
size; ++i)
1256 emptySlots.Insert(child);
1257 child.SetOpacity(1);
1258 child = child.GetSibling();
1266 bool visible = (pSlot.GetPage() == iPage);
1267 pSlot.SetSlotVisible(visible);
1272 if (visible && !firstVisibleSlot)
1273 firstVisibleSlot = pSlot;
1278 if (slotToFocus == -1)
1285 for (
int y = 0, maxY = pSlot.GetRowSize(); y < maxY; ++y)
1287 for (
int x = 0, maxX = pSlot.GetColumnSize(); x < maxX; ++x)
1290 if (!emptySlots.IsIndexValid(
index))
1293 emptySlots[
index].SetOpacity(0);
1305 ShowPagesCounter(
false );
1326 titleLayout.RemoveChild(title);
1340 array<IEntity> pItemsInStorage =
new array<IEntity>();
1341 GetAllItems(pItemsInStorage, GetCurrentNavigationStorage());
1344 BaseInventoryStorageComponent currentStorage;
1348 ItemPreviewManagerEntity manager;
1355 for (
int i = 0; i < count; ++i)
1359 if (currentStorage.GetOwner().FindComponent(SCR_ArsenalInventoryStorageManagerComponent))
1360 title =
GetGame().GetWorkspace().CreateWidgets(SUPPLY_TITLE_LAYOUT, titleLayout);
1361 else if (SCR_ResourceComponent.FindResourceComponent(currentStorage.GetOwner(),
true))
1362 title =
GetGame().GetWorkspace().CreateWidgets(SUPPLY_TITLE_LAYOUT, titleLayout);
1364 title =
GetGame().GetWorkspace().CreateWidgets(STORAGE_TITLE_LAYOUT, titleLayout);
1372 manager = GetInventoryMenuHandler().GetItemPreviewManager();
1376 previewEntity = null;
1377 if (renderPreview && currentStorage)
1378 manager.SetPreviewItem(renderPreview, currentStorage.GetOwner(), null,
true);
1385 if (!closeContainerButton)
1388 closeContainerButton.m_OnActivated.Insert(
m_MenuHandler.OnAction);
1391 closeContainerButton.SetVisible(
true);
1393 navigationHelperWidget =
ButtonWidget.Cast(title.FindAnyWidget(
"navigationHelper"));
1395 if (!navigationHelperWidget)
1404 if(!navigationHandler)
1415 if(!titleNameWidget)
1420 UIInfo uiInfo = attributes.GetUIInfo();
1423 titleNameWidget.SetText(uiInfo.GetName());
1428 protected void GetAllItems( out notnull array<IEntity> pItemsInStorage, BaseInventoryStorageComponent pStorage = null )
1432 IEntity ownerEntity = pStorage.GetOwner();
1435 SCR_ArsenalInventoryStorageManagerComponent arsenalManagerComponent = SCR_ArsenalInventoryStorageManagerComponent.Cast(ownerEntity.
FindComponent(SCR_ArsenalInventoryStorageManagerComponent));
1437 if (arsenalManagerComponent)
1444 ItemPreviewManagerEntity itemPreviewManagerEntity = chimeraWorld.GetItemPreviewManager();
1447 array<ResourceName> prefabsToSpawn =
new array<ResourceName>();
1449 if (!arsenalComponent)
1456 pItemsInStorage.Insert(itemPreviewManagerEntity.ResolvePreviewEntityForPrefab(
resourceName));
1465 if (ClothNodeStorageComponent.Cast(pStorage))
1467 array<BaseInventoryStorageComponent> pStorages = {};
1468 array<IEntity> pItems = {};
1469 pStorage.GetOwnedStorages(pStorages, 1,
false);
1471 foreach (BaseInventoryStorageComponent pStor : pStorages)
1475 pStor.GetAll(pItems);
1476 pItemsInStorage.Copy(pItems);
1481 pStorage.GetAll(pItemsInStorage);
1493 protected void GetAllItemsFromDepth( out notnull array<IEntity> pItemsInStorages,
int iDepth = 3,
int iDepthDefault = 0 )
1499 if ( iDepthDefault == 0 )
1500 iDepthDefault = iDepth;
1502 #ifdef DEBUG_INVENTORY20
1503 if ( iDepthDefault == iDepth )
1509 UIInfo pInfo = pAttribs.GetUIInfo();
1511 sStorageName = pInfo.GetName();
1512 Print(
"-----------------------------------------------" );
1518 array<IEntity> aTraverseStorageTmp =
new array<IEntity>();
1519 m_Storage.GetAll( aTraverseStorageTmp );
1523 for (
int m = 0; m < aTraverseStorageTmp.Count(); m++ )
1525 pEntity = aTraverseStorageTmp[ m ];
1527 m_Storage = BaseInventoryStorageComponent.Cast( pEntity.
FindComponent( BaseInventoryStorageComponent ) );
1530 pItemsInStorages.Insert( pEntity );
1533 #ifdef DEBUG_INVENTORY20
1538 string sTextIn =
"";
1539 ConstructSlashes( sTextIn, iDepthDefault-iDepth );
1544 #ifdef DEBUG_INVENTORY20
1547 if ( pInventoryComponent )
1550 if ( pInventoryComponent.GetAttributes() )
1551 if ( pInventoryComponent.GetAttributes().GetUIInfo() )
1552 sName = pInventoryComponent.GetAttributes().GetUIInfo().GetName();
1553 string sTextIn =
"";
1554 ConstructSlashes( sTextIn, iDepthDefault-iDepth );
1555 PrintFormat(
"|%1 %2 ( %3 )", sTextIn, sName, pInventoryComponent );
1568 m_wWeightText.SetTextFormat(
"#AR-ValueUnit_Short_Kilograms", totalWeight);
1577 float totalWeight = storage.GetTotalWeight();
1579 totalWeight =
Math.Round(totalWeight * 100);
1581 return totalWeight / 100;
1601 percentageText.SetTextFormat(
"#AR-ValueUnit_Percentage_Add", percentage - 100);
1602 percentageText.SetVisible(percentage > 100);
1603 Widget progressVolumeOver =
m_widget.FindAnyWidget(
"ProgressVolumeOver");
1604 progressVolumeOver.SetVisible(percentage > 100);
1612 SCR_ResourceComponent resComp;
1634 resComp = SCR_ResourceComponent.FindResourceComponent(item);
1661 float occupiedVolumePercantage;
1667 if (occupiedSpace != 0)
1668 occupiedVolumePercantage =
Math.Round(occupiedSpace / (capacity / 100));
1672 return occupiedVolumePercantage;
1681 float fOccupied = 0.0;
1682 if (ClothNodeStorageComponent.Cast(storage))
1684 array<BaseInventoryStorageComponent> pOwnedStorages = {};
1685 storage.GetOwnedStorages(pOwnedStorages, 1,
false);
1686 foreach (BaseInventoryStorageComponent pSubStorage : pOwnedStorages)
1688 fOccupied += pSubStorage.GetOccupiedSpace();
1692 fOccupied = storage.GetOccupiedSpace();
1704 float fMaxCapacity = 0.0;
1705 if (ClothNodeStorageComponent.Cast(storage))
1707 array<BaseInventoryStorageComponent> pOwnedStorages = {};
1708 storage.GetOwnedStorages(pOwnedStorages, 1,
false);
1709 foreach (BaseInventoryStorageComponent pSubStorage : pOwnedStorages)
1712 fMaxCapacity += pSubStorage.GetMaxVolumeCapacity();
1717 fMaxCapacity = storage.GetMaxVolumeCapacity();
1720 return fMaxCapacity;
1771 private void ConstructSlashes( out
string sText,
int iSlashes )
1773 for (
int m = 0; m <= ( iSlashes * 2 ); m++ )
1791 for(
int iLoop = 0; iLoop <
m_iMaxRows; iLoop++ )
1812 emptySlot.RemoveFromHierarchy();
1822 if ( pEntity == null )
1829 void GetSlots( out notnull array<SCR_InventorySlotUI> outSlots )
1840 private void ShowPagesCounter(
bool bShow =
false,
int iPage = 0,
int iNumberOfPages = 0 )
1863 void SetLastFocusedSlot( SCR_InventorySlotUI pSlot )
1870 void SetSlotFocused( SCR_InventorySlotUI pSlotUI = null,
bool bSelected =
true )
1886 void SetSlotSelected( SCR_InventorySlotUI pSlot = null,
bool bSelected =
true )
1899 void ShowContainerBorder(
bool bShow )
1907 SCR_UISoundEntity.SoundEvent(SCR_SoundEvent.SOUND_FE_BUTTON_HOVER);
1912 void ActivateStorageButton(
bool active)
1918 foreach (SCR_InventorySlotUI slot :
m_aSlots)
1920 if (slot && slot.GetButtonWidget())
1921 slot.GetButtonWidget().SetEnabled(!active);
1930 int GetFocusedSlotId()
1938 int GetSlotId(SCR_InventorySlotUI slot)
1944 int GetSlotIdForItem(ResourceName itemName)
1947 SCR_InventorySlotUI slot;
1949 for (
int slotId = 0; slotId < slotCount; ++slotId)
1970 ItemPreviewManagerEntity manager = world.GetItemPreviewManager();
1982 manager.SetPreviewItem(renderPreview, previewEntity, null,
true);
1994 if ( !pSlot.IsSelected() )
1996 pSlot.SetEnabledForMove( !bDim );
2059 BaseInventoryStorageComponent storage,
2063 array<BaseInventoryStorageComponent> aTraverseStorage = null)
2073 if ( aTraverseStorage )
ArmaReforgerScripted GetGame()
ResourceName resourceName
SCR_EAnalyticalItemSlotType
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
override bool IsTraversalAllowed()
ScriptInvokerBase< ScriptInvokerVoidMethod > ScriptInvokerVoid
void SCR_UniversalInventoryStorageComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
proto native external bool IsInherited(typename type)
enum EVehicleType IEntity
proto external Managed FindComponent(typename typeName)
proto external EntityPrefabData GetPrefabData()
Replication item identifier.
bool GetAvailablePrefabs(out notnull array< ResourceName > availablePrefabs)
void SetArsenalResourceComponent(SCR_ResourceComponent component)
ScriptInvoker GetOnClick()
void IncreaseStackNumberWithRplId(RplId id)
void OverrideReferencedComponent(notnull InventoryItemComponent iic)
ResourceName GetItemResource()
void IncreaseStackNumber()
void ShowPage(int iPage, out int slotToFocus=-1)
void RemoveSlotUI(SCR_InventorySlotUI pSlot)
SCR_InventorySlotUI m_pSelectedSlot
bool CheckIfAnyItemInStorageHasResources(array< IEntity > items)
LocalizedString m_sSuppliesStoredFormat
SCR_SpinBoxPagingComponent m_wPagingSpinboxComponent
Widget m_wCapacityDisplay
ref array< BaseInventoryStorageComponent > m_aTraverseStorage
WorkspaceWidget m_workspaceWidget
TextWidget m_wCapacityPercentageText
void UpdateTotalWeight(float totalWeight, Color fontColor=Color.Gray25)
bool IsWarningOverlayVisible()
float GetTotalRoundedUpWeight(BaseInventoryStorageComponent storage)
SCR_InventorySlotUI m_pPrevSelectedSlot
override bool OnFocus(Widget w, int x, int y)
void RefreshSlot(int index)
Widget CreateEmptySlotUI(int iRow, int iCol)
void SetPagingActive(bool active)
SizeLayoutWidget m_wWidthOverride
ref SCR_ResourceSystemSubscriptionHandleBase m_ResourceSubscriptionHandleConsumer
void UpdateStoredResources(float totalResources, float maxResources)
override event void HandlerDeattached(Widget w)
SCR_CharacterInventoryStorageComponent m_InventoryStorage
void FindAndSetTitleName(Widget targetTitle, BaseInventoryStorageComponent targetStorage)
ButtonWidget m_wCloseStorageButton
void GetAllItems(out notnull array< IEntity > pItemsInStorage, BaseInventoryStorageComponent pStorage=null)
float GetOccupiedVolumePercentage(BaseInventoryStorageComponent storage, float occupiedSpace=0)
float GetMaxVolumeCapacity(BaseInventoryStorageComponent storage)
ref array< SCR_InventorySlotUI > m_aSlots
ref array< Widget > m_aTraverseTitle
LoadoutAreaType m_eSlotAreaType
void CreateEmptyLayout(bool recreate=false)
void UpdateAvailableResources(float totalResources, bool hasStored)
InputManager m_pInputManager
SCR_InventorySlotUI m_pLastFocusedSlot
LoadoutAreaType GetSlotAreaType()
const int SLOT_LAYOUT_WIDTH
int FindItemByName(string sItemName, int iActualIndex)
SCR_ResourceComponent m_ResourceComponent
float GetOccupiedVolume(BaseInventoryStorageComponent storage)
ChimeraCharacter m_Player
Widget m_wResourceAvailableDisplay
void ReserveAndSetSlot(int iIndex,)
int GetIndexFromCoords(int x, int y)
void UpdateOwnedSlots(notnull array< BaseInventoryStorageComponent > pItemsInStorage)
LocalizedString m_sSuppliesAvailableFormat
override void HandlerAttached(Widget w)
static ref ScriptInvokerVoid s_OnArsenalEnter
void UpdateVolumePercentage(float percentage, bool previewOnly=false)
void GetUISlots(out array< SCR_InventorySlotUI > outArray)
void UpdateSlotUI(ResourceName itemPrefab)
RenderTargetWidget m_wPreviewImage
ItemPreviewWidget m_wTraverseItemStorage
void GetAllItemsFromDepth(out notnull array< IEntity > pItemsInStorages, int iDepth=3, int iDepthDefault=0)
SCR_InventoryMenuUI m_MenuHandler
void SetStorageAsHighlighted(bool isVisible, EInvInsertFailReason reason=EInvInsertFailReason.OK)
void SCR_InventoryStorageBaseUI(BaseInventoryStorageComponent storage, LoadoutAreaType slotID=null, SCR_InventoryMenuUI menuManager=null, int iPage=0, array< BaseInventoryStorageComponent > aTraverseStorage=null)
TextWidget m_wResourceStoredText
Widget m_wResourceStoredDisplay
InventoryItemComponent GetItemComponentFromEntity(IEntity pEntity)
ItemPreviewWidget m_wItemStorage
override bool OnMouseEnter(Widget w, int x, int y)
static const ref Color m_WeightDefault
ref array< Widget > m_aEmptySlotWidget
array< SCR_InventorySlotUI > GetUISlots()
void ClearTraverseTitles()
SCR_InventorySlotUI CreateSlotUI(InventoryItemComponent pComponent, SCR_ItemAttributeCollection pAttributes=null)
ButtonWidget m_wLastCloseTraverseButton
ref array< SCR_ResourceComponent > m_aResourceCompsInStorage
int FindItem(notnull InventoryItemComponent pInvItem)
string GetNameFromComponent(notnull InventoryItemComponent pComponent)
TextWidget m_wResourceAvailableText
RenderTargetWidget m_wTraversePreviewImage
void UpdateOwnedSlots(notnull array< IEntity > pItemsInStorage)
BaseInventoryStorageComponent m_Storage
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
static ScriptInvokerVoid GetOnArsenalEnter()
SCR_InventoryProgressBar m_ProgressBar
void UpdateContainerResources(notnull Widget targetTitle, notnull BaseInventoryStorageComponent targetStorage)
void FillItemsFromStorage(BaseInventoryStorageComponent storage)
bool IsStorageHighlighted()
void ShowItemDetails(string sName, string sDescription, string sWeight)
SCR_InventoryStorageManagerComponent m_InventoryManager
void FillWithEmptySlots()
void DestroyEmptySlots()
Destroys all empty slots which were created by this handler.
override bool OnFocusLost(Widget w, int x, int y)
TextWidget m_wStorageName
SCR_EAnalyticalItemSlotType GetAnalyticalItemSlotType()
void GetSlots(out notnull array< SCR_InventorySlotUI > outSlots)
SCR_ResourceConsumer m_ResourceConsumer
void SetSlotAreaType(LoadoutAreaType eSlotType)
bool OnDrop(SCR_InventorySlotUI slot)
ButtonWidget GetLastCloseTraverseButton()
SCR_InventorySlotUI m_pFocusedSlot
void ~SCR_InventoryStorageBaseUI()
void SetCanNavigate(bool enable)
static SCR_SpinBoxPagingComponent GetSpinBoxPagingComponent(string name, Widget parent, bool searchAllChildren=true)
UIInfo - allows to define UI elements.
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)
proto external PlayerController GetPlayerController()
proto external float GetMaxVolumeCapacity()