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

◆ DraggingOverHeader()

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

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

461 {
462 if( w == null )
463 {
464 return;
465 }
466 EntityAI receiver_item;
467 EntityAI slot_owner;
468 int slot_id = -1;
469
470 string name = w.GetName();
471 name.Replace( "PanelWidget", "Render" );
472
473 ItemPreviewWidget w_ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
474 if( w_ipw == null )
475 {
476 w_ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
477 }
478 if( w_ipw == null )
479 {
480 return;
481 }
482
483 SlotsIcon slots_icon;
484 receiver.GetUserData(slots_icon);
485
486 if(slots_icon)
487 {
488 receiver_item = slots_icon.GetEntity();
489 slot_id = slots_icon.GetSlotID();
490 slot_owner = slots_icon.GetSlotParent();
491 }
492
493
494 PlayerBase p = PlayerBase.Cast( GetGame().GetPlayer() );
495 InventoryItem receiver_entity = InventoryItem.Cast( p.GetHumanInventory().GetEntityInHands() );
496 InventoryItem w_entity = InventoryItem.Cast( w_ipw.GetItem() );
497 if( !w_entity )
498 {
499 return;
500 }
501
502 if( receiver_entity )
503 {
504 if( receiver_item )
505 {
506 ItemBase receiver_itemIB = ItemBase.Cast( receiver_item );
507 ItemBase itemIB = ItemBase.Cast( receiver_item );
508 if( receiver_itemIB && itemIB && receiver_itemIB.CanBeCombined( itemIB ) )
509 {
510 ItemManager.GetInstance().HideDropzones();
511 if( m_Entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
512 {
513 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
514 }
515 else
516 {
517 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
518 }
519 ColorManager.GetInstance().SetColor( w, ColorManager.COMBINE_COLOR );
520 }
521 else
522 {
523 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
524 Magazine mag = Magazine.Cast(receiver_item);
525 Weapon_Base wpn = Weapon_Base.Cast(receiver_item.GetHierarchyParent());
526
527 if( wpn && mag )
528 {
529 if( player.GetWeaponManager().CanSwapMagazine( wpn, Magazine.Cast(w_entity) ) )
530 {
531 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
532 if( w_entity.GetHierarchyRootPlayer() == player )
533 {
534 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
535 }
536 else
537 {
538 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
539 }
540 }
541 else
542 {
543 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
544 ItemManager.GetInstance().ShowSourceDropzone( w_entity );
545 }
546 }
547 else
548 {
549 if( GameInventory.CanSwapEntitiesEx( receiver_item, w_entity ) )
550 {
551 ItemManager.GetInstance().HideDropzones();
552 if( m_Entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
553 {
554 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
555 }
556 else
557 {
558 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
559 }
560 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
561 }
562 else if( receiver_itemIB.GetInventory().CanAddAttachment( w_entity ) )
563 {
564 ItemManager.GetInstance().HideDropzones();
565 if( receiver_itemIB.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
566 {
567 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
568 }
569 else
570 {
571 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
572 }
573 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
574 }
575 }
576 }
577 }
578 else if( slot_owner && slot_owner.GetInventory().CanAddAttachment( w_entity ) )
579 {
580 ItemManager.GetInstance().HideDropzones();
581 ItemManager.GetInstance().GetCenterDropzone().SetAlpha( 1 );
582 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
583 }
584 else if( receiver_entity.GetInventory().CanAddAttachment( w_entity ) )
585 {
586 ItemManager.GetInstance().HideDropzones();
587 if( receiver_entity.GetHierarchyRootPlayer() == GetGame().GetPlayer() )
588 {
589 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
590 }
591 else
592 {
593 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
594 }
595 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
596 }
597 else
598 {
599 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
600 ItemManager.GetInstance().ShowSourceDropzone( w_entity );
601 }
602 }
603 else
604 {
605 /*if( m_HandsIcon )
606 {
607 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
608 ItemManager.GetInstance().HideDropzones();
609 ItemManager.GetInstance().GetCenterDropzone().SetAlpha( 1 );
610 }
611
612 else
613 {*/
614 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
615 ItemManager.GetInstance().ShowSourceDropzone( w_entity );
616 //}
617 }
618 }
class LogManager EntityAI
EntityAI m_Entity
Определения ActionDebug.c:11
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
class GP5GasMask extends MaskBase ItemBase
PlayerBase GetPlayer()
Определения ModifierBase.c:51
override bool CanBeCombined(EntityAI other_item, bool reservation_check=true, bool stack_max_limit=false)
Определения Rag.c:61
proto native EntityAI GetItem()
EntityAI GetEntity()
Определения SlotsIcon.c:365
EntityAI GetSlotParent()
Определения SlotsIcon.c:185
int GetSlotID()
Определения SlotsIcon.c:190
proto native CGame GetGame()

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

Используется в DraggingOverHeader2().