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

◆ DraggingOver()

override void PlayerContainer::DraggingOver ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected

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

783 {
784 if( w == null )
785 {
786 return;
787 }
788
789 EntityAI receiver_item;
790 bool is_reserved = false;
791
792 SlotsIcon slots_icon;
793 receiver.GetUserData(slots_icon);
794
795 if(slots_icon)
796 {
797 receiver_item = slots_icon.GetEntity();
798 is_reserved = slots_icon.IsReserved();
799 }
800
801 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( GetItemPreviewWidget( w ) );
802
803 if( !ipw || !ipw.IsInherited( ItemPreviewWidget ) )
804 {
805 return;
806 }
807
808 EntityAI item = ipw.GetItem();
809 if( !item )
810 {
811 return;
812 }
813
814 if( receiver_item && !is_reserved )
815 {
816 if( GameInventory.CanSwapEntitiesEx( receiver_item, item ) )
817 {
818 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
819 ItemManager.GetInstance().HideDropzones();
820 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
821 return;
822 }
823 else if( receiver_item.GetInventory().CanAddAttachment(item) || receiver_item.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() ) && !receiver_item.GetInventory().HasEntityInCargo( item ))
824 {
825 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
826 ItemManager.GetInstance().HideDropzones();
827 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
828 return;
829 }
830 else if( ( ItemBase.Cast( receiver_item ) ).CanBeCombined( ItemBase.Cast( item ) ) )
831 {
832 ColorManager.GetInstance().SetColor( w, ColorManager.COMBINE_COLOR );
833 ItemManager.GetInstance().HideDropzones();
834 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
835 return;
836 }
837
838 }
839
840 if( item.GetInventory().CanRemoveEntity() )
841 {
842 if( m_Player.GetInventory().CanAddAttachment( item) )
843 {
844 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
845 ItemManager.GetInstance().HideDropzones();
846 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
847 }
848 else if( m_Player.GetInventory().CanAddEntityToInventory( item, FindInventoryLocationType.CARGO | FindInventoryLocationType.ATTACHMENT ) && ( !m_Player.GetInventory().HasEntityInInventory( item ) ) || m_Player.GetHumanInventory().HasEntityInHands( item ) )
849 {
850 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
851 ItemManager.GetInstance().HideDropzones();
852 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
853 }
854 else if ( receiver_item && GameInventory.CanSwapEntitiesEx( receiver_item, item ) )
855 {
856 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
857 ItemManager.GetInstance().HideDropzones();
858 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
859 }
860 else
861 {
862 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
863 ItemManager.GetInstance().HideDropzones();
864 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
865 }
866 }
867 else
868 {
869 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
870 ItemManager.GetInstance().HideDropzones();
871 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
872 //ItemManager.GetInstance().ShowSourceDropzone( item );
873 }
874 }
class LogManager EntityAI
class GP5GasMask extends MaskBase ItemBase
FindInventoryLocationType
flags for searching locations in inventory
Определения InventoryLocation.c:17
proto native EntityAI GetItem()
PlayerBase m_Player
Определения PlayerContainer.c:7
ItemPreviewWidget GetItemPreviewWidget(Widget w)
Определения PlayerContainer.c:731
EntityAI GetEntity()
Определения SlotsIcon.c:365
bool IsReserved()
Определения SlotsIcon.c:200

Перекрестные ссылки GameInventory::CanSwapEntitiesEx(), ColorManager::COMBINE_COLOR, SlotsIcon::GetEntity(), ColorManager::GetInstance(), ItemManager::GetInstance(), ItemPreviewWidget::GetItem(), GetItemPreviewWidget(), ItemManager::GetRightDropzone(), ColorManager::GREEN_COLOR, ItemManager::HideDropzones(), SlotsIcon::IsReserved(), m_Player, ColorManager::RED_COLOR, ColorManager::SetColor(), ColorManager::SWAP_COLOR, x и y.