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

◆ MouseClick2()

void ClosableContainer::MouseClick2 ( Widget w,
int x,
int y,
int button )
inlineprotected

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

459 {
460 SlotsIcon icon;
461 w.GetUserData(icon);
462
463 ItemBase selectedItem;
464 if (icon)
465 selectedItem = ItemBase.Cast(icon.GetEntity());
466
467 if (selectedItem)
468 {
469 bool isReserved = icon.IsReserved();
470
471 switch (button)
472 {
473 case MouseState.RIGHT:
474 #ifdef DIAG_DEVELOPER
475 if (GetDayZGame().IsLeftCtrlDown())
476 ShowActionMenu(selectedItem);
477 #endif
478
479 if (isReserved)
480 {
481 EntityAI attachmentParent = icon.GetSlotParent();
482 GetGame().GetPlayer().GetHumanInventory().ClearUserReservedLocationSynced(selectedItem);
483 attachmentParent.GetOnAttachmentReleaseLock().Invoke(selectedItem, icon.GetSlotID());
484 }
485 else if (CanSplitEx(selectedItem))
486 {
487 selectedItem.OnRightClick();
488 }
489
490 break;
491
492 case MouseState.MIDDLE:
493 if (!isReserved)
494 InspectItem(selectedItem);
495
496 break;
497
498 case MouseState.LEFT:
499 if (!isReserved)
500 {
501 PlayerBase controlledPlayer = PlayerBase.Cast(GetGame().GetPlayer());
502 if (g_Game.IsLeftCtrlDown())
503 {
504 if (controlledPlayer.CanDropEntity(selectedItem))
505 {
506 if (selectedItem.CanBeSplit() && selectedItem.GetTargetQuantityMax() < selectedItem.GetQuantity())
507 selectedItem.SplitIntoStackMaxClient(null, -1);
508 else
509 controlledPlayer.PhysicalPredictiveDropItem(selectedItem);
510 }
511 }
512 else
513 {
514 bool draggable = !controlledPlayer.GetInventory().HasInventoryReservation(selectedItem, null ) && !controlledPlayer.GetInventory().IsInventoryLocked() && selectedItem.GetInventory().CanRemoveEntity() && !controlledPlayer.IsItemsToDelete();
515 ItemManager.GetInstance().SetWidgetDraggable(w, draggable);
516 }
517 }
518
519 break;
520 }
521 }
522 }
class LogManager EntityAI
DayZGame g_Game
Определения DayZGame.c:3868
DayZGame GetDayZGame()
Определения DayZGame.c:3870
class GP5GasMask extends MaskBase ItemBase
PlayerBase GetPlayer()
Определения ModifierBase.c:51
proto native DayZPlayer GetPlayer()
override bool InspectItem()
Определения ContainerWithCargo.c:184
override bool CanBeSplit()
Определения Rag.c:34
EntityAI GetEntity()
Определения SlotsIcon.c:365
EntityAI GetSlotParent()
Определения SlotsIcon.c:185
bool IsReserved()
Определения SlotsIcon.c:200
int GetSlotID()
Определения SlotsIcon.c:190
proto native CGame GetGame()
MouseState
Определения EnSystem.c:311

Перекрестные ссылки ItemBase::CanBeSplit(), g_Game, GetDayZGame(), SlotsIcon::GetEntity(), GetGame(), ItemManager::GetInstance(), CGame::GetPlayer(), GetPlayer(), SlotsIcon::GetSlotID(), SlotsIcon::GetSlotParent(), InspectItem(), SlotsIcon::IsReserved(), ItemManager::SetWidgetDraggable(), x и y.