27 GetMainWidget().SetFlags(
WidgetFlags.IGNOREPOINTER );
28 m_MainWidget = m_MainWidget.FindWidget(
"body" );
29 GetMainWidget().SetFlags(
WidgetFlags.IGNOREPOINTER );
40 RecomputeOpenedContainers();
69 return m_ActiveIndex == m_OpenedContainers.Count() - 1;
74 int index = m_ActiveIndex - 1;
75 int attachment_start_index = -1;
76 int cargo_start_index = -1;
77 int attachment_end_index = -1;
78 int cargo_end_index = -1;
82 attachment_start_index = 0;
84 attachment_end_index++;
90 cargo_start_index = attachment_end_index + 1;
96 if ( m_ActiveIndex > m_OpenedContainers.Count() )
98 m_ActiveIndex = m_OpenedContainers.Count();
103 #ifdef PLATFORM_CONSOLE
104 if ( m_MainWidget.FindAnyWidget(
"Cursor") )
105 m_MainWidget.FindAnyWidget(
"Cursor").Show(
true );
111 if( index.InRange( 0, attachment_end_index ) )
132 else if( index.InRange( cargo_start_index, cargo_end_index ) )
136 if( index == cargo_start_index )
144 SetFocusedContainer(
m_AttachmentCargos.GetElement( index - 1 - cargo_start_index ) );
154 if( m_MainWidget.FindAnyWidget(
"Cursor") )
155 m_MainWidget.FindAnyWidget(
"Cursor").Show(
false );
162 if( !active_container )
170 if( next_pos > (
y + y_s ) )
184 super.Insert( container, pos, immedUpdate );
189 if (m_ActiveIndex == 0)
191 if (CanTakeToInventory())
193 EntityAI item_in_hands =
GetGame().GetPlayer().GetHumanInventory().GetEntityInHands();
194 if (item_in_hands &&
GetGame().
GetPlayer().GetHumanInventory().CanRemoveEntityInHands() && !
GetGame().
GetPlayer().GetInventory().HasInventoryReservation(item_in_hands, null))
198 m_MainWidget.FindAnyWidget(
"Cursor").Show(
false );
199 m_MainWidget.FindAnyWidget(
"hands_preview_root").SetAlpha( 0.7 );
205 else if (GetFocusedContainer())
207 return GetFocusedContainer().TransferItem();
216 if (m_ActiveIndex == 0)
221 if ( item_in_hands.CanBeSplit() )
223 item_in_hands.OnRightClick();
227 else if( GetFocusedContainer() )
229 return GetFocusedContainer().SplitItem();
239 if (m_ActiveIndex == 0)
245 if (player && player.GetHumanInventory().CanRemoveEntityInHands() && !player.GetInventory().HasInventoryReservation(item_in_hands, null))
247 bool res = player.PredictiveTakeOrSwapAttachment(item_in_hands);
254 m_MainWidget.FindAnyWidget(
"Cursor").Show(
false);
255 m_MainWidget.FindAnyWidget(
"hands_preview_root").SetAlpha(0.7);
261 else if (GetFocusedContainer())
263 return GetFocusedContainer().EquipItem();
271 super.SetActive(active);
273 EntityAI item_in_hands = player.GetHumanInventory().GetEntityInHands();
277 if( m_MainWidget.FindAnyWidget(
"Cursor" ) )
279 m_MainWidget.FindAnyWidget(
"Cursor" ).Show( active );
285 GetMainWidget().GetScreenPos(
x,
y );
286 PrepareOwnedTooltip( item_in_hands, -1,
y );
292 m_MainWidget.FindAnyWidget(
"hands_preview_root" ).SetAlpha( 0.85 );
294 m_MainWidget.FindAnyWidget(
"hands_preview_root" ).SetAlpha( 0.7 );
300 super.SetLastActive();
302 EntityAI item_in_hands = player.GetHumanInventory().GetEntityInHands();
306 if ( m_ActiveIndex == 0)
308 if( m_MainWidget.FindAnyWidget(
"Cursor" ) )
310 m_MainWidget.FindAnyWidget(
"Cursor" ).Show(
true );
314 GetMainWidget().GetScreenPos(
x,
y );
315 PrepareOwnedTooltip( item_in_hands,
x,
y );
320 m_MainWidget.FindAnyWidget(
"hands_preview_root" ).SetAlpha( 0.85 );
333 ItemBase item =
ItemBase.Cast( player.GetHumanInventory().GetEntityInHands() );
344 ItemBase item =
ItemBase.Cast( player.GetHumanInventory().GetEntityInHands() );
355 return player.GetHumanInventory().GetEntityInHands() == null;
362 if (m_ActiveIndex == 0)
365 ItemBase item_in_hands =
ItemBase.Cast(player.GetHumanInventory().GetEntityInHands());
366 if ( item_in_hands && player.CanDropEntity( item_in_hands ) &&
GetGame().
GetPlayer().GetHumanInventory().CanRemoveEntityInHands() && !player.GetInventory().HasInventoryReservation(item_in_hands, null) )
368 if ( item_in_hands.GetTargetQuantityMax() < item_in_hands.GetQuantity() )
369 item_in_hands.SplitIntoStackMaxClient( null, -1 );
371 player.PhysicalPredictiveDropItem( item_in_hands );
372 m_MainWidget.FindAnyWidget(
"Cursor").Show(
false );
373 m_MainWidget.FindAnyWidget(
"hands_preview_root").SetAlpha( 0.7 );
377 else if ( GetFocusedContainer() )
379 return GetFocusedContainer().TransferItemToVicinity();
387 if(m_ActiveIndex == 0)
390 EntityAI item_in_hands = player.GetHumanInventory().GetEntityInHands();
397 else if( GetFocusedContainer() )
399 return GetFocusedContainer().InspectItem();
406 if(m_ActiveIndex == 0)
413 Inventory.GetInstance().DisableMicromanagement();
423 Inventory.GetInstance().EnableMicromanagement();
429 if( GetFocusedContainer() )
431 return GetFocusedContainer().OnSelectButton();
442 string name = w.GetName();
443 name.Replace(
"PanelWidget",
"Render" );
457 return ipw.GetItem();
470 string name = w.GetName();
471 name.Replace(
"PanelWidget",
"Render" );
484 receiver.GetUserData(slots_icon);
502 if( receiver_entity )
508 if( receiver_itemIB && itemIB && receiver_itemIB.CanBeCombined( itemIB ) )
524 Magazine mag = Magazine.Cast(receiver_item);
529 if( player.GetWeaponManager().CanSwapMagazine( wpn, Magazine.Cast(w_entity) ) )
532 if( w_entity.GetHierarchyRootPlayer() == player )
562 else if( receiver_itemIB.GetInventory().CanAddAttachment( w_entity ) )
578 else if( slot_owner && slot_owner.GetInventory().CanAddAttachment( w_entity ) )
584 else if( receiver_entity.GetInventory().CanAddAttachment( w_entity ) )
628 if ( m_am_entity1 == null || m_am_entity2 == null )
return;
635 if (
Class.CastTo(mag, m_am_entity2 ) )
649 if( m_am_entity2.GetSlotsCountCorrect() > 0 )
661 if (
Class.CastTo(wpn1, m_am_entity1 ) &&
Class.CastTo(mag1, m_am_entity2 ) )
676 m_player.PredictiveTakeEntityToTargetCargo( m_am_entity1, m_am_entity2 );
683 if (
Class.CastTo(swapmag1, m_am_entity1) &&
Class.CastTo(swapmag2, m_am_entity2 ) )
697 if ( !
m_player.PredictiveSwapEntities( m_am_entity1, m_am_entity2 ) &&
m_player.GetHumanInventory().CanAddEntityInHands( m_am_entity1 ) )
699 m_player.PredictiveTakeEntityToHands( m_am_entity1 );
711 if ( m_am_entity2.GetSlotsCountCorrect() > 0 )
720 if (
m_player.GetHumanInventory().CanAddEntityInHands( m_am_entity2 ) )
722 m_player.PredictiveTakeEntityToHands( m_am_entity2 );
729 if ( entity1 && entity2 )
PrintString(
"Showing action menu for " + entity1.GetDisplayName() +
" and " + entity2.GetDisplayName() );
732 m_am_entity1 = entity1;
733 m_am_entity2 = entity2;
740 entity.CombineItemsClient(
ItemBase.Cast( entity2 ) );
744 if ( entity1 == null || entity2 == null )
return;
750 cmenu.Add(
"#inv_context_add_as_attachment",
this,
"OnPerformCombination",
new Param1<int>(
InventoryCombinationFlags.ADD_AS_ATTACHMENT ) );
754 cmenu.Add(
"#inv_context_load_chamber",
this,
"OnPerformCombination",
new Param1<int>(
InventoryCombinationFlags.LOAD_CHAMBER ) );
759 cmenu.Add(
"#inv_context_add_as_cargo",
this,
"OnPerformCombination",
new Param1<int>(
InventoryCombinationFlags.ADD_AS_CARGO ) );
769 cmenu.Add(
"#inv_context_take_to_hands",
this,
"OnPerformCombination",
new Param1<int>(
InventoryCombinationFlags.TAKE_TO_HANDS ) );
774 cmenu.Add(
"#inv_context_combine",
this,
"OnPerformCombination",
new Param1<int>(
InventoryCombinationFlags.COMBINE_QUANTITY2 ) );
777 int m_am_pos_x, m_am_pos_y;
782 cmenu.Show( m_am_pos_x, m_am_pos_y );
797 if (!entity1 || !entity2)
return flags;
801 bool skipSwap =
false;
803 if (
Class.CastTo(swapmag1, entity1) &&
Class.CastTo(swapmag2, entity2))
807 if (
Class.CastTo(parentWpn, swapmag1.GetHierarchyParent()))
814 if (
Class.CastTo(parentWpn, swapmag2.GetHierarchyParent()))
828 if (!entity1.IsInherited(
ZombieBase ) && !entity1.IsInherited(
Car ))
841 else if (entity1.GetInventory().CanAddAttachment( entity2 ))
843 if (!entity1.IsInherited(
ZombieBase ) && !entity1.IsInherited(
Car ) && !entity2.IsInherited(
ZombieBase ) && !entity2.IsInherited(
Car ))
848 if (!entity1.GetInventory().HasEntityInInventory(entity2) && entity1.GetInventory().CanAddEntityInCargo( entity2, entity2.GetInventory().GetFlipCargo() )) flags = flags |
InventoryCombinationFlags.ADD_AS_CARGO;
850 if (entity1 ==
m_player.GetHumanInventory().GetEntityInHands() || entity2 ==
m_player.GetHumanInventory().GetEntityInHands())
854 if (entity1 ==
m_player.GetHumanInventory().GetEntityInHands())
879 PluginRecipesManager plugin_recipes_manager = PluginRecipesManager.Cast(
GetPlugin( PluginRecipesManager ) );
907 m_Body.RemoveItem( att );
916 RecomputeOpenedContainers();
966 m_Body.RemoveItem( cargo );
974 RecomputeOpenedContainers();
980 EntityAI item_in_hands = player.GetHumanInventory().GetEntityInHands();
997 target_cargo =
m_Entity.GetInventory().GetCargo();
998 #ifdef PLATFORM_CONSOLE
1010 target_cargo = target_entity.GetInventory().GetCargo();
1011 #ifdef PLATFORM_CONSOLE
1012 if( cargo.HasItem( item ) )
1022 if( target_cargo && target_entity )
1024 c_x = target_cargo.GetHeight();
1025 c_y = target_cargo.GetWidth();
1031 #ifdef PLATFORM_CONSOLE
1033 y = target_cargo.GetItemCount();
1036 dst.SetCargoAuto(target_cargo, item,
x,
y, item.GetInventory().GetFlipCargo());
1040 item.GetInventory().GetCurrentInventoryLocation(src);
1041 if(src.CompareLocationOnly(dst) && src.GetFlip() == dst.GetFlip())
1044 #ifdef PLATFORM_CONSOLE
1045 if(dst.IsValid() && target_entity.GetInventory().LocationCanAddEntity(dst))
1047 if( c_x >
x && c_y >
y && target_entity.GetInventory().LocationCanAddEntity(dst))
1052 Icon icon = cargo.GetIcon( item );
1056 if( w && w.FindAnyWidget(
"Cursor") )
1057 w.FindAnyWidget(
"Cursor").SetColor(
ColorManager.BASE_COLOR );
1068 EntityAI item_in_hands =
GetGame().GetPlayer().GetHumanInventory().GetEntityInHands();
1074 if( !item || !item_in_hands )
1083 if( item_in_hands.GetInventory().GetCargo() )
1085 c_x = item_in_hands.GetInventory().GetCargo().GetHeight();
1086 c_y = item_in_hands.GetInventory().GetCargo().GetWidth();
1089 if( c_x >
x && c_y >
y && item_in_hands.GetInventory().CanAddEntityInCargoEx( item, 0,
x,
y, item.GetInventory().GetFlipCargo() ) )
1101 if( w.FindAnyWidget(
"Cursor") )
1103 w.FindAnyWidget(
"Cursor").SetColor( color );
1107 string name = w.GetName();
1108 name.Replace(
"PanelWidget",
"Cursor" );
1109 w.FindAnyWidget(
name ).SetColor( color );
1122 receiver.GetUserData(slots_icon);
1137 float stack_max = item_base.GetTargetQuantityMax(slot_id);
1140 if( !item.GetInventory().CanRemoveEntity() || !player.CanManipulateInventory() )
1146 if(
Class.CastTo(wpn, target_att_entity ) &&
Class.CastTo(mag, item ) )
1148 if( player.GetWeaponManager().CanAttachMagazine( wpn, mag ) )
1150 player.GetWeaponManager().AttachMagazine( mag );
1152 else if(player.GetWeaponManager().CanSwapMagazine( wpn, mag ))
1154 player.GetWeaponManager().SwapMagazine( mag );
1157 else if( receiver_item )
1159 if( receiver_item != item )
1161 if( (
ItemBase.Cast( receiver_item ) ).CanBeCombined(
ItemBase.Cast( item ) ) )
1163 (
ItemBase.Cast( receiver_item ) ).CombineItemsClient(
ItemBase.Cast( item ) );
1167 if( !receiver_item.GetInventory().CanRemoveEntity() )
1169 GetGame().GetPlayer().PredictiveSwapEntities( item, receiver_item );
1173 else if( slot_owner && slot_owner.GetInventory().CanAddAttachmentEx( item, slot_id ) )
1175 if( stack_max == 0 || stack_max >= item_base.GetQuantity() )
1177 player.PredictiveTakeEntityToTargetAttachmentEx(slot_owner, item, slot_id);
1179 else if( stack_max != 0 && stack_max < item_base.GetQuantity() )
1181 item_base.SplitIntoStackMaxClient( slot_owner, slot_id );
1184 else if( slot_owner && slot_owner.GetInventory().CanAddAttachment( item ) )
1186 if( stack_max == 0 || stack_max >= item_base.GetQuantity() )
1188 player.PredictiveTakeEntityToTargetAttachment(slot_owner, item);
1190 else if( stack_max != 0 && stack_max < item_base.GetQuantity() )
1192 item_base.SplitIntoStackMaxClient( slot_owner, -1 );
1195 else if( target_att_entity.GetInventory().CanAddAttachment( item ) )
1197 if( stack_max == 0 || stack_max >= item_base.GetQuantity() )
1199 player.PredictiveTakeEntityToTargetAttachment(target_att_entity, item);
1201 else if( stack_max != 0 && stack_max < item_base.GetQuantity() )
1203 item_base.SplitIntoStackMaxClient( target_att_entity, -1 );
1206 else if( ( target_att_entity.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() ) && ( !player.GetInventory().HasEntityInInventory( item ) || !
m_Entity.GetInventory().HasEntityInCargo( item )) ) || player.GetHumanInventory().HasEntityInHands( item ) )
1225 if( entity.GetSlotsCountCorrect() > 0 )
1239 if( entity.GetInventory().GetCargo() )
1260 bool hideCargo =
m_Entity.GetInventory().IsInventoryLockedForLockType( HIDE_INV_FROM_SCRIPT ) || !
m_Entity.CanDisplayCargo() || m_ForcedHide;
1273 RecomputeOpenedContainers();
1280 for (
int i = 0; i < m_Body.Count(); i++)
1282 m_Body.Get( i ).OnShow();
1295 if( item.GetInventory().GetAttachmentSlotsCount() > 0 )
1307 Inventory.GetInstance().UpdateConsoleToolbar();
1310 if( item.GetInventory().GetCargo() )
1314 cont.GetRootWidget().SetSort( sort );
1315 cont.SetEntity( item );
1322 Inventory.GetInstance().UpdateConsoleToolbar();
1330 cont.ShowFalseCargoHeader(
false);
1337 cont.SetAlternateFalseTextHeaderWidget(null);
1340 RecomputeOpenedContainers();
1350 m_Body.RemoveItem( old_cont );
1355 Inventory.GetInstance().UpdateConsoleToolbar();
1363 m_Body.RemoveItem( old_att_cont );
1364 delete old_att_cont;
1367 Inventory.GetInstance().UpdateConsoleToolbar();
1369 RecomputeOpenedContainers();
1374 super.UpdateInterval();
1380 bool hideCargo =
m_Entity.GetInventory().IsInventoryLockedForLockType( HIDE_INV_FROM_SCRIPT ) || !
m_Entity.CanDisplayCargo() || m_ForcedHide;
1417 for (
int i = 0; i < m_Body.Count(); i++ )
1419 m_Body.Get( i ).OnShow();
1425 string name = w.GetName();
1426 name.Replace(
"PanelWidget",
"Render");
1438 #ifdef DIAG_DEVELOPER
1439 if (
g_Game.IsLeftCtrlDown())
1440 ShowActionMenu(selectedItem);
1442 if (CanSplitEx(selectedItem))
1444 selectedItem.OnRightClick();
1455 if (
g_Game.IsLeftCtrlDown())
1457 if (controlledPlayer.CanDropEntity(selectedItem))
1459 if (selectedItem.GetTargetQuantityMax() < selectedItem.GetQuantity())
1460 selectedItem.SplitIntoStackMaxClient(null, -1);
1462 controlledPlayer.PhysicalPredictiveDropItem(selectedItem);
1466 bool draggable = !controlledPlayer.GetInventory().HasInventoryReservation(selectedItem, null ) && !controlledPlayer.GetInventory().IsInventoryLocked() && selectedItem.GetInventory().CanRemoveEntity() && !controlledPlayer.IsItemsToDelete();
1484 string name = w.GetName();
1485 name.Replace(
"PanelWidget",
"Render");
1496 EntityAI itemInHands = controlledPlayer.GetHumanInventory().GetEntityInHands();
1498 if (!item.GetInventory().CanRemoveEntity())
1501 if (controlledPlayer.GetInventory().HasEntityInInventory(item) && controlledPlayer.GetHumanInventory().CanAddEntityInHands(item))
1503 controlledPlayer.PredictiveTakeEntityToHands(item);
1507 if (controlledPlayer.GetInventory().CanAddEntityToInventory(item) && controlledPlayer.GetHumanInventory().CanRemoveEntityInHands())
1513 if (controlledPlayer.GetHumanInventory().CanAddEntityInHands(item))
1514 controlledPlayer.PredictiveTakeEntityToHands(item);
1521 name.Replace(
"PanelWidget",
"Temperature");
1522 w.FindAnyWidget(
name).Show(
false);
1534 EntityAI item_in_hands =
GetGame().GetPlayer().GetHumanInventory().GetEntityInHands();
1535 if( item_in_hands && item_in_hands.GetCompEM() )
1537 if( GetRootWidget().FindAnyWidget(
"electricity" ) )
1539 bool show_electricity_icon = item_in_hands.GetCompEM().HasElectricityIcon();
1540 GetRootWidget().FindAnyWidget(
"electricity" ).Show( show_electricity_icon );
1543 if( GetRootWidget().FindAnyWidget(
"electricity_can_work" ) )
1545 bool show_electricity_can_work_icon = item_in_hands.GetCompEM().CanWork() && !item_in_hands.IsRuined();
1546 GetRootWidget().FindAnyWidget(
"electricity_can_work" ).Show( show_electricity_can_work_icon );
1551 GetRootWidget().FindAnyWidget(
"electricity" ).Show(
false );
1560 for (i = 0; i < m_Body.Count(); i++)
1562 m_Body.Get( i ).OnHide();
1568 for (i = 0; i < m_Body.Count(); i++)
1570 m_Body.Get( i ).OnShow();
1575 w.FindAnyWidget(
"opened").Show(
m_Hidden);
1576 w.FindAnyWidget(
"closed").Show(!
m_Hidden);
1586 RecomputeOpenedContainers();
1595 RecomputeOpenedContainers();
void Inventory(LayoutHolder parent)
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
bool CanSetActionFromInventory(ItemBase mainItem, ItemBase targetItem)
void SetDefaultFocus(bool while_micromanagment_mode=false)
array< int > GetSlotsSorted()
int GetAttachmentHeight()
AttachmentsWrapper GetWrapper()
TextWidget GetFalseHeaderTextWidget()
void InitAttachmentGrid(int att_row_index)
void ShowFalseAttachmentsHeader(bool show)
represents base for cargo storage for entities
Super root of all classes in Enforce script.
override EntityAI GetFocusedItem()
override float GetFocusedContainerHeight(bool contents=false)
override float GetFocusedContainerYScreenPos(bool contents=false)
void CargoContainer(LayoutHolder parent, bool is_attachment=false)
WeaponManager GetWeaponManager()
script counterpart to engine's class Inventory
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
override void OnDropReceivedFromHeader(Widget w, int x, int y, Widget receiver)
ref map< EntityAI, ref CargoContainer > m_AttachmentCargos
void DropReceived(Widget w, int x, int y, CargoContainer cargo)
override bool InspectItem()
ref map< EntityAI, AttachmentsWrapper > m_AttachmentAttachmentsContainers
void ShowAtt(EntityAI entity)
void ScrollToActiveContainer(Container active_container)
ref map< EntityAI, ref Attachments > m_AttachmentAttachments
override bool TransferItem()
void AttachmentRemoved(EntityAI item, string slot, EntityAI parent)
void DoubleClick(Widget w, int x, int y, int button)
void OnPerformCombination(int combinationFlags)
int GetRecipeCount(bool recipe_anywhere, EntityAI entity1, EntityAI entity2)
void DraggingOverHeader2(Widget w, int x, int y, Widget receiver)
ref HandsHeader m_CollapsibleHeader
override bool OnSelectButton()
override bool TransferItemToVicinity()
EntityAI GetItemPreviewItem(Widget w)
void ShowActionMenuCombine(EntityAI entity1, EntityAI entity2, int combinationFlags)
ScrollWidget m_ScrollWidget
override bool IsLastIndex()
override void SetLayoutName()
override void SetLastActive()
ref HandsPreview m_HandsPreview
override void UpdateInterval()
void AttachmentAdded(EntityAI item, string slot, EntityAI parent)
bool DraggingOverGrid(Widget w, int x, int y, Widget reciever, CargoContainer cargo)
override bool EquipItem()
override void DraggingOverHeader(Widget w, int x, int y, Widget receiver)
override bool IsItemWithQuantityActive()
void TakeAsAttachment(Widget w, Widget receiver)
void OnDropReceivedFromHeader2(Widget w, int x, int y, Widget receiver)
void HandsContainer(LayoutHolder parent)
override Header GetHeader()
override void UnfocusGrid()
void CollapseButtonOnMouseButtonDown(Widget w)
ref CargoContainer m_CargoGrid
int GetCombinationFlags(EntityAI entity1, EntityAI entity2)
override void UnfocusAll()
override void Insert(LayoutHolder container, int pos=-1, bool immedUpdate=true)
void MouseClick2(Widget w, int x, int y, int button)
override void SetActive(bool active)
override bool SplitItem()
override bool IsItemActive()
ref array< int > m_AttachmentSlotsSorted
override void UpdateInterval()
void ShowCollapseButtons(bool show, bool force=false)
void CreateNewIcon(ItemBase item)
provides access to slot configuration
Widget GetCenterDropzone()
void ShowSourceDropzone(EntityAI item)
void SetHandsPreview(HandsPreview hansd_preview)
EntityAI GetSelectedItem()
Widget GetRightDropzone()
bool IsMicromanagmentMode()
void SetWidgetDraggable(Widget w, bool draggable)
void SetIsDragging(bool is_dragging)
static ItemManager GetInstance()
bool CanAttachMagazine(Weapon_Base wpn, Magazine mag, bool reservationCheck=true)
bool AttachMagazine(Magazine mag, ActionBase control_action=NULL)
bool LoadBullet(Magazine mag, ActionBase control_action=NULL)
bool CanSwapMagazine(Weapon_Base wpn, Magazine mag, bool reservationCheck=true)
bool SwapMagazine(Magazine mag, ActionBase control_action=NULL)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
class array< Class T > PrintString
proto void GetMousePos(out int x, out int y)
FindInventoryLocationType
flags for searching locations in inventory
PluginBase GetPlugin(typename plugin_type)
ref Widget m_RootWidget[MAX_SIMULTANIOUS_PLAYERS]