11 super.HandlerAttached(w);
14 SCR_WeaponAttachmentsStorageComponent weaponStorage = SCR_WeaponAttachmentsStorageComponent.Cast(
m_Storage);
33 super.HandlerDeattached(w);
59 typename type = slot.GetParentContainer().Type();
62 name =
"#AR-Magazine_Name";
66 return magwell.Type();
71 if (!attachment || !attachment.GetAttachmentSlotType())
74 return typename.Empty;
79 type = attachment.GetAttachmentSlotType().Type();
81 name =
"#AR-KeybindSeparator_WeaponOptics";
83 name =
"#AR-AttachmentType_Underbarrel";
85 name =
"#AR-AttachmentType_Bayonet";
87 name =
"#AR-AttachmentType_Suppressor";
91 return typename.Empty;
101 array<IEntity> pItemsInStorage = {};
104 for (
int i = 0; i < count; ++i)
110 pItemsInStorage.Insert(item);
115 for (
int i = 0; i < count; ++i)
119 if (attachment && !attachment.ShouldShowInInspection())
129 const int numberOfItems = pItemsInStorage.Count();
130 const int initialNumberOfSlots =
m_aSlots.Count();
131 if (numberOfItems < initialNumberOfSlots)
134 for (
int i = initialNumberOfSlots - numberOfItems - 1; i > 0; i--)
136 slotUI =
m_aSlots[i + numberOfItems];
148 item = pItemsInStorage[i];
156 slot.UpdateReferencedComponent(iic);
166 if (!slotType || slotName.IsEmpty())
173 m_MenuHandler.AddItemToAttachmentSelection(slotName, inspectionSlot);
189 slotUI.UpdateReferencedComponent(slotUI.GetInventoryItemComponent());
191 Widget slotWidget = slotUI.GetWidget();
202 charPreview.TryGetItemNodePositionInWidgetSpace(-1, transform, screenPos);
203 FrameSlot.SetPos(slotWidget, screenPos[0], screenPos[1]);
220 item = itemComp.GetOwner();
222 callBack.m_pItem = item;
226 callBack.m_pStorageTo =
this;
229 callBack.m_pStorageToFocus = callBack.m_pStorageFrom;
269 BaseInventoryStorageComponent storage,
273 array<BaseInventoryStorageComponent> aTraverseStorage = null,
278 m_eSlotAreaType = slotID;
281 m_iMatrix =
new SCR_Matrix(m_iMaxColumns, m_iMaxRows);
294 protected static const string SLOT_LAYOUT =
"{EB835F21257F0C51}UI/layouts/Menus/Inventory/AttachmentItemSlot.layout";
315 m_widget.AddHandler(
this);
335 return super.OnMouseEnter(w, x, y);
344 return super.OnMouseLeave(w, enterW, x, y);
366 SCR_MagazinePredicate predicate =
new SCR_MagazinePredicate();
369 m_pStorageUI.GetInventoryMenuHandler().ShowAttachmentStorage(predicate);
373 SCR_CompatibleAttachmentPredicate predicate =
new SCR_CompatibleAttachmentPredicate();
376 m_pStorageUI.GetInventoryMenuHandler().ShowAttachmentStorage(predicate);
384 m_pStorageUI.GetInventoryMenuHandler().CloseAttachmentStorage();
ArmaReforgerScripted GetGame()
ref array< SCR_WeaponRackSlotEntity > m_aSlots
SCR_InventoryStorageManagerComponent m_InventoryManager
SCR_EEntitySpawnerSlotType GetSlotType()
void SCR_InventoryAttachmentPointUI(BaseInventoryStorageComponent storage, LoadoutAreaType slotID=null, SCR_InventoryMenuUI menuManager=null, int iPage=0, array< BaseInventoryStorageComponent > aTraverseStorage=null)
BaseInventoryStorageComponent m_Storage
proto external Managed FindComponent(typename typeName)
override bool IsTraversalAllowed()
override void SetRowsAndColumns()
override void HandlerDeattached(Widget w)
override SCR_InventorySlotUI CreateSlotUI(InventoryItemComponent pComponent, SCR_ItemAttributeCollection pAttributes=null)
override Widget GetStorageGrid()
void SCR_InventoryGearInspectionPointUI(BaseInventoryStorageComponent storage, LoadoutAreaType slotID=null, SCR_InventoryMenuUI menuManager=null, int iPage=0, array< BaseInventoryStorageComponent > aTraverseStorage=null, Widget frameSlot=null)
override bool OnDrop(SCR_InventorySlotUI slot)
override void HandlerAttached(Widget w)
void UpdatePreviewSlotWidgets(notnull ItemPreviewWidget charPreview)
void RefreshInspectionSlots()
GetSlotType(InventoryStorageSlot slot, out string name)
SCR_WeaponAttachmentsStorageComponent m_WeaponStorage
ref array< InventoryStorageSlot > m_aStorageSlotsInStorage
void UpdateOwnedSlots(notnull array< IEntity > pItemsInStorage)
override void FillWithEmptySlots()
override void InitPaging()
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
static const string SLOT_LAYOUT
void ShowCompatibleAttachments()
void Select(bool select=true)
SizeLayoutWidget m_wItemSizeLayout
void Highlight(bool highlight)
static const ResourceName ICON_VALID_SLOT
override BaseInventoryStorageComponent GetAsStorage()
override bool OnClick(Widget w, int x, int y, int button)
override void UpdateReferencedComponent(InventoryItemComponent pComponent, SCR_ItemAttributeCollection attributes=null)
void HideCompatibleAttachments()
static const float SLOT_SIZE_DEFAULT
static const float SLOT_SIZE_HIGHLIGHTED
override bool OnDrop(SCR_InventorySlotUI slot)
ImageWidget m_wIconWidget
static SCR_InventorySlotGearInspectionUI s_SelectedPoint
bool m_bCompatibleAttachmentsShown
override bool OnMouseEnter(Widget w, int x, int y)
static const ResourceName ICON_INVALID_SLOT
void Destroy()
Removes just the UI slot.
void SCR_InventorySlotUI(InventoryItemComponent pComponent=null, SCR_InventoryStorageBaseUI pStorageUI=null, bool bVisible=true, int iSlotIndex=-1, SCR_ItemAttributeCollection pAttributes=null)
InventoryItemComponent GetInventoryItemComponent()
SCR_InventoryStorageBaseUI GetStorageUI()
InventoryItemComponent m_pItem
SCR_InventoryStorageBaseUI m_pStorageUI