DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ DraggingOverHeader() [2/2]

override void ClosableContainer::DraggingOverHeader ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected

См. определение в файле ContainerWithCargoAndAttachments.c строка 844

845 {
846 if( w == NULL )
847 {
848 return;
849 }
850 EntityAI item = GetItemPreviewItem( w );
851 if( !item )
852 {
853 return;
854 }
855
856 SlotsIcon slots_icon;
857 receiver.GetUserData(slots_icon);
858
859 EntityAI attached_entity;
860 EntityAI receiver_item;
861 bool is_reserved = false;
862 int slot_id = -1;
863
864 if(slots_icon)
865 {
866 attached_entity = slots_icon.GetSlotParent();
867 slot_id = slots_icon.GetSlotID();
868 receiver_item = slots_icon.GetEntity();
869 is_reserved = slots_icon.IsReserved();
870 }
871
872
873 Weapon_Base wpn;
874 Magazine mag;
875 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
876 if( m_Entity )
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();
883 if( m_Entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
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 {
896 ItemBase receiver_itemIB = ItemBase.Cast( receiver_item );
897 ItemBase itemIB = ItemBase.Cast( item );
898 if( receiver_itemIB && itemIB && receiver_itemIB.CanBeCombined( itemIB ) )
899 {
900 ItemManager.GetInstance().HideDropzones();
901 if( m_Entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
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();
914 if( m_Entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
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() == GetGame().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() == GetGame().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 }
951 else if( m_Entity.GetInventory().CanAddAttachment( item ) )
952 {
953 ItemManager.GetInstance().HideDropzones();
954 if( m_Entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
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 }
964 else if( ( m_Entity.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() ) && !m_Entity.GetInventory().HasEntityInCargo( item ) ) /*|| player.GetHumanInventory().HasEntityInHands( item )*/ )
965 {
966 ItemManager.GetInstance().HideDropzones();
967 if( m_Entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
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 LogManager EntityAI
EntityAI m_Entity
Определения ActionDebug.c:11
class GP5GasMask extends MaskBase ItemBase
PlayerBase GetPlayer()
Определения ModifierBase.c:51
EntityAI GetItemPreviewItem(Widget w)
Определения ContainerWithCargo.c:224
override bool CanBeCombined(EntityAI other_item, bool reservation_check=true, bool stack_max_limit=false)
Определения Rag.c:61
EntityAI GetEntity()
Определения SlotsIcon.c:365
EntityAI GetSlotParent()
Определения SlotsIcon.c:185
bool IsReserved()
Определения SlotsIcon.c:200
int GetSlotID()
Определения SlotsIcon.c:190
proto native CGame GetGame()

Перекрестные ссылки ItemBase::CanBeCombined(), GameInventory::CanSwapEntitiesEx(), Class::CastTo(), ColorManager::COMBINE_COLOR, SlotsIcon::GetEntity(), GetGame(), ColorManager::GetInstance(), ItemManager::GetInstance(), GetItemPreviewItem(), ItemManager::GetLeftDropzone(), GetPlayer(), ItemManager::GetRightDropzone(), SlotsIcon::GetSlotID(), SlotsIcon::GetSlotParent(), ColorManager::GREEN_COLOR, ItemManager::HideDropzones(), SlotsIcon::IsReserved(), m_Entity, ColorManager::RED_COLOR, ColorManager::SetColor(), ItemManager::ShowSourceDropzone(), ColorManager::SWAP_COLOR, x и y.