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

◆ PerformActionFromQuickbar()

void ActionManagerClient::PerformActionFromQuickbar ( ItemBase mainItem,
ItemBase targetItem )
inlineprotected

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

975 {
976 ItemBase itemInHand = m_Player.GetItemInHands();
977 ActionTarget target;
978 ItemBase parent = null;
979 if (targetItem)
980 parent = ItemBase.Cast(targetItem.GetHierarchyParent());
981 target = new ActionTarget(targetItem, parent, -1, vector.Zero, -1);
982 bool hasTarget = targetItem != NULL;
983
984 if (mainItem)
985 {
986 ActionBase picked_action;
987 array<ActionBase_Basic> actions;
988 int i;
989
990 mainItem.GetActions(QuickaBarActionInput, actions);
991 if (actions)
992 {
993 for (i = 0; i < actions.Count(); i++)
994 {
995 picked_action = ActionBase.Cast(actions[i]);
996 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand))
997 {
998 if (hasTarget == picked_action.HasTarget())
999 {
1000 ActionStart(picked_action, target, mainItem);
1001 return;
1002 }
1003 }
1004 }
1005 }
1006
1007 //First continuous actions
1008 mainItem.GetActions(ContinuousDefaultActionInput, actions);
1009 if (actions)
1010 {
1011 for (i = 0; i < actions.Count(); i++)
1012 {
1013 picked_action = ActionBase.Cast(actions[i]);
1014 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
1015 {
1016 if (hasTarget == picked_action.HasTarget())
1017 {
1018 ActionStart(picked_action, target, mainItem);
1019 return;
1020 }
1021 }
1022 }
1023 }
1024 //Second check single use actions
1025 mainItem.GetActions(DefaultActionInput, actions);
1026 if (actions)
1027 {
1028 for (i = 0; i < actions.Count(); i++)
1029 {
1030 picked_action = ActionBase.Cast(actions[i]);
1031 if (picked_action && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
1032 {
1033 if (hasTarget == picked_action.HasTarget())
1034 {
1035 ActionStart(picked_action, target, mainItem);
1036 return;
1037 }
1038 }
1039 }
1040 }
1041
1042 }
1043 }
void ContinuousDefaultActionInput(PlayerBase player)
Определения ActionInput.c:607
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:121
class GP5GasMask extends MaskBase ItemBase
DayZPlayer m_Player
Определения Hand_Events.c:42
bool HasTarget()
Определения ActionBase.c:244
bool CanBePerformedFromQuickbar()
Определения ActionBase.c:303
bool Can(PlayerBase player, ActionTarget target, ItemBase item, int condition_mask)
Определения ActionBase.c:897
void ActionStart(ActionBase action, ActionTarget target, ItemBase item, Param extra_data=NULL)
Определения ActionManagerClient.c:604

Перекрестные ссылки ActionStart(), ActionTarget(), ActionBase::Can(), ActionBase::CanBePerformedFromQuickbar(), ContinuousDefaultActionInput(), ActionBase::HasTarget(), m_Player и vector::Zero.

Используется в ManBase::OnQuickBarContinuousUseStart().