Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
splititemutils.c
Go to the documentation of this file.
2 {
3  static void TakeOrSplitToInventory ( notnull PlayerBase player, notnull EntityAI target, notnull EntityAI item)
4  {
5  ItemBase item_base = ItemBase.Cast( item );
6 
7  if( !item.GetInventory().CanRemoveEntity() || !player.CanManipulateInventory() )
8  return;
9 
11  if( target.GetInventory().FindFreeLocationFor( item, FindInventoryLocationType.ANY, il) )
12  {
13  if( item_base.GetTargetQuantityMax(il.GetSlot()) >= item_base.GetQuantity() )
14  {
15  if( il.GetType() == InventoryLocationType.ATTACHMENT )
16  {
17  player.PredictiveTakeEntityToTargetAttachmentEx(il.GetParent(), item, il.GetSlot());
18  }
19  else
20  {
22  if (item.GetInventory().GetCurrentInventoryLocation(src))
23  player.PredictiveTakeToDst(src, il);
24 
25  }
26  }
27  else
28  {
29  item_base.SplitIntoStackMaxClient( il.GetParent(), il.GetSlot() );
30  }
31  }
32  }
33 
34  static void TakeOrSplitToInventoryLocation ( notnull PlayerBase player, notnull InventoryLocation dst)
35  {
36  ItemBase item_base = ItemBase.Cast( dst.GetItem() );
37  int slot = dst.GetSlot();
38 
39  if( !dst.GetItem().GetInventory().CanRemoveEntity() || !player.CanManipulateInventory() )
40  return;
41 
42  float stack_max = item_base.GetTargetQuantityMax(slot);
43 
44  if( stack_max >= item_base.GetQuantity() )
45  {
47  if (dst.GetItem().GetInventory().GetCurrentInventoryLocation(src))
48  {
49  player.PredictiveTakeToDst(src, dst);
50  }
51  else
52  Error("TakeIntoCargoEx cannot get src for dst=" + dst.DumpToString());
53  }
54  else
55  {
56  item_base.SplitIntoStackMaxToInventoryLocationClient( dst );
57  }
58  }
59 }
ItemBase
Definition: inventoryitem.c:730
Error
void Error(string err)
Messagebox with error message.
Definition: endebug.c:90
InventoryLocation
InventoryLocation.
Definition: inventorylocation.c:27
SplitItemUtils
Definition: splititemutils.c:1
PlayerBase
Definition: playerbaseclient.c:1
InventoryLocationType
InventoryLocationType
types of Inventory Location
Definition: inventorylocation.c:3
FindInventoryLocationType
FindInventoryLocationType
flags for searching locations in inventory
Definition: inventorylocation.c:15
EntityAI
Definition: building.c:5