845 {
846 if( w == NULL )
847 {
848 return;
849 }
851 if( !item )
852 {
853 return;
854 }
855
856 SlotsIcon slots_icon;
857 receiver.GetUserData(slots_icon);
858
861 bool is_reserved = false;
862 int slot_id = -1;
863
864 if(slots_icon)
865 {
870 }
871
872
873 Weapon_Base wpn;
874 Magazine mag;
875 PlayerBase player = PlayerBase.Cast(
g_Game.GetPlayer() );
877 {
878 if( Class.CastTo(wpn,
m_Entity ) && Class.CastTo(mag, item ) )
879 {
880 if( player.GetWeaponManager().CanAttachMagazine( wpn, mag ) )
881 {
882 ItemManager.GetInstance().HideDropzones();
884 {
885 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
886 }
887 else
888 {
889 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
890 }
891 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
892 }
893 }
894 else if( receiver_item && !is_reserved )
895 {
898 if( receiver_itemIB && itemIB && receiver_itemIB.
CanBeCombined( itemIB ) )
899 {
900 ItemManager.GetInstance().HideDropzones();
902 {
903 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
904 }
905 else
906 {
907 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
908 }
909 ColorManager.GetInstance().SetColor( w, ColorManager.COMBINE_COLOR );
910 }
911 else if( GameInventory.CanSwapEntitiesEx( receiver_item, item ) )
912 {
913 ItemManager.GetInstance().HideDropzones();
915 {
916 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
917 }
918 else
919 {
920 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
921 }
922 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
923 }
924 else if( receiver_itemIB.GetInventory().CanAddAttachment( item ) )
925 {
926 ItemManager.GetInstance().HideDropzones();
927 if( receiver_itemIB.GetHierarchyRootPlayer() ==
g_Game.GetPlayer() )
928 {
929 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
930 }
931 else
932 {
933 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
934 }
935 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
936 }
937 }
938 else if( attached_entity && attached_entity.GetInventory().CanAddAttachmentEx( item, slot_id ) )
939 {
940 ItemManager.GetInstance().HideDropzones();
941 if( attached_entity.GetHierarchyRootPlayer() ==
g_Game.GetPlayer() )
942 {
943 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
944 }
945 else
946 {
947 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
948 }
949 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
950 }
952 {
953 ItemManager.GetInstance().HideDropzones();
955 {
956 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
957 }
958 else
959 {
960 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
961 }
962 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
963 }
965 {
966 ItemManager.GetInstance().HideDropzones();
968 {
969 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
970 }
971 else
972 {
973 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
974 }
975 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
976 }
977 else
978 {
979 ItemManager.GetInstance().ShowSourceDropzone( item );
980 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
981 }
982 }
983 }
class GP5GasMask extends MaskBase ItemBase
EntityAI GetItemPreviewItem(Widget w)
proto native Man GetHierarchyRootPlayer()
Returns root of current hierarchy cast to Man.
proto native GameInventory GetInventory()
proto native bool CanAddEntityInCargo(notnull EntityAI e, bool flip)
proto native bool HasEntityInCargo(notnull EntityAI e)
proto native bool CanAddAttachment(notnull EntityAI e)
Check if attachment can be added to any slot.
override bool CanBeCombined(EntityAI other_item, bool reservation_check=true, bool stack_max_limit=false)