30 m_Targets =
new ActionTargets(player);
41 override void Update(
int pCurrentCommandID)
44 super.Update(pCurrentCommandID);
45 int currentCommandID =
m_Player.GetCurrentCommandID();
74 bool can_be_action_done = ((condition_mask &
m_CurrentActionData.m_Action.m_ConditionMask) == condition_mask);
116 bool isMenuOpen =
false;
120 if (
m_Player.IsRaised() || isMenuOpen)
144 for (
int i = 0; i < m_ActionsArray.Count(); i++)
184 same_priority_input_array = temp_map_for_sort.Get(priority);
185 if (same_priority_input_array)
187 same_priority_input_array.Insert(input);
192 same_priority_input_array.Insert(input);
193 temp_map_for_sort.Insert(priority,same_priority_input_array);
194 array_of_priorities_to_sort.Insert(priority);
196 array_of_priorities_to_sort.Sort();
198 for (i = 0; i < array_of_priorities_to_sort.Count(); i++)
200 priority = array_of_priorities_to_sort[i];
201 same_priority_input_array = temp_map_for_sort.Get(priority);
202 for (j = 0; j < same_priority_input_array.Count(); j++)
204 input = same_priority_input_array.Get(j);
465 parent = targetEntity.GetHierarchyParent();
466 m_ForceTarget =
new ActionTarget(targetObject, parent, -1,
vector.Zero, -1);
471 m_ForceTarget = NULL;
479 return m_ForceTarget;
481 ActionTarget action_target;
482 action_target = NULL;
483 int targetsCount = m_Targets.GetTargetsCount();
486 for (
int i = 0; i < targetsCount; ++i)
488 action_target = m_Targets.GetTarget(i);
489 Object targetObject = action_target.GetObject();
490 Object targetParent = action_target.GetParent();
505 action_target =
new ActionTarget(null, null, -1,
vector.Zero, -1);
507 return action_target;
566 bool success =
false;
567 if (action_data.m_Action.IsInstant())
571 Debug.ActionLog(
"(-) Inventory lock - Not Used", action_data.m_Action.ToString() ,
"n/a",
"LockInventory", action_data.m_Player.ToString());
579 Debug.ActionLog(
"(X) Inventory lock", action_data.m_Action.ToString() ,
"n/a",
"LockInventory", action_data.m_Player.ToString());
581 if (action_data.m_Action)
583 success = action_data.m_Action.InventoryReservation(action_data);
592 Debug.ActionLog(
"(O) Inventory unlock", action_data.m_Action.ToString() ,
"n/a",
"UnlockInventory", action_data.m_Player.ToString());
594 if (action_data.m_Action)
595 action_data.m_Action.ClearInventoryReservationEx(action_data);
616 Debug.ActionLog(
"Item = " + item +
", " + target.DumpToString(), action.ToString() ,
"n/a",
"ActionStart",
m_Player.ToString());
620 Debug.ActionLog(
"Item = " + item +
", no target", action.ToString() ,
"n/a",
"ActionStart",
m_Player.ToString());
628 DPrint(
"ScriptInputUserData already posted - ActionManagerClient");
632 Debug.ActionLog(
"Cannot start because ScriptInputUserData is already used", action.ToString() ,
"n/a",
"ActionStart",
m_Player.ToString());
640 DPrint(
"Can not inicialize action" + action +
" - ActionManagerClient");
647 Debug.ActionLog(
"Action data created wait to start", action.ToString() ,
"n/a",
"ActionStart",
m_Player.ToString());
654 ctx.Write(action.
GetID());
756 void PerformAction(
int user_action_id, ActionTarget target,
ItemBase item,
Param extraData = NULL)
764 if (!
g_Game.IsMultiplayer())
811 int last_target_index = 0;
914 target =
new ActionTarget(targetItem, null, -1,
vector.Zero, -1);
915 bool hasTarget = targetItem != NULL;
926 for (i = 0; i < actions.Count(); i++)
929 if (picked_action && picked_action.
Can(
m_Player,target, itemInHand))
931 if (hasTarget == picked_action.
HasTarget())
940 for (i = 0; i < actions.Count(); i++)
945 if (hasTarget == picked_action.
HasTarget())
954 for (i = 0; i < actions.Count(); i++)
959 if (hasTarget == picked_action.
HasTarget())
974 parent =
ItemBase.Cast(targetItem.GetHierarchyParent());
975 target =
new ActionTarget(targetItem, parent, -1,
vector.Zero, -1);
976 bool hasTarget = targetItem != NULL;
987 for (i = 0; i < actions.Count(); i++)
990 if (picked_action && picked_action.
HasTarget() && picked_action.
Can(
m_Player,target, itemInHand))
992 if (hasTarget == picked_action.
HasTarget())
1005 for (i = 0; i < actions.Count(); i++)
1010 if (hasTarget == picked_action.
HasTarget())
1022 for (i = 0; i < actions.Count(); i++)
1027 if (hasTarget == picked_action.
HasTarget())
1043 ActionTarget target;
1044 target =
new ActionTarget(targetItem, null, -1,
vector.Zero, -1);
1045 bool hasTarget = targetItem != NULL;
1057 for (i = 0; i < actions.Count(); i++)
1062 if (hasTarget == picked_action.
HasTarget())
1072 for (i = 0; i < actions.Count(); i++)
1075 if (picked_action && picked_action.
Can(
m_Player,target, itemInHand))
1077 if (hasTarget == picked_action.
HasTarget())
1090 ActionTarget target;
1091 target =
new ActionTarget(targetItem, null, -1,
vector.Zero, -1);
1092 bool hasTarget = targetItem != NULL;
1104 for (i = 0; i < actions.Count(); i++)
1109 if (hasTarget == picked_action.
HasTarget())
1122 for (i = 0; i < actions.Count(); i++)
1125 if (picked_action && picked_action.
Can(
m_Player,target, itemInHand))
1127 if (hasTarget == picked_action.
HasTarget())
1141 ActionTarget target;
1145 parent = targetItem.GetHierarchyParent();
1147 target =
new ActionTarget(targetItem, parent, -1,
vector.Zero, -1);
1148 bool hasTarget = targetItem != NULL;
1155 int variants_count,v;
1161 for (
int i = 0; i < actions.Count(); i++)
1168 for (v = 0; v < variant_actions.Count(); v ++)
1170 picked_action = variant_actions[v];
1173 if (hasTarget == picked_action.
HasTarget())
1182 if (hasTarget == picked_action.
HasTarget())
1192 for (
int j = 0; j < actions.Count(); j++)
1199 for (v = 0; v < variant_actions.Count(); v ++)
1201 picked_action = variant_actions[v];
1204 if (hasTarget == picked_action.
HasTarget())
1213 if (hasTarget == picked_action.
HasTarget())
1227 ActionTarget target;
1228 target =
new ActionTarget(targetItem, null, -1,
vector.Zero, -1);
1229 bool hasTarget = targetItem != NULL;
1240 for (
int i = 0; i < actions.Count(); i++)
1245 if (hasTarget == picked_action.
HasTarget())
1257 for (
int j = 0; j < actions.Count(); j++)
1262 if (hasTarget == picked_action.
HasTarget())
1291 private ref ActionTarget m_ForceTarget;
1292 private ref ActionTargets m_Targets;
ref ActionData m_CurrentActionData
void SetActionContext(ActionTarget target, ItemBase item)
ActionBase GetRunningAction()
returns -1 when no action is running or RELOAD,MECHANISM, ....
bool m_ActionInputWantEnd
bool ActionPossibilityCheck(int pCurrentCommandID)
void ActionManagerBase(PlayerBase player)
int m_PendingActionAcknowledgmentID
bool m_ActionWantEndRequest
map< typename, ref array< ActionBase_Basic > > TInputActionMap
map< typename, ref ActionInput > TTypeNameActionInputMap
int GetVariants(out array< ref ActionBase > variants)
void UpdateVariants(Object item, Object target, int componet_index)
bool CanBePerformedFromInventory()
void Start(ActionData action_data)
bool CanBePerformedFromQuickbar()
bool Can(PlayerBase player, ActionTarget target, ItemBase item, int condition_mask)
bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
ActionVariantManager GetVariantManager()
bool CanBeSetFromInventory()
void SetInput(ActionInput ai)
static int ComputeConditionMask(PlayerBase player, ActionTarget target, ItemBase item)
override void SelectNextAction()
void SetActionFromInventory(ItemBase mainItem, ItemBase targetItem)
ref array< ActionInput > m_OrderedStandartActionInputs
override void SelectFirstActionCategory()
bool CanPerformActionFromQuickbar(ItemBase mainItem, ItemBase targetItem)
void EjectAction(typename actionType)
void RegisterInputs(PlayerBase player)
void SetDefaultInputsOrder()
int GetPossibleActionCount(typename inputType)
array< ActionBase > GetPossibleActions(typename inputType)
override void OnActionEnd()
void ProcessActionRequestEnd()
ActionBase GetPossibleAction(typename inputType)
void SetInventoryAction(ActionBase action_name, ItemBase target_item, ItemBase main_item)
void ActionStart(ActionBase action, ActionTarget target, ItemBase item, Param extra_data=NULL)
override GetSelectedActionCategory()
bool m_IgnoreAutoInputEnd
ref array< ref InventoryLocation > m_ReservedInventoryLocations
ref InventoryActionHandler m_InventoryActionHandler
void SetActioninputOrder()
void InjectAction(ActionBase action, ActionTarget target, ItemBase item)
override ActionTarget FindActionTarget()
void PerformActionFromQuickbar(ItemBase mainItem, ItemBase targetItem)
override void SelectNextActionCategory()
void SetInventoryAction(ActionBase action_name, ActionTarget target, ItemBase main_item)
override void RequestInterruptAction()
client requests action interrupt
bool LockInventory(ActionData action_data)
void FindContextualUserActions(int pCurrentCommandID)
void HandleInputsOnActionEnd()
void UnlockInventory(ActionData action_data)
override void EndOrInterruptCurrentAction()
void UnsetInventoryAction()
bool m_ActionWantEndRequest_Send
override void RequestEndAction()
void PerformActionStart(ActionBase action, ActionTarget target, ItemBase item, Param extra_data=NULL)
ref array< ActionInput > m_DefaultOrderOfActionInputs
ref array< ActionInput > m_OrederedAllActionInput
override void SelectPrevAction()
bool HasHandInventoryReservation()
override void OnJumpStart()
void InjectAction(typename actionType, ActionTarget target, ItemBase item)
void ResetInputsActions()
void PerformActionFromInventory(ItemBase mainItem, ItemBase targetItem)
override void OnInstantAction(typename user_action_type, Param data=NULL)
override void EndActionInput()
ref InventoryLocation m_HandInventoryLocationTest
override void Update(int pCurrentCommandID)
void ForceTarget(Object targetObject)
void HandleInputsOnActionStart(ActionBase action)
bool CanPerformActionFromInventory(ItemBase mainItem, ItemBase targetItem)
void UpdateActionCategoryPriority()
int m_SelectedActionInputToSrollIndex
ref TTypeNameActionInputMap m_RegistredInputsMap
void ActionManagerClient(PlayerBase player)
void ProcessActionInputEnd()
int m_LastAcknowledgmentID
static ActionVariantManager GetVariantManager(typename actionName)
void EjectAction(ActionBase action)
int GetPossibleActionIndex(typename inputType)
ref ActionData m_PendingActionData
override void SelectPrevActionCategory()
ItemBase FindActionItem()
bool m_ActionInputWantEnd_Send
void SetIgnoreAutomaticInputEnd(bool state)
bool CanSetActionFromInventory(ItemBase mainItem, ItemBase targetItem)
Client only - manage set up crafting on client.
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
proto void DPrint(string var)
Prints content of variable to console/log. Should be used for critical messages so it will appear in ...