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

◆ DraggingOverHeader()

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

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

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

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