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

◆ DraggingOverHeader()

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

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

412 {
413 if( w == null )
414 {
415 return;
416 }
417 ItemPreviewWidget iw = ItemPreviewWidget.Cast( w.FindAnyWidget("Render") );
418 if(!iw)
419 {
420 string name = w.GetName();
421 name.Replace("PanelWidget", "Render");
422 iw = ItemPreviewWidget.Cast( w.FindAnyWidget(name) );
423 }
424 if(!iw)
425 {
426 iw = ItemPreviewWidget.Cast( w );
427 }
428
429 if( !iw || !iw.GetItem() || (iw.GetItem() == m_Entity) )
430 {
431 return;
432 }
433
434 ItemBase item;
435 ItemBase receiver_item;
436 name = receiver.GetName();
437 name.Replace("PanelWidget", "Render");
438 ItemPreviewWidget receiver_iw = ItemPreviewWidget.Cast( receiver.FindAnyWidget(name) );
439 if(receiver_iw)
440 receiver_item = ItemBase.Cast( receiver_iw.GetItem() );
441
442 SlotsIcon slots_icon;
443 receiver.GetUserData(slots_icon);
444
445 if( receiver_item )
446 {
447 int stack_max = InventorySlots.GetStackMaxForSlotId( receiver_item.GetInventory().GetSlotId(0) );
448 //int quantity = receiver_item.GetQuantity();
449 //bool combinable = ( quantity < stack_max ) && ( ItemBase.Cast( receiver_item ).CanBeCombined( ItemBase.Cast( iw.GetItem() ) ) );
450 if( receiver_item.CanBeCombined( ItemBase.Cast( iw.GetItem() ) ) )
451 {
452 ItemManager.GetInstance().HideDropzones();
453 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
454 ColorManager.GetInstance().SetColor( w, ColorManager.COMBINE_COLOR );
455 }
456 else if( stack_max == 0 && GameInventory.CanSwapEntitiesEx( receiver_item, iw.GetItem() ) )
457 {
458 ItemManager.GetInstance().HideDropzones();
459 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
460 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
461 }
462 else
463 {
464 ItemManager.GetInstance().ShowSourceDropzone( iw.GetItem() );
465 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
466 }
467 }
468 else if( slots_icon && slots_icon.GetSlotID() != -1 )
469 {
470 item = ItemBase.Cast( iw.GetItem() );
471
472 if( item && m_Entity.GetInventory().CanAddAttachmentEx( item, slots_icon.GetSlotID() ) )
473 {
474 ItemManager.GetInstance().HideDropzones();
475 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
476 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
477 }
478 else
479 {
480 ItemManager.GetInstance().ShowSourceDropzone( iw.GetItem() );
481 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
482 }
483 }
484 else
485 {
486 ItemManager.GetInstance().ShowSourceDropzone( iw.GetItem() );
487 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
488 }
489 }
EntityAI m_Entity
Определения ActionDebug.c:11
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
class GP5GasMask extends MaskBase ItemBase
override bool CanBeCombined(EntityAI other_item, bool reservation_check=true, bool stack_max_limit=false)
Определения Rag.c:61
proto native EntityAI GetItem()
int GetSlotID()
Определения SlotsIcon.c:190

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