30 con.SetColumnCount(0);
31 con.SetForceShow(
true);
42 return ent && ( ent.GetInventory().GetCargo() || (ent.GetSlotsCountCorrect() > 0 && ent.CanDisplayAnyAttachmentSlot()) );
73 return ent.IsTakeable();
101 if (CanTakeToInventory())
110 if (il.
IsValid() &&
g_Game.GetPlayer().GetInventory().LocationCanAddEntity( il ))
113 #ifdef PLATFORM_CONSOLE
135 if( item_in_hands && ent && hands_icon )
152 if( ent != selected_item)
154 if( selected_item &&
g_Game.GetPlayer().CanDropEntity( selected_item ) )
156 bool draggable =
false;
159 draggable = !player.GetInventory().HasInventoryReservation( selected_item, null ) && !player.IsItemsToDelete();
160 draggable = draggable && selected_item.GetInventory().CanRemoveEntity();
164 if( selected_item.GetTargetQuantityMax() < selected_item.GetQuantity() )
165 selected_item.SplitIntoStackMaxClient( null, -1 );
167 player.PhysicalPredictiveDropItem( selected_item );
176 if( ent && ent.GetInventory().CanRemoveEntity())
183 g_Game.GetPlayer().PredictiveSwapEntities( item_in_hands, ent );
189 if(
g_Game.GetPlayer().GetHumanInventory().CanAddEntityInHands( ent ) )
191 g_Game.GetPlayer().PredictiveTakeEntityToHands( ent );
207 if( c && c.GetMainWidget() )
226 return GetFocusedContainer().GetColumnCount();
233 return mask & EInventoryIconVisibility.HIDE_VICINITY;
242 int visible_items_count = 0;
243 int visible_rows = 0;
246 for (
x = 0;
x < items.Count(); ++
x )
248 item = items.Get(
x );
253 visible_items.Insert( item );
254 visible_items_count++;
259 for (
x = 0;
x < visible_items_count; ++
x )
261 item = visible_items.Get(
x );
266 icon.GetMainWidget().Show(
true );
269 #ifdef PLATFORM_CONSOLE
270 if (selectedItem == item)
294 conta.SetSlotIcon(icon);
314 icon.GetMainWidget().Show(
false );
322 slots_last.
GetSlotIcon( 0 ).GetMainWidget().Show(
true );
324 slots_last.GetMainWidget().Update();
342 string name = w.GetName();
343 name.Replace(
"PanelWidget",
"Render" );
363 if(
g_Game.GetPlayer().GetInventory().HasInventoryReservation( item, null ) )
368 if( !item.GetInventory().CanRemoveEntity() )
373 if ( player.GetInventory().HasEntityInInventory( item ) &&
g_Game.GetPlayer().GetHumanInventory().CanAddEntityInHands( item ) )
375 player.PredictiveTakeEntityToHands( item );
381 if( dst.
IsValid() && player.GetInventory().LocationCanAddEntity( dst ) )
393 menu.RefreshQuickbar();
400 string quantity_text =
"";
404 float quantity = item_base.GetQuantity();
406 if ( item.IsInherited( Magazine ) )
408 Magazine magazine_item = Magazine.Cast( item );
409 ammo = magazine_item.GetAmmoCount();
410 quantity_text = ammo.ToString();
411 return quantity_text;
413 else if ( item.IsInherited( ItemBook ) )
417 int max = item.GetQuantityMax();
424 float tmp =
Math.
Round( ( quantity / max ) * 100 );
425 quantity_text = tmp.
ToString() +
"%";
429 quantity_text = quantity.
ToString();
433 return quantity_text;
441 if ( item.IsInherited( Magazine ) )
445 else if ( item.IsInherited( ItemBook ) )
449 int max = item.GetQuantityMax();
450 bool bar = item.ConfigGetBool(
"quantityBar" );
453 if ( max == 1 || bar )
472 if ( item.IsInherited( Magazine ) )
474 Magazine magazine_item = Magazine.Cast( item );
475 quantity = magazine_item.GetAmmoCount();
479 quantity = item_base.GetQuantity();
488 string name = w.GetName();
489 name.Replace(
"PanelWidget",
"Render" );
499 string name = w.GetName();
500 name.Replace(
"PanelWidget",
"Render" );
505 #ifdef DIAG_DEVELOPER
508 ShowActionMenu(itemAtPos);
517 if ( item && showed_items )
544 string name = w.GetName();
545 name.Replace(
"PanelWidget",
"Render" );
563 if( !item.GetInventory().CanRemoveEntity() )
566 if( player.CanDropEntity( item ) )
568 if( item.GetTargetQuantityMax() < item.GetQuantity() )
569 item.SplitIntoStackMaxClient( null, -1 );
571 player.PhysicalPredictiveDropItem( item );
578 int number_of_containers =
m_Container.m_Body.Count();
579 int number_of_containers_needed = ( items.Count() /
ITEMS_IN_ROW ) + 1;
580 int difference = number_of_containers_needed - number_of_containers;
583 for (g = number_of_containers; g < number_of_containers_needed; g++)
606 for (g = number_of_containers - 1 ; g >= number_of_containers_needed ; g--)
622 for (
int i = 0; i < number_of_containers_needed - 1; i++ )
627 RecomputeOpenedContainers();
643 #ifdef PLATFORM_CONSOLE
644 PrepareOwnedTooltip(focusedItem, -1,
y);
646 PrepareOwnedTooltip(focusedItem);
664 string name = w.GetName();
665 name.Replace(
"PanelWidget",
"Render");
684 PrepareOwnedTooltip(item);
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
bool CanSetActionFromInventory(ItemBase mainItem, ItemBase targetItem)
bool CanPerformActionFromInventory(ItemBase mainItem, ItemBase targetItem)
Super root of all classes in Enforce script.
void ClosableContainer(LayoutHolder parent, int sort=-1)
override void UpdateRadialIcon()
override EntityAI GetFocusedItem()
override bool IsDisplayable()
override int GetHideIconMask()
script counterpart to engine's class Inventory
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
bool CombineItems(EntityAI entity1, EntityAI entity2)
override void OnRightClick()
proto native bool IsValid()
verify current set inventory location
override bool IsTakeable()
EntityAI GetSelectedItem()
HandsPreview GetHandsPreview()
void SetWidgetDraggable(Widget w, bool draggable)
void SetSelectedItemEx(EntityAI selected_item, Container selected_container, LayoutHolder selected_icon)
bool EvaluateContainerDragabilityDefault(EntityAI entity)
SlotsIcon GetSelectedIcon()
static ItemManager GetInstance()
static int HasItemQuantity(notnull EntityAI item)
SlotsIcon GetSlotIcon(int index)
Widget GetSelectedPanel()
Widget GetRadialIconPanel()
override void UpdateInterval()
ImageWidget GetGhostSlot()
void Init(EntityAI obj, bool reservation=false)
Widget GetMicromanagedPanel()
static void TakeOrSplitToInventoryLocation(notnull PlayerBase player, notnull InventoryLocation dst)
void ToggleContainer(Widget w, EntityAI item)
void ~VicinitySlotsContainer()
override bool IsItemActive()
ref AttachmentsGroupContainer m_Container
override bool InspectItem()
int HasItemQuantity(EntityAI item)
void VicinitySlotsContainer(LayoutHolder parent)
override bool TransferItem()
void MouseButtonDown(Widget w, int x, int y, int button)
bool ExcludeFromContainer(EntityAI item)
Decides on the icon visibility.
override void OnDropReceivedFromHeader(Widget w, int x, int y, Widget receiver)
void MouseClick(Widget w, int x, int y, int button)
void DoubleClick(Widget w, int x, int y, int button)
void PrepareOwnedTooltipAfterItemTransferClick()
override bool CanCombineAmmo()
string GetItemQuantityText(EntityAI item)
float GetItemQuantity(InventoryItem item)
override bool IsItemWithQuantityActive()
ref array< EntityAI > m_ShowedItems
bool IsItemWithContainerActive()
void ShowItemsInContainers(array< EntityAI > items)
void RecomputeNumberOfContainers(array< EntityAI > items)
override void SetLayoutName()
override bool IsDisplayable()
void PrepareOwnedTooltipAfterItemTransfer()
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto string ToString(bool simple=true)
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.
static proto float Round(float f)
Returns mathematical round of value.
static proto float Floor(float f)
Returns floor of value.
FindInventoryLocationType
flags for searching locations in inventory