Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actiontransferliquid.c
Go to the documentation of this file.
1
class
TransferLiquidActionReciveData
: ActionReciveData
2
{
3
bool
m_TendencyRecived
;
4
}
5
6
class
TransferLiquidActionData :
ActionData
7
{
8
bool
m_Tendency
;
9
};
10
11
class
ActionTransferLiquidCB
:
ActionContinuousBaseCB
12
{
13
private
const
float
TIME_TO_REPEAT
= 0.25;
14
15
override
void
CreateActionComponent
()
16
{
17
if
(TransferLiquidActionData.Cast(
m_ActionData
))
18
m_ActionData
.m_ActionComponent =
new
CAContinuousQuantityLiquidTransfer
(
UAQuantityConsumed
.
DRAIN_LIQUID
,
TIME_TO_REPEAT
, TransferLiquidActionData.Cast(
m_ActionData
).m_Tendency);
19
else
20
m_ActionData
.m_ActionComponent =
new
CAContinuousQuantityLiquidTransfer
(
UAQuantityConsumed
.
DRAIN_LIQUID
,
TIME_TO_REPEAT
);
21
}
22
};
23
25
class
ActionTransferLiquid
:
ActionContinuousBase
26
{
27
void
ActionTransferLiquid
()
28
{
29
m_CallbackClass
=
ActionTransferLiquidCB
;
30
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONMOD_EMPTY_VESSEL;
31
m_CommandUIDProne
=
DayZPlayerConstants
.CMD_ACTIONFB_EMPTY_VESSEL;
32
m_SpecialtyWeight
= UASoftSkillsWeight.PRECISE_LOW;
33
}
34
35
override
void
CreateConditionComponents
()
36
{
37
m_ConditionItem
=
new
CCINonRuined
;
38
m_ConditionTarget
=
new
CCTNonRuined
(
UAMaxDistances
.
DEFAULT
);
39
}
40
41
override
bool
HasProneException
()
42
{
43
return
true
;
44
}
45
46
override
string
GetText
()
47
{
48
PlayerBase
player =
PlayerBase
.Cast(
g_Game
.GetPlayer() );
49
if
( player.GetLiquidTendencyDrain() )
50
return
"#drain_liquid"
;
51
else
52
return
"#pour_liquid"
;
53
}
54
55
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
56
{
57
ItemBase
target_item =
ItemBase
.Cast(target.GetObject());
58
59
if
( target_item && item )
60
{
61
bool
can_drain = Liquid.CanTransfer(target_item,item);
62
bool
can_pour = Liquid.CanTransfer(item,target_item);
63
64
if
(can_drain && can_pour)
65
{
66
return
true
;
67
}
68
else
if
(!can_pour && can_drain)
69
{
70
if
( (!
g_Game
.IsDedicatedServer()) && !player.GetLiquidTendencyDrain() )
71
{
72
player.SetLiquidTendencyDrain(
true
);
73
return
false
;
74
}
75
else
76
{
77
return
true
;
78
}
79
}
80
else
if
(!can_drain && can_pour)
81
{
82
if
( (!
g_Game
.IsDedicatedServer()) && player.GetLiquidTendencyDrain() )
83
{
84
player.SetLiquidTendencyDrain(
false
);
85
return
false
;
86
}
87
else
88
{
89
return
true
;
90
}
91
}
92
}
93
return
false
;
94
}
95
96
override
void
OnStartClient
(
ActionData
action_data )
97
{
98
TransferLiquidActionData.Cast(action_data).m_Tendency = action_data.m_Player.GetLiquidTendencyDrain();
99
}
100
101
override
void
OnStartServer
(
ActionData
action_data )
102
{
103
super.OnStartServer(action_data);
104
105
if
(!
g_Game
.IsMultiplayer())
106
TransferLiquidActionData.Cast(action_data).m_Tendency = action_data.m_Player.GetLiquidTendencyDrain();
107
}
108
109
override
ActionData
CreateActionData
()
110
{
111
TransferLiquidActionData action_data =
new
TransferLiquidActionData;
112
return
action_data;
113
}
114
115
override
void
WriteToContext
(
ParamsWriteContext
ctx,
ActionData
action_data)
116
{
117
super.WriteToContext(ctx, action_data);
118
119
ctx.
Write
(action_data.m_Player.GetLiquidTendencyDrain());
120
}
121
122
override
bool
ReadFromContext
(
ParamsReadContext
ctx, out ActionReciveData action_recive_data )
123
{
124
if
(!action_recive_data)
125
{
126
action_recive_data =
new
TransferLiquidActionReciveData
;
127
}
128
TransferLiquidActionReciveData
recive_data_transfer =
TransferLiquidActionReciveData
.Cast(action_recive_data);
129
130
super.ReadFromContext(ctx, action_recive_data);
131
132
bool
tendency_drain;
133
if
( !ctx.
Read
(tendency_drain) )
134
return
false
;
135
recive_data_transfer.
m_TendencyRecived
= tendency_drain;
136
return
true
;
137
}
138
139
override
void
HandleReciveData
(ActionReciveData action_recive_data,
ActionData
action_data)
140
{
141
super.HandleReciveData(action_recive_data, action_data);
142
143
TransferLiquidActionReciveData
recive_data_transfer =
TransferLiquidActionReciveData
.Cast(action_recive_data);
144
TransferLiquidActionData.Cast(action_data).m_Tendency = recive_data_transfer.
m_TendencyRecived
;
145
}
146
147
override
void
OnStartAnimationLoop
(
ActionData
action_data )
148
{
149
if
( !
g_Game
.IsMultiplayer() ||
g_Game
.IsServer() )
150
{
151
Bottle_Base
vessel_in_hands =
Bottle_Base
.Cast( action_data.m_Target.GetObject() );
152
Param1<bool> play =
new
Param1<bool>(
true
);
153
if
(TransferLiquidActionData.Cast(action_data))
154
{
155
if
(TransferLiquidActionData.Cast(action_data).m_Tendency ==
true
)
156
g_Game
.RPCSingleParam( vessel_in_hands,
SoundTypeBottle
.EMPTYING, play,
true
);
157
else
if
(!TransferLiquidActionData.Cast(action_data).m_Tendency ==
false
)
158
g_Game
.RPCSingleParam( vessel_in_hands,
SoundTypeBottle
.POURING, play,
true
);
159
}
160
}
161
}
162
163
override
void
OnEndAnimationLoop
(
ActionData
action_data )
164
{
165
if
( !
g_Game
.IsMultiplayer() ||
g_Game
.IsServer() )
166
{
167
Bottle_Base
target_vessel =
Bottle_Base
.Cast( action_data.m_Target.GetObject());
168
Param1<bool> play =
new
Param1<bool>(
false
);
169
if
(TransferLiquidActionData.Cast(action_data).m_Tendency)
170
g_Game
.RPCSingleParam( target_vessel,
SoundTypeBottle
.EMPTYING, play,
true
);
171
else
172
g_Game
.RPCSingleParam( target_vessel,
SoundTypeBottle
.POURING, play,
true
);
173
}
174
}
175
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
m_Tendency
TransferLiquidActionReciveData m_Tendency
SoundTypeBottle
SoundTypeBottle
Definition
bottle_base.c:2
ActionBaseCB::m_ActionData
ActionData m_ActionData
Definition
animatedactionbase.c:3
ActionBase::m_ConditionItem
ref CCIBase m_ConditionItem
Definition
actionbase.c:70
ActionBase::m_SpecialtyWeight
float m_SpecialtyWeight
Definition
actionbase.c:83
ActionBase::m_ConditionTarget
ref CCTBase m_ConditionTarget
Definition
actionbase.c:71
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase::ActionContinuousBase
void ActionContinuousBase()
Definition
actioncontinuousbase.c:124
ActionTransferLiquidCB
Definition
actiontransferliquid.c:12
ActionTransferLiquidCB::TIME_TO_REPEAT
const float TIME_TO_REPEAT
Definition
actiontransferliquid.c:13
ActionTransferLiquidCB::CreateActionComponent
override void CreateActionComponent()
Definition
actiontransferliquid.c:15
ActionTransferLiquid::OnStartAnimationLoop
override void OnStartAnimationLoop(ActionData action_data)
Definition
actiontransferliquid.c:147
ActionTransferLiquid::OnStartClient
override void OnStartClient(ActionData action_data)
Definition
actiontransferliquid.c:96
ActionTransferLiquid::CreateActionData
override ActionData CreateActionData()
Definition
actiontransferliquid.c:109
ActionTransferLiquid::CreateConditionComponents
override void CreateConditionComponents()
Definition
actiontransferliquid.c:35
ActionTransferLiquid::ReadFromContext
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Definition
actiontransferliquid.c:122
ActionTransferLiquid::OnEndAnimationLoop
override void OnEndAnimationLoop(ActionData action_data)
Definition
actiontransferliquid.c:163
ActionTransferLiquid::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actiontransferliquid.c:55
ActionTransferLiquid::WriteToContext
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Definition
actiontransferliquid.c:115
ActionTransferLiquid::ActionTransferLiquid
void ActionTransferLiquid()
Definition
actiontransferliquid.c:27
ActionTransferLiquid::HasProneException
override bool HasProneException()
Definition
actiontransferliquid.c:41
ActionTransferLiquid::HandleReciveData
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Definition
actiontransferliquid.c:139
ActionTransferLiquid::GetText
override string GetText()
Definition
actiontransferliquid.c:46
ActionTransferLiquid::OnStartServer
override void OnStartServer(ActionData action_data)
Definition
actiontransferliquid.c:101
AnimatedActionBase::m_CommandUIDProne
int m_CommandUIDProne
Definition
animatedactionbase.c:144
AnimatedActionBase::m_CommandUID
int m_CommandUID
Definition
animatedactionbase.c:143
AnimatedActionBase::m_CallbackClass
m_CallbackClass
Definition
animatedactionbase.c:145
Bottle_Base
Definition
canteen.c:2
CAContinuousQuantityLiquidTransfer
Definition
cacontinuousquantityliquidtransfer.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTNonRuined
Definition
cctnonruined.c:2
ItemBase
Definition
inventoryitem.c:742
PlayerBase
Definition
playerbaseclient.c:2
Serializer::Write
proto bool Write(void value_out)
Serializer::Read
proto bool Read(void value_in)
TransferLiquidActionReciveData
Definition
actiontransferliquid.c:2
TransferLiquidActionReciveData::m_TendencyRecived
bool m_TendencyRecived
Definition
actiontransferliquid.c:3
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::DEFAULT
const float DEFAULT
Definition
actionconstants.c:112
UAQuantityConsumed
Definition
actionconstants.c:4
UAQuantityConsumed::DRAIN_LIQUID
const float DRAIN_LIQUID
Definition
actionconstants.c:13
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
ParamsReadContext
Serializer ParamsReadContext
Definition
gameplay.c:15
ParamsWriteContext
Serializer ParamsWriteContext
Definition
gameplay.c:16
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actiontransferliquid.c
Generated by
1.17.0