DayZ 1.29
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 }
Entity m_Entity
Определения CachedEquipmentStorageBase.c:14
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
class GP5GasMask extends MaskBase ItemBase
proto native GameInventory GetInventory()
proto native bool CanAddAttachmentEx(notnull EntityAI e, int slot)
Check if attachment can be added to slot @NOTE: Note that slot index IS NOT slot ID!...
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.