Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
inventoryactionhandler.c
Go to the documentation of this file.
1
2
class
InventoryActionHandler
3
{
4
ActionBase
m_action
;
5
ActionTarget
m_target
;
6
ItemBase
m_mainItem
;
7
bool
m_useItemInHands
;
8
9
PlayerBase
m_player
;
10
11
bool
m_isActive
;
12
vector
m_actionStartPos
;
13
14
const
float
MIN_DISTANCE_TO_INTERRUPT
= 1.0;
15
const
int
IAH_SINGLE_USE
= 1;
16
const
int
IAH_CONTINUOUS
= 2;
17
18
19
void
InventoryActionHandler
(
PlayerBase
player)
20
{
21
m_player
= player;
22
m_isActive
=
false
;
23
m_action
= null;
24
m_target
= null;
25
m_mainItem
= null;
26
m_useItemInHands
=
false
;
27
28
}
29
30
void
SetAction
(
ActionBase
action,
ItemBase
target_item,
ItemBase
main_item )
31
{
32
Object
target_parent = null;
33
if
(target_item)
34
{
35
target_parent = target_item.GetHierarchyParent();
36
}
37
ActionTarget
at =
new
ActionTarget
(target_item, target_parent, -1,
vector
.
Zero
, -1);
38
39
SetAction
(action, at, main_item );
40
}
41
42
void
SetAction
(
ActionBase
action,
ActionTarget
target,
ItemBase
main_item )
43
{
44
ActionManagerClient
mngr;
45
Class
.
CastTo
(mngr,
m_player
.GetActionManager());
46
47
m_action
= action;
48
m_target
= target;
49
m_mainItem
= main_item;
50
51
ItemBase
itemInHand =
m_player
.GetItemInHands();
52
m_useItemInHands
= main_item == itemInHand;
53
54
m_actionStartPos
=
m_player
.GetPosition();
55
m_isActive
=
true
;
56
57
//mngr.InjectAction( action, target, main_item );
58
mngr.
ForceTarget
(
m_target
.GetObject());
59
60
g_Game
.GetMission().HideInventory();
61
}
62
63
bool
IsActiveAction
()
64
{
65
return
m_isActive
;
66
}
67
68
void
OnUpdate
()
69
{
70
71
if
( !
m_isActive
)
return
;
72
73
if
(
m_player
.IsRaised() ||
m_player
.GetCommand_Melee() )
74
{
75
DeactiveAction
();
76
return
;
77
}
78
79
if
(
g_Game
.IsInventoryOpen() )
80
{
81
DeactiveAction
();
82
return
;
83
}
84
85
if
(
m_useItemInHands
)
86
{
87
ItemBase
handItem =
m_player
.GetItemInHands();
88
89
if
( handItem !=
m_mainItem
)
90
{
91
DeactiveAction
();
92
return
;
93
}
94
}
95
96
if
(
Math
.
AbsFloat
(
vector
.
Distance
(
m_actionStartPos
,
m_player
.GetPosition())) >
MIN_DISTANCE_TO_INTERRUPT
)
97
{
98
DeactiveAction
();
99
return
;
100
}
101
102
103
}
104
105
void
DeactiveAction
()
106
{
107
if
( !
m_isActive
)
return
;
108
109
m_isActive
=
false
;
110
111
ActionManagerClient
mngr;
112
Class
.
CastTo
(mngr,
m_player
.GetActionManager());
113
114
mngr.
EjectAction
(
m_action
);
115
mngr.
ClearForceTarget
();
116
117
m_player
.GetCraftingManager().ResetInventoryCraft();
118
119
m_action
= null;
120
m_target
= null;
121
m_mainItem
= null;
122
m_useItemInHands
=
false
;
123
}
124
}
ActionTarget
class ActionTargets ActionTarget
ActionBase
Definition
actionbase.c:59
ActionManagerClient
Definition
actionmanagerclient.c:5
ActionManagerClient::EjectAction
void EjectAction(ActionBase action)
Definition
actionmanagerclient.c:448
ActionManagerClient::ClearForceTarget
void ClearForceTarget()
Definition
actionmanagerclient.c:469
ActionManagerClient::ForceTarget
void ForceTarget(Object targetObject)
Definition
actionmanagerclient.c:460
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
InventoryActionHandler::m_action
ActionBase m_action
Definition
inventoryactionhandler.c:4
InventoryActionHandler::m_target
ActionTarget m_target
Definition
inventoryactionhandler.c:5
InventoryActionHandler::SetAction
void SetAction(ActionBase action, ItemBase target_item, ItemBase main_item)
Definition
inventoryactionhandler.c:30
InventoryActionHandler::IAH_SINGLE_USE
const int IAH_SINGLE_USE
Definition
inventoryactionhandler.c:15
InventoryActionHandler::InventoryActionHandler
void InventoryActionHandler(PlayerBase player)
Definition
inventoryactionhandler.c:19
InventoryActionHandler::DeactiveAction
void DeactiveAction()
Definition
inventoryactionhandler.c:105
InventoryActionHandler::OnUpdate
void OnUpdate()
Definition
inventoryactionhandler.c:68
InventoryActionHandler::SetAction
void SetAction(ActionBase action, ActionTarget target, ItemBase main_item)
Definition
inventoryactionhandler.c:42
InventoryActionHandler::IAH_CONTINUOUS
const int IAH_CONTINUOUS
Definition
inventoryactionhandler.c:16
InventoryActionHandler::m_player
PlayerBase m_player
Definition
inventoryactionhandler.c:9
InventoryActionHandler::m_actionStartPos
vector m_actionStartPos
Definition
inventoryactionhandler.c:12
InventoryActionHandler::IsActiveAction
bool IsActiveAction()
Definition
inventoryactionhandler.c:63
InventoryActionHandler::m_useItemInHands
bool m_useItemInHands
Definition
inventoryactionhandler.c:7
InventoryActionHandler::m_isActive
bool m_isActive
Definition
inventoryactionhandler.c:11
InventoryActionHandler::MIN_DISTANCE_TO_INTERRUPT
const float MIN_DISTANCE_TO_INTERRUPT
Definition
inventoryactionhandler.c:14
InventoryActionHandler::m_mainItem
ItemBase m_mainItem
Definition
inventoryactionhandler.c:6
ItemBase
Definition
inventoryitem.c:742
Math
Definition
enmath.c:7
Object
Definition
objecttyped.c:2
PlayerBase
Definition
playerbaseclient.c:2
vector
Definition
enconvert.c:119
vector::Distance
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
vector::Zero
static const vector Zero
Definition
enconvert.c:123
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
Class::CastTo
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
Math::AbsFloat
static proto float AbsFloat(float f)
Returns absolute value.
Games
Dayz
scripts
4_world
classes
inventoryactionhandler.c
Generated by
1.17.0