Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actioninput.c
Go to the documentation of this file.
2{
3 AIT_CONTINUOUS, //React to hold input and release after it
4 AIT_SINGLE, //React to click input - single use actions
5 AIT_DOUBLECLICK, //React to double click input - single use actions
6 AIT_HOLDSINGLE, //React to hold input - single use actions
7 AIT_CLICKCONTINUOUS, //React to click input for start and click for end
9 AIT_INVENTORYINPUT, //Inventory specific actions
10}
11
12class ForcedActionData
13{
15 ref ActionTarget m_Target;
17}
18
20{
21 UAIDWrapper m_input; //Input ID automaticly generated from name.
22 int m_InputType; //Use from action manager for handling input
23 int m_Priority;
24 bool m_DetectFromItem; //Can be used action from item in hands?
25 bool m_DetectFromTarget; //Can be used action from target in vicinity?
26 bool m_DetectFromPlayer; //Can be used action from player?
27 bool m_Enabled;
28 bool m_JustActivate;
29 bool m_HasTarget;
30
31 PlayerBase m_Player;
32
33 ref ActionTarget m_ForcedTarget;
34
35 ref ForcedActionData m_ForcedActionData;
36
37 ref ActionTarget m_Target;
38 ItemBase m_MainItem;
39 int m_ConditionMask;
40
41 bool m_Active;
42
43 void ActionInput()
44 {
45 m_Active = false;
46 m_Enabled = true;
47 m_ForcedTarget = null;
48 m_ForcedActionData = null;
49
50 m_HasTarget = false;
51
52 m_JustActivate = false;
53 m_DetectFromTarget = false;
54 m_DetectFromItem = true;
55 m_DetectFromPlayer = true;
56
57 m_Priority = 100;
58 }
59
60 void Init(PlayerBase player, ActionManagerClient am)
61 {
62 m_Player = player;
63
64 if ( LogManager.IsActionLogEnable())
65 {
66 Debug.ActionLog("n/a",this.ToString(), "n/a","Init()", player.ToString());
67 }
68
69 }
70
71 void SetEnablity(bool value)
72 {
73 m_Enabled = value;
74 }
75
76 protected void SetInput(string input_name)
77 {
78 m_input = GetUApi().GetInputByName(input_name).GetPersistentWrapper();
79
80 if ( LogManager.IsActionLogEnable())
81 {
82 if (m_input && m_input.InputP())
83 Debug.ActionLog("(+) input set to " + input_name ,this.ToString(), "n/a","SetInput()", "n/a");
84 else
85 Debug.ActionLog("(-) input is not set to " + input_name ,this.ToString(), "n/a","SetInput()","n/a");
86 }
87 }
88
90 {
91 return m_InputType;
92 }
93
95 {
96 return m_input.InputP();
97 }
98
100 {
101 return m_JustActivate;
102 }
103
104 bool IsActive()
105 {
106 return m_Active;
107 }
108
109 bool WasEnded()
110 {
111 return !m_Active;
112 }
113
114 void Update()
115 {
116 if( !m_Enabled )
117 {
118 m_Active = false;
119 m_JustActivate = false;
120 return;
121 }
122
123 switch ( m_InputType )
124 {
125 case ActionInputType.AIT_CONTINUOUS:
126 m_JustActivate = false;
127 if(m_Active)
128 {
129 m_Active = m_input.InputP().LocalHold();
130 }
131 else
132 {
133 m_Active = m_input.InputP().LocalHoldBegin();
134 m_JustActivate = m_Active;
135 }
136 break;
137 case ActionInputType.AIT_SINGLE:
138 m_Active = m_input.InputP().LocalClick();
139 m_JustActivate = m_Active;
140 break;
141 case ActionInputType.AIT_DOUBLECLICK:
142 m_Active = m_input.InputP().LocalDoubleClick();
143 m_JustActivate = m_Active;
144 break;
145 break;
146 case ActionInputType.AIT_HOLDSINGLE:
147 m_Active = m_input.InputP().LocalHoldBegin();
148 m_JustActivate = m_Active;
149 break;
150 break;
151 case ActionInputType.AIT_CLICKCONTINUOUS:
152 m_JustActivate = false;
153 if(m_Active)
154 {
155 if ( m_input.InputP().LocalClick() )
156 {
157 m_Active = false;
158 }
159 }
160 else
161 {
162 m_Active = m_input.InputP().LocalClick();
163 m_JustActivate = m_Active;
164 }
165 break;
166 break;
167 default:
168 break;
169 }
170 }
171
172 void Reset()
173 {
174 m_Active = false;
176 }
177
178 void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
179 {
180 }
181
183 {
184 return NULL;
185 }
186
187 ActionTarget GetUsedActionTarget()
188 {
189 return m_Target;
190 }
191
193 {
194 return m_MainItem;
195 }
196
198 {
199 return NULL;
200 }
201
203 {
204 return NULL;
205 }
206
208 {
209 return -1;
210 }
211
213 {
214 return false;
215 }
216
218 {
220 }
221
223 {
224 Reset();
225 }
226
228 {}
229
230 void ForceAction(ActionBase action, ActionTarget target, ItemBase item )
231 {
232 m_ForcedActionData = new ForcedActionData;
233 m_ForcedActionData.m_Action = action;
234 m_ForcedActionData.m_Target = target;
235 m_ForcedActionData.m_Item = item;
236 }
237
238 void ForceActionTarget( ActionTarget target )
239 {
240 m_ForcedTarget = target;
241 }
242
244 {
245 m_ForcedActionData = null;
246 }
247
249 {
250 m_ForcedTarget = NULL;
251 }
252
254 {
255 if (m_ForcedActionData)
256 {
257 if (m_ForcedActionData.m_Action.Can(player, m_ForcedActionData.m_Target, m_ForcedActionData.m_Item))
258 {
259 m_MainItem = m_ForcedActionData.m_Item;
260 m_Target = m_ForcedActionData.m_Target;
261 return true;
262 }
263 }
264 return false;
265 }
266
268 {
269 }
270
272 {}
273
275 {
276 return -1;
277 }
278
279 bool HasInput()
280 {
281 return m_input != NULL;
282 }
283
285 {
286 return m_Priority;
287 }
288}
289
290class StandardActionInput : ActionInput
291{
294
300
301 override void ForceAction(ActionBase action, ActionTarget target, ItemBase item )
302 {
303 super.ForceAction(action, target, item);
304
306 }
307
308 void _GetSelectedActions( Object action_source_object, out array<ActionBase> select_actions_all, out bool has_any_action_target)
309 {
310 if ( !action_source_object )
311 return;
312
313 array<ActionBase_Basic> possible_actions;
314 array<ref ActionBase> variant_actions;
315 action_source_object.GetActions(this.Type(), possible_actions);
316 ActionBase action;
317
318 if(possible_actions)
319 {
320 for (int i = 0; i < possible_actions.Count(); i++)
321 {
322 action = ActionBase.Cast(possible_actions.Get(i));
323
324 if ( action.HasVariants() )
325 {
326 action.UpdateVariants( m_MainItem, m_Target.GetObject(), m_Target.GetComponentIndex() );
327 action.GetVariants( variant_actions);
328 for (int j = 0; j < variant_actions.Count(); j++)
329 {
330 action = variant_actions[j];
331 if ( action.Can(m_Player, m_Target, m_MainItem, m_ConditionMask) )
332 {
333 select_actions_all.Insert(action);
334 if (action.HasTarget())
335 has_any_action_target = true;
336 }
337 }
338 }
339 else
340 {
341 if ( action.Can(m_Player, m_Target, m_MainItem, m_ConditionMask) )
342 {
343 select_actions_all.Insert(action);
344 if (action.HasTarget())
345 has_any_action_target = true;
346 }
347 }
348 }
349 }
350 }
351
352 override void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
353 {
354 if ( ForceActionCheck(player))
355 {
356 m_SelectActions.Clear();
357 m_SelectActions.Insert(m_ForcedActionData.m_Action);
358 return;
359 }
360
361 if(m_ForcedTarget)
362 {
363 target = m_ForcedTarget;
364 }
365
366 array<ActionBase> select_actions_all = new array<ActionBase>;
367 int i, last_index;
368 bool change = false;
369 m_HasTarget = false;
370
371 m_MainItem = item;
372 m_Target = target;
373 m_ConditionMask = action_condition_mask;
374
375
376 if( m_DetectFromItem )
377 {
378 _GetSelectedActions( item, select_actions_all, m_HasTarget);
379 }
380
381
382 if( m_DetectFromTarget )
383 {
384 _GetSelectedActions( target.GetObject(), select_actions_all, m_HasTarget);
385 _GetSelectedActions( target.GetParent(), select_actions_all, m_HasTarget);
386 }
387
388 if( m_DetectFromPlayer )
389 {
390 _GetSelectedActions( player, select_actions_all, m_HasTarget);
391 }
392
393 if (select_actions_all.Count())
394 {
395 last_index = 0;
396 for ( i = 0; i < select_actions_all.Count(); i++ )
397 {
398 ActionBase action = select_actions_all[i];
399 if ( m_HasTarget )
400 {
401 if ( action.HasTarget() )
402 {
403 if ( m_SelectActions.Count() > last_index )
404 {
405 if ( m_SelectActions[last_index] != action )
406 {
407 change = true;
408 m_SelectActions[last_index] = action;
409 }
410 }
411 else
412 {
413 change = true;
414 m_SelectActions.Insert(action);
415 }
416 action.OnActionInfoUpdate(player, target, item);
417 last_index++;
418 }
419 }
420 else
421 {
422 if ( m_SelectActions.Count() > last_index )
423 {
424 if ( m_SelectActions[last_index] != action )
425 {
426 change = true;
427 m_SelectActions[last_index++] = action;
428 }
429 }
430 else
431 {
432 change = true;
433 m_SelectActions.Insert(action);
434 }
435 action.OnActionInfoUpdate(player, target, item);
436 last_index++;
437 }
438 }
439 }
440 else
441 {
442 change = true;
444 m_SelectActions.Clear();
445 }
446
447 if (m_SelectActions.Count() > last_index)
448 {
449 change = true;
450 for (i = last_index; i < m_SelectActions.Count(); i++)
451 {
452 m_SelectActions.Remove(last_index);
453 }
454 }
455
456 if ( change )
457 {
459 m_Player.GetActionManager().SelectFirstActionCategory();
460 }
461 }
462
464 {
465 return m_SelectActions;
466 }
467
469 {
470 return m_SelectActions.Count();
471 }
472
473 override bool HasTarget()
474 {
475 return m_HasTarget;
476 }
477
479 {
481 }
482
484 {
485 if (m_SelectActions.Count() > 0)
487 return null;
488 }
489
490 override void ActionsSelectReset()
491 {
492 m_SelectActions.Clear();
494 }
495
496 override void SelectNextAction()
497 {
498 if(m_SelectActions.Count())
499 {
502 {
504 }
505 }
506 }
507
508 override void SelectPrevAction()
509 {
510 if(m_SelectActions.Count())
511 {
513 if(0 > m_selectedActionIndex )
514 {
516 }
517 }
518 }
519
520}
521
522class ContinuousInteractActionInput : StandardActionInput
523{
525 {
526 SetInput("UAAction");
527 m_Priority = 60;
528 m_InputType = ActionInputType.AIT_CONTINUOUS;
529 m_DetectFromTarget = true;
530 m_DetectFromItem = false;
531 m_DetectFromPlayer = true;
532 }
533};
534
536{
538 {
539 m_InputType = ActionInputType.AIT_SINGLE;
540 m_Priority = 80;
541 }
542
543 override void OnActionStart()
544 {
545 super.OnActionStart();
546 m_Active = false;
547 }
548
549 override bool WasEnded()
550 {
551 return false;
552 }
553};
554
556{
558 {
559 m_DetectFromTarget = false;
560 }
561
562 override void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
563 {
564 m_MainItem = item;
565 m_Target = target;
566 m_ConditionMask = action_condition_mask;
567 }
568
569 override ActionBase GetAction()
570 {
572 return m_ForcedActionData.m_Action;
573
574 if(m_MainItem)
575 {
576 array<ActionBase_Basic> possible_actions;
577 ActionBase action;
578
579 m_MainItem.GetActions(this.Type(), possible_actions);
580 if(possible_actions)
581 {
582 for (int i = 0; i < possible_actions.Count(); i++)
583 {
584 action = ActionBase.Cast(possible_actions.Get(i));
585 if ( action.Can(m_Player, m_Target, m_MainItem, m_ConditionMask) )
586 {
587 return action;
588 }
589 }
590 }
591
592 }
593 return NULL;
594 }
595
596 override ActionBase GetPossibleAction()
597 {
598 return GetAction();
599 }
600}
601
602
603
604class ContinuousDefaultActionInput : StandardActionInput
605{
606 protected ActionBase m_SelectAction; //Do nothing only for back compatibilit, relevant only for inherited class
608 {
609 SetInput("UADefaultAction");
610 m_InputType = ActionInputType.AIT_CONTINUOUS;
611 m_Priority = 20;
612 m_DetectFromTarget = false;
613 m_DetectFromItem = true;
614 m_DetectFromPlayer = true;
615
616 m_SelectAction = null;
617 }
618
620 {
621 return m_SelectAction;
622 }
623
624 override void ActionsSelectReset()
625 {
626 super.ActionsSelectReset();
627 m_SelectAction = NULL;
628 }
629};
630
631class DefaultActionInput : ContinuousDefaultActionInput
632{
633 void DefaultActionInput(PlayerBase player)
634 {
635 m_InputType = ActionInputType.AIT_SINGLE;
636 m_Priority = 40;
637 }
638
639 override void OnActionStart()
640 {
641 super.OnActionStart();
642 m_Active = false;
643 }
644
645 override bool WasEnded()
646 {
647 return false;
648 }
649};
650
652{
653 void DropActionInput(PlayerBase player)
654 {
655 SetInput("UADropitem");
656 m_InputType = ActionInputType.AIT_HOLDSINGLE;
657 }
658};
659
660class CarHornShortActionInput : ContinuousDefaultActionInput
661{
662 ref ActionTarget targetNew;
663
665 {
666 SetInput("UACarHorn");
667 m_InputType = ActionInputType.AIT_SINGLE;
668 m_Priority = 100;
669 m_DetectFromItem = false;
670 m_DetectFromTarget = false;
671 m_DetectFromPlayer = false;
672 }
673
674 override void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
675 {
676 if (ForceActionCheck(player))
677 {
678 m_SelectAction = m_ForcedActionData.m_Action;
679 return;
680 }
681
682 m_SelectAction = null;
683 array<ActionBase_Basic> possibleActions;
684 ActionBase action;
685 int i;
686
687 m_MainItem = null;
688 if (player && player.IsInVehicle())
689 {
690 HumanCommandVehicle vehCommand = player.GetCommand_Vehicle();
691 if (vehCommand)
692 {
693 Transport trans = vehCommand.GetTransport();
694 if (trans)
695 {
696 targetNew = new ActionTarget(trans, null, -1, vector.Zero, -1);
697 ForceActionTarget(targetNew);
698 }
699 }
700
701 if (!targetNew)
702 {
703 ClearForcedTarget();
704 }
705 }
706
707 target = m_ForcedTarget;
708 m_Target = m_ForcedTarget;
709
710 if (target && target.GetObject())
711 {
712 target.GetObject().GetActions(this.Type(), possibleActions);
713 if (possibleActions)
714 {
715 for (i = 0; i < possibleActions.Count(); i++)
716 {
717 action = ActionBase.Cast(possibleActions.Get(i));
718 if (action.Can(player, target, m_MainItem, action_condition_mask))
719 {
720 m_SelectAction = action;
721 return;
722 }
723 }
724 }
725 }
726 }
727
728 override ActionBase GetAction()
729 {
730 return m_SelectAction;
731 }
732}
733
735{
738 SetInput("UACarHorn");
739 m_InputType = ActionInputType.AIT_CONTINUOUS;
740 m_Priority = 101;
741 m_DetectFromItem = false;
742 m_DetectFromTarget = false;
743 m_DetectFromPlayer = false;
744 }
745}
746
748{
749 ref ActionTarget target_new;
750
752 {
753 SetInput("UAToggleHeadlight");
754 m_InputType = ActionInputType.AIT_SINGLE;
755 m_Priority = 100;
756 }
757
758 override void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
759 {
760 if( ForceActionCheck(player) )
761 {
762 m_SelectAction = m_ForcedActionData.m_Action;
763 return;
764 }
765 //ForceActionTarget(player.m_PlayerLightManager.
766
767 m_SelectAction = NULL;
768 array<ActionBase_Basic> possible_actions;
769 ActionBase action;
770 int i;
771
772 m_MainItem = NULL;
773 if ( player && !player.IsInVehicle() )
774 {
775 Clothing headgear = Clothing.Cast(player.FindAttachmentBySlotName("Headgear"));
776 Clothing eyewear = Clothing.Cast(player.FindAttachmentBySlotName("Eyewear"));
777 //TODO - extend this to allow for a switchable control over all possible light sources (depth 0 or 1 only?)
778
779 if ( headgear && headgear.GetLightSourceItem() )
780 {
781 target_new = new ActionTarget(headgear, null, -1, vector.Zero, -1);
782 ForceActionTarget(target_new);
783 }
784 else if ( eyewear && eyewear.GetLightSourceItem() )
785 {
786 target_new = new ActionTarget(eyewear, null, -1, vector.Zero, -1);
787 ForceActionTarget(target_new);
788 }
789 else
790 ClearForcedTarget();
791 }
792 else if ( player && player.IsInVehicle() )
793 {
794 HumanCommandVehicle vehCommand = player.GetCommand_Vehicle();
795 if( vehCommand )
796 {
797 Transport trans = vehCommand.GetTransport();
798 if( trans )
799 {
800 target_new = new ActionTarget(trans, null, -1, vector.Zero, -1);
801 ForceActionTarget(target_new);
802 }
803 }
804
805 if ( !target_new )
806 ClearForcedTarget();
807 }
808
809 target = m_ForcedTarget;
810 m_Target = m_ForcedTarget;
811
812 if(target && target.GetObject())
813 {
814 target.GetObject().GetActions(this.Type(), possible_actions);
815 if(possible_actions)
816 {
817 for (i = 0; i < possible_actions.Count(); i++)
818 {
819 action = ActionBase.Cast(possible_actions.Get(i));
820 if ( action.Can(player, target, m_MainItem, action_condition_mask) )
821 {
822 m_SelectAction = action;
823 return;
824 }
825 }
826 }
827 }
828 }
829
830 override ActionBase GetAction()
831 {
832 return m_SelectAction;
833 }
835
837{
838 ref ActionTarget target_new;
839
841 {
842 SetInput("UAToggleNVG");
843 m_InputType = ActionInputType.AIT_HOLDSINGLE;
844 m_Priority = 100;
845 }
846
847 override void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
848 {
849 if( ForceActionCheck(player) )
850 {
851 m_SelectAction = m_ForcedActionData.m_Action;
852 return;
853 }
854 //ForceActionTarget(player.m_PlayerLightManager.
855
856 m_SelectAction = NULL;
857 array<ActionBase_Basic> possible_actions;
858 ActionBase action;
859 int i;
860
861 m_MainItem = NULL;
862 if ( player )
863 {
864 Mich2001Helmet helmet = Mich2001Helmet.Cast(player.FindAttachmentBySlotName("Headgear"));
865 NVGHeadstrap headstrap = NVGHeadstrap.Cast(player.FindAttachmentBySlotName("Eyewear"));
866 if ( helmet )
867 {
868 //m_MainItem = Headtorch_ColorBase.Cast(player.FindAttachmentBySlotName("Headgear"));
869 target_new = new ActionTarget(helmet, null, -1, vector.Zero, -1);
870 ForceActionTarget(target_new);
871 }
872 else if ( headstrap )
873 {
874 target_new = new ActionTarget(headstrap, null, -1, vector.Zero, -1);
875 ForceActionTarget(target_new);
876 }
877 else
878 ClearForcedTarget();
879 }
880
881 target = m_ForcedTarget;
882 m_Target = m_ForcedTarget;
883
884 if(target && target.GetObject())
885 {
886 target.GetObject().GetActions(this.Type(), possible_actions);
887 if(possible_actions)
888 {
889 for (i = 0; i < possible_actions.Count(); i++)
890 {
891 action = ActionBase.Cast(possible_actions.Get(i));
892 if ( action.Can(player, target, m_MainItem, action_condition_mask) )
893 {
894 m_SelectAction = action;
895 return;
896 }
897 }
898 }
899 }
900 }
901
902 override ActionBase GetAction()
903 {
904 return m_SelectAction;
905 }
906};
907
909{
911 {
912 SetInput("UAReloadMagazine");
913 m_InputType = ActionInputType.AIT_CONTINUOUS;
914 }
915};
916
918{
920 {
921 SetInput("UAReloadMagazine");
922 m_InputType = ActionInputType.AIT_SINGLE;
923 }
924};
925
927{
929 {
930 //SetInput("UAReloadMagazine");
931 m_InputType = ActionInputType.AIT_NOINPUTCONTROL;
932 }
933};
934
936{
938 {
939 //SetInput("UAReloadMagazine");
940 m_InputType = ActionInputType.AIT_INVENTORYINPUT;
941 }
942};
943
947
948
ref ActionBase m_Action
Definition actionbase.c:35
ref ActionTarget m_Target
Definition actionbase.c:18
void _GetSelectedActions(Object action_source_object, out array< ActionBase > select_actions_all, out bool has_any_action_target)
void ContinuousDefaultActionInput(PlayerBase player)
int m_selectedActionIndex
override array< ActionBase > GetPossibleActions()
ref ActionTarget targetNew
override void ForceAction(ActionBase action, ActionTarget target, ItemBase item)
NoIndicationActionInputBase m_SelectAction
override ActionBase GetPossibleAction()
void StandardActionInput(PlayerBase player)
override ActionBase GetAction()
override void ActionsSelectReset()
ActionInputType
Definition actioninput.c:2
@ AIT_SINGLE
Definition actioninput.c:4
@ AIT_CONTINUOUS
Definition actioninput.c:3
@ AIT_DOUBLECLICK
Definition actioninput.c:5
@ AIT_INVENTORYINPUT
Definition actioninput.c:9
@ AIT_HOLDSINGLE
Definition actioninput.c:6
@ AIT_NOINPUTCONTROL
Definition actioninput.c:8
@ AIT_CLICKCONTINUOUS
Definition actioninput.c:7
override int GetPossibleActionsCount()
override void SelectNextAction()
override bool HasTarget()
override void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
override void SelectPrevAction()
override int GetPossibleActionIndex()
ActionInput m_SelectActions
ToggleLightsActionInput CarHornLongActionInput
ItemBase m_Item
Definition actioninput.c:16
ref ActionTarget m_Target
Definition actioninput.c:15
class BaitData m_MainItem
Definition actionbase.c:36
int GetVariants(out array< ref ActionBase > variants)
Definition actionbase.c:964
bool HasVariants()
Definition actionbase.c:951
void UpdateVariants(Object item, Object target, int componet_index)
Definition actionbase.c:982
bool HasTarget()
Definition actionbase.c:244
void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
bool Can(PlayerBase player, ActionTarget target, ItemBase item, int condition_mask)
Definition actionbase.c:897
void ClearForcedTarget()
UAInput GetUAInput()
Definition actioninput.c:94
void SetInput(string input_name)
Definition actioninput.c:76
bool IsActive()
int GetPossibleActionsCount()
void ActionsSelectReset()
void UpdatePossibleActions(PlayerBase player, ActionTarget target, ItemBase item, int action_condition_mask)
void Update()
void OnActionEnd()
array< ActionBase > GetPossibleActions()
bool HasTarget()
void OnActionStart()
void SelectPrevAction()
void ForceActionTarget(ActionTarget target)
ActionBase GetPossibleAction()
bool HasInput()
void ClearForcedAction()
void SelectNextAction()
int GetPossibleActionIndex()
ActionBase GetAction()
int GetPriority()
bool WasEnded()
int GetInputType()
Definition actioninput.c:89
void ForceAction(ActionBase action, ActionTarget target, ItemBase item)
ItemBase GetUsedMainItem()
bool ForceActionCheck(PlayerBase player)
ActionTarget GetUsedActionTarget()
bool JustActivate()
Definition actioninput.c:99
override ItemBase GetLightSourceItem()
Definition debug.c:2
Native class for boats - handles physics simulation.
Definition boat.c:28
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
override Widget Init()
Definition dayzgame.c:127
proto string ToString()
bool m_Enabled
Definition traptrigger.c:71
DayZPlayer m_Player
Definition hand_events.c:42
string Type
proto native UAInputAPI GetUApi()