Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
cacontinuousfill.c
Go to the documentation of this file.
1
class
CAContinuousFill
:
CAContinuousBase
2
{
3
protected
float
m_TargetUnits
;
4
protected
float
m_SpentQuantity
;
5
protected
float
m_SpentQuantity_total
;
6
protected
float
m_ItemQuantity
;
7
protected
float
m_AdjustedQuantityFilledPerSecond
;
8
protected
float
m_QuantityFilledPerSecond
;
9
protected
ref Param1<float>
m_SpentUnits
;
10
protected
float
m_TimeElpased
;
11
protected
float
m_DefaultTimeStep
= 0.25;
12
protected
int
m_liquid_type
;
13
14
void
CAContinuousFill
(
float
quantity_filled_per_second ,
int
liquid_type )
15
{
16
m_QuantityFilledPerSecond
= quantity_filled_per_second;
17
m_liquid_type
= liquid_type;
18
}
19
20
override
void
Setup
(
ActionData
action_data )
21
{
22
m_TimeElpased
= 0;
23
24
if
( !
m_SpentUnits
)
25
{
26
m_SpentUnits
=
new
Param1<float>(0);
27
}
28
else
29
{
30
m_SpentUnits
.param1 = 0;
31
}
32
33
float
throughputCoef = action_data.m_MainItem.GetLiquidThroughputCoef();
34
EntityAI
entity;
35
if
(action_data.m_Target && action_data.m_Target.GetObject() &&
Class
.
CastTo
(entity,action_data.m_Target.GetObject()))
36
{
37
throughputCoef =
Math
.
Min
(throughputCoef,entity.GetLiquidThroughputCoef());
38
}
39
m_QuantityFilledPerSecond
*= throughputCoef;
40
41
m_ItemQuantity
= action_data.m_MainItem.GetQuantity();
42
m_TargetUnits
= action_data.m_MainItem.GetQuantityMax() - action_data.m_MainItem.GetQuantity();
43
m_AdjustedQuantityFilledPerSecond
=
m_QuantityFilledPerSecond
;
//removed softskills
44
}
45
46
override
int
Execute
(
ActionData
action_data )
47
{
48
if
( !action_data.m_Player )
49
{
50
return
UA_ERROR
;
51
}
52
53
if
( action_data.m_MainItem.GetQuantity() >= action_data.m_MainItem.GetQuantityMax() )
54
{
55
return
UA_FINISHED
;
56
}
57
else
58
{
59
if
(
m_SpentQuantity_total
<
m_TargetUnits
)
60
{
61
m_SpentQuantity
+=
m_AdjustedQuantityFilledPerSecond
* action_data.m_Player.GetDeltaT();
62
m_TimeElpased
+= action_data.m_Player.GetDeltaT();
63
64
if
(
m_TimeElpased
>=
m_DefaultTimeStep
)
65
{
66
CalcAndSetQuantity
( action_data );
67
m_TimeElpased
= 0;
68
//Setup(action_data); //reset data after repeat
69
}
70
return
UA_PROCESSING
;
71
}
72
else
73
{
74
CalcAndSetQuantity
( action_data );
75
OnCompletePogress
(action_data);
76
return
UA_FINISHED
;
77
}
78
}
79
}
80
81
override
int
Cancel
(
ActionData
action_data )
82
{
83
if
( !action_data.m_Player || !action_data.m_MainItem )
84
{
85
return
UA_ERROR
;
86
}
87
88
CalcAndSetQuantity
( action_data );
89
return
UA_CANCEL
;
90
}
91
92
override
float
GetProgress
()
93
{
94
return
m_SpentQuantity_total
/
m_TargetUnits
;
95
}
96
//---------------------------------------------------------------------------
97
98
void
CalcAndSetQuantity
(
ActionData
action_data)
99
{
100
m_SpentQuantity_total
+=
m_SpentQuantity
;
101
if
(
g_Game
.IsServer())
102
{
103
if
(
m_SpentUnits
)
104
{
105
m_SpentUnits
.param1 =
m_SpentQuantity
;
106
SetACData
(
m_SpentUnits
);
107
}
108
109
Liquid.FillContainerEnviro(action_data.m_MainItem,
m_liquid_type
,
m_SpentQuantity
);
110
}
111
112
m_SpentQuantity
= 0;
113
}
114
}
ActionData
ActionBase ActionData
Definition
actionbase.c:30
CABase::SetACData
void SetACData(Param units)
Definition
cabase.c:40
CAContinuousBase
Definition
cacontinuousbase.c:2
CAContinuousBase::OnCompletePogress
void OnCompletePogress(ActionData action_data)
Definition
cacontinuousbase.c:8
CAContinuousFill::Cancel
override int Cancel(ActionData action_data)
Definition
cacontinuousfill.c:81
CAContinuousFill::m_AdjustedQuantityFilledPerSecond
float m_AdjustedQuantityFilledPerSecond
Definition
cacontinuousfill.c:7
CAContinuousFill::m_DefaultTimeStep
float m_DefaultTimeStep
Definition
cacontinuousfill.c:11
CAContinuousFill::Execute
override int Execute(ActionData action_data)
Definition
cacontinuousfill.c:46
CAContinuousFill::m_liquid_type
int m_liquid_type
Definition
cacontinuousfill.c:12
CAContinuousFill::CAContinuousFill
void CAContinuousFill(float quantity_filled_per_second, int liquid_type)
Definition
cacontinuousfill.c:14
CAContinuousFill::m_SpentQuantity_total
float m_SpentQuantity_total
Definition
cacontinuousfill.c:5
CAContinuousFill::GetProgress
override float GetProgress()
Definition
cacontinuousfill.c:92
CAContinuousFill::m_SpentQuantity
float m_SpentQuantity
Definition
cacontinuousfill.c:4
CAContinuousFill::CalcAndSetQuantity
void CalcAndSetQuantity(ActionData action_data)
Definition
cacontinuousfill.c:98
CAContinuousFill::m_QuantityFilledPerSecond
float m_QuantityFilledPerSecond
Definition
cacontinuousfill.c:8
CAContinuousFill::m_ItemQuantity
float m_ItemQuantity
Definition
cacontinuousfill.c:6
CAContinuousFill::m_SpentUnits
ref Param1< float > m_SpentUnits
Definition
cacontinuousfill.c:9
CAContinuousFill::m_TargetUnits
float m_TargetUnits
Definition
cacontinuousfill.c:3
CAContinuousFill::m_TimeElpased
float m_TimeElpased
Definition
cacontinuousfill.c:10
CAContinuousFill::Setup
override void Setup(ActionData action_data)
Definition
cacontinuousfill.c:20
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
EntityAI
Definition
inventoryitem.c:2
Math
Definition
enmath.c:7
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
CalcAndSetQuantity
void CalcAndSetQuantity()
Definition
fireplacebase.c:2659
Class::CastTo
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
Math::Min
static proto float Min(float x, float y)
Returns smaller of two given values.
UA_FINISHED
const int UA_FINISHED
Definition
constants.c:469
UA_ERROR
const int UA_ERROR
Definition
constants.c:488
UA_PROCESSING
const int UA_PROCESSING
Definition
constants.c:467
UA_CANCEL
const int UA_CANCEL
Definition
constants.c:470
Games
Dayz
scripts
4_world
classes
useractionscomponent
actioncomponents
cacontinuousfill.c
Generated by
1.17.0