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

◆ CanPerformActionFromQuickbar()

bool ActionManagerClient::CanPerformActionFromQuickbar ( ItemBase mainItem,
ItemBase targetItem )
inlineprotected

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

917 {
918 ItemBase itemInHand = m_Player.GetItemInHands();
919 ActionTarget target;
920 target = new ActionTarget(targetItem, null, -1, vector.Zero, -1);
921 bool hasTarget = targetItem != NULL;
922
923 if (mainItem)
924 {
925 array<ActionBase_Basic> actions;
926 ActionBase picked_action;
927 int i;
928
929 mainItem.GetActions(QuickaBarActionInput, actions);
930 if (actions)
931 {
932 for (i = 0; i < actions.Count(); i++)
933 {
934 picked_action = ActionBase.Cast(actions[i]);
935 if (picked_action && picked_action.Can(m_Player,target, itemInHand))
936 {
937 if (hasTarget == picked_action.HasTarget())
938 return true;
939 }
940 }
941 }
942 //First check continuous actions
943 mainItem.GetActions(ContinuousDefaultActionInput, actions);
944 if (actions)
945 {
946 for (i = 0; i < actions.Count(); i++)
947 {
948 picked_action = ActionBase.Cast(actions[i]);
949 if (picked_action && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
950 {
951 if (hasTarget == picked_action.HasTarget())
952 return true;
953 }
954 }
955 }
956 //second single use actions
957 mainItem.GetActions(DefaultActionInput, actions);
958 if (actions)
959 {
960 for (i = 0; i < actions.Count(); i++)
961 {
962 picked_action = ActionBase.Cast(actions[i]);
963 if (picked_action && picked_action.HasTarget() && picked_action.Can(m_Player,target, itemInHand) && picked_action.CanBePerformedFromQuickbar())
964 {
965 if (hasTarget == picked_action.HasTarget())
966 return true;
967 }
968 }
969 }
970 }
971 return false;
972 }
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

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

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