877 {
878 ItemManager.GetInstance().HideDropzones();
879 ItemManager.GetInstance().SetIsDragging( false );
880
882 bool is_reserved = false;
884 float stack_max;
885
887 SlotsIcon slots_icon;
888 receiver.GetUserData(slots_icon);
890
893 InventoryLocation il;
894
895 if ( !ipw )
896 {
897 return;
898 }
899
902 if ( !item )
903 {
904 return;
905 }
906 if ( receiver_item && !is_reserved )
907 {
908 if ( GameInventory.CanSwapEntitiesEx( receiver_item, item ) )
909 {
911
912 if ( menu )
913 {
914 menu.RefreshQuickbar();
915 }
916 return;
917 }
918 else if ( receiver_item.GetInventory().CanAddAttachment( item ) )
919 {
920 GetGame().
GetPlayer().PredictiveTakeEntityToTargetAttachment( receiver_item, item );
921
922 if ( menu )
923 {
924 menu.RefreshQuickbar();
925 }
926 return;
927 }
928 else if ( receiver_item.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() ) && !receiver_item.GetInventory().HasEntityInCargo( item ) )
929 {
930 SplitItemUtils.TakeOrSplitToInventory(real_player, receiver_item,item);
931
932 if ( menu )
933 {
934 menu.RefreshQuickbar();
935 }
936 return;
937 }
938 else if ( (
ItemBase.Cast( receiver_item ) ).CanBeCombined(
ItemBase.Cast( item ) ) )
939 {
940 (
ItemBase.Cast( receiver_item ) ).CombineItemsClient(
ItemBase.Cast( item ) );
941 return;
942 }
943 }
944
945 if (
m_Player.GetInventory().CanAddAttachmentEx( item, slot_id ) )
946 {
947 if (item.GetQuantity() > item.GetTargetQuantityMax(slot_id))
948 {
949 item.SplitIntoStackMaxClient( real_player, slot_id );
950 }
951 else
952 {
953 real_player.PredictiveTakeEntityToTargetAttachmentEx(
m_Player, item, slots_icon.
GetSlotID() );
954 }
955 }
956 else if (
m_Player.GetInventory().CanAddAttachment( item ) )
957 {
958 il = new InventoryLocation;
960 float stackable = item.GetTargetQuantityMax(-1);
961
963 {
964 if ( stackable == 0 || stackable >= item.GetQuantity() )
965 {
966 real_player.PredictiveTakeEntityToTargetAttachment( il.
GetParent(), item );
967 }
968 else
969 {
970
971 ItemBase.Cast(item).SplitIntoStackMaxToInventoryLocationClient( il );
972 }
973 }
974 }
976 {
978 }
979
980 if ( menu )
981 {
982 menu.RefreshQuickbar();
983 }
984 }
class GP5GasMask extends MaskBase ItemBase
FindInventoryLocationType
flags for searching locations in inventory
proto native DayZPlayer GetPlayer()
proto native bool IsValid()
verify current set inventory location
proto native EntityAI GetParent()
returns parent of current inventory location
ItemPreviewWidget GetItemPreviewWidget(Widget w)
proto native CGame GetGame()