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

◆ PerformActionFromQuickbar()

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

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

1030 {
1031 ItemBase itemInHand = m_Player.GetItemInHands();
1032 ActionTarget target;
1033 ItemBase parent = null;
1034 if (targetItem)
1035 parent = ItemBase.Cast(targetItem.GetHierarchyParent());
1036 target = new ActionTarget(targetItem, parent, -1, vector.Zero, -1);
1037 bool hasTarget = targetItem != NULL;
1038
1039 if (mainItem)
1040 {
1041 ActionBase picked_action;
1042 array<ActionBase_Basic> actions;
1043 int i;
1044
1045 mainItem.GetActions(QuickaBarActionInput, actions);
1046 if (actions)
1047 {
1048 for (i = 0; i < actions.Count(); i++)
1049 {
1050 picked_action = ActionBase.Cast(actions[i]);
1051 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand))
1052 {
1053 if (hasTarget == picked_action.HasTarget())
1054 {
1055 ActionStart(picked_action, target, mainItem);
1056 return;
1057 }
1058 }
1059 }
1060 }
1061
1062 //First continuous actions
1063 mainItem.GetActions(ContinuousDefaultActionInput, actions);
1064 if (actions)
1065 {
1066 for (i = 0; i < actions.Count(); i++)
1067 {
1068 picked_action = ActionBase.Cast(actions[i]);
1069 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
1070 {
1071 if (hasTarget == picked_action.HasTarget())
1072 {
1073 ActionStart(picked_action, target, mainItem);
1074 return;
1075 }
1076 }
1077 }
1078 }
1079 //Second check single use actions
1080 mainItem.GetActions(DefaultActionInput, actions);
1081 if (actions)
1082 {
1083 for (i = 0; i < actions.Count(); i++)
1084 {
1085 picked_action = ActionBase.Cast(actions[i]);
1086 if (picked_action && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
1087 {
1088 if (hasTarget == picked_action.HasTarget())
1089 {
1090 ActionStart(picked_action, target, mainItem);
1091 return;
1092 }
1093 }
1094 }
1095 }
1096
1097 }
1098 }
void ActionBase()
Определения ActionBase.c:82
void ContinuousDefaultActionInput(PlayerBase player)
Определения ActionInput.c:630
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
class GP5GasMask extends MaskBase ItemBase
DayZPlayer m_Player
Определения Hand_Events.c:42
void ActionStart(ActionBase action, ActionTarget target, ItemBase item, Param extra_data=NULL)
Определения ActionManagerClient.c:626

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

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