DayZ 1.29
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( g_Game.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() == g_Game.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() == g_Game.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() == g_Game.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() == 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 }
951 else if( m_Entity.GetInventory().CanAddAttachment( item ) )
952 {
953 ItemManager.GetInstance().HideDropzones();
954 if( m_Entity.GetHierarchyRootPlayer() == g_Game.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() == g_Game.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
Entity m_Entity
Определения CachedEquipmentStorageBase.c:14
DayZGame g_Game
Определения DayZGame.c:3942
class GP5GasMask extends MaskBase ItemBase
EntityAI GetItemPreviewItem(Widget w)
Определения ContainerWithCargo.c:224
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)
Определения Rag.c:61
EntityAI GetEntity()
Определения SlotsIcon.c:365
EntityAI GetSlotParent()
Определения SlotsIcon.c:185
bool IsReserved()
Определения SlotsIcon.c:200
int GetSlotID()
Определения SlotsIcon.c:190

Перекрестные ссылки ItemBase::CanBeCombined(), GameInventory::CanSwapEntitiesEx(), Class::CastTo(), ColorManager::COMBINE_COLOR, g_Game, SlotsIcon::GetEntity(), ColorManager::GetInstance(), ItemManager::GetInstance(), GetItemPreviewItem(), ItemManager::GetLeftDropzone(), 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.