Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
cacontinuousfilloil.c
Go to the documentation of this file.
1
class
CAContinuousFillOil
:
CAContinuousBase
2
{
3
protected
float
m_ItemQuantity
;
4
protected
float
m_SpentQuantity
;
5
protected
float
m_SpentQuantity_total
;
6
protected
float
m_EmptySpace
;
//basically free capacity
7
protected
float
m_TimeElpased
;
8
protected
float
m_QuantityUsedPerSecond
;
9
protected
float
m_AdjustedQuantityUsedPerSecond
;
10
protected
float
m_DefaultTimeStep
;
11
protected
ref Param1<float>
m_SpentUnits
;
12
13
protected
PlayerBase
m_Player
;
14
15
void
CAContinuousFillOil
(
float
quantity_used_per_second,
float
time_to_progress )
16
{
17
m_QuantityUsedPerSecond
= quantity_used_per_second;
18
m_DefaultTimeStep
= time_to_progress;
19
}
20
21
//---------------------------------------------------------------------------
22
override
void
Setup
(
ActionData
action_data )
23
{
24
m_Player
= action_data.m_Player;
25
26
Car
car =
Car
.Cast(action_data.m_Target.GetObject());
27
28
if
( !car )
29
return
;
30
31
m_TimeElpased
= 0;
32
m_SpentQuantity
= 0;
33
34
if
( !
m_SpentUnits
)
35
{
36
m_SpentUnits
=
new
Param1<float>( 0 );
37
}
38
else
39
{
40
m_SpentUnits
.param1 = 0;
41
}
42
43
float
oilCapacity = car.GetFluidCapacity(
CarFluid
.OIL );
44
float
currentOil = car.GetFluidFraction(
CarFluid
.OIL );
45
currentOil = currentOil * oilCapacity;
46
47
m_EmptySpace
= (oilCapacity - currentOil) * 1000;
48
m_ItemQuantity
= action_data.m_MainItem.GetQuantity();
49
50
if
(
m_EmptySpace
<=
m_ItemQuantity
)
51
m_ItemQuantity
=
m_EmptySpace
;
52
53
}
54
55
//---------------------------------------------------------------------------
56
override
int
Execute
(
ActionData
action_data )
57
{
58
Car
car =
Car
.Cast(action_data.m_Target.GetObject());
59
60
if
( !car )
61
return
UA_ERROR
;
62
63
if
( !action_data.m_Player )
64
{
65
return
UA_ERROR
;
66
}
67
68
if
(
m_ItemQuantity
<= 0 )
69
{
70
return
UA_FINISHED
;
71
}
72
else
73
{
74
if
(
m_SpentQuantity_total
<
m_ItemQuantity
)
75
{
76
m_AdjustedQuantityUsedPerSecond
=
m_QuantityUsedPerSecond
;
//removed softskills
77
m_SpentQuantity
+=
m_AdjustedQuantityUsedPerSecond
* action_data.m_Player.GetDeltaT();
78
m_TimeElpased
+= action_data.m_Player.GetDeltaT();
79
80
if
(
m_TimeElpased
>=
m_DefaultTimeStep
)
81
{
82
CalcAndSetQuantity
( action_data );
83
m_TimeElpased
= 0;
84
//Setup(action_data); //reset data after repeat
85
}
86
87
return
UA_PROCESSING
;
88
}
89
else
90
{
91
CalcAndSetQuantity
( action_data );
92
OnCompletePogress
(action_data);
93
return
UA_FINISHED
;
94
}
95
}
96
}
97
98
//---------------------------------------------------------------------------
99
override
int
Cancel
(
ActionData
action_data )
100
{
101
if
( !action_data.m_Player )
102
{
103
return
UA_ERROR
;
104
}
105
106
CalcAndSetQuantity
( action_data );
107
return
UA_CANCEL
;
108
}
109
110
//---------------------------------------------------------------------------
111
override
float
GetProgress
()
112
{
113
if
(
m_ItemQuantity
<= 0 )
114
return
1;
115
116
return
-(
m_SpentQuantity_total
/
m_ItemQuantity
);
117
}
118
119
//---------------------------------------------------------------------------
120
void
CalcAndSetQuantity
(
ActionData
action_data )
121
{
122
123
m_SpentQuantity_total
+=
m_SpentQuantity
;
124
125
if
(
m_SpentUnits
)
126
{
127
m_SpentUnits
.param1 =
m_SpentQuantity
;
128
SetACData
(
m_SpentUnits
);
129
}
130
131
132
if
(
g_Game
.IsServer() )
133
{
134
if
( action_data.m_MainItem )
// Item EngineOil gets deleted after full consumption
135
action_data.m_MainItem.AddQuantity( -
m_SpentQuantity
);
136
137
Car
car =
Car
.Cast(action_data.m_Target.GetObject());
138
car.Fill(
CarFluid
.OIL, (
m_SpentQuantity
* 0.001) );
139
}
140
141
m_SpentQuantity
= 0;
142
}
143
}
ActionData
ActionBase ActionData
Definition
actionbase.c:30
CarFluid
CarFluid
Type of vehicle's fluid. (native, do not change or extend).
Definition
car.c:19
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
CAContinuousFillOil::Cancel
override int Cancel(ActionData action_data)
Definition
cacontinuousfilloil.c:99
CAContinuousFillOil::m_QuantityUsedPerSecond
float m_QuantityUsedPerSecond
Definition
cacontinuousfilloil.c:8
CAContinuousFillOil::m_EmptySpace
float m_EmptySpace
Definition
cacontinuousfilloil.c:6
CAContinuousFillOil::m_Player
PlayerBase m_Player
Definition
cacontinuousfilloil.c:13
CAContinuousFillOil::m_DefaultTimeStep
float m_DefaultTimeStep
Definition
cacontinuousfilloil.c:10
CAContinuousFillOil::m_AdjustedQuantityUsedPerSecond
float m_AdjustedQuantityUsedPerSecond
Definition
cacontinuousfilloil.c:9
CAContinuousFillOil::Execute
override int Execute(ActionData action_data)
Definition
cacontinuousfilloil.c:56
CAContinuousFillOil::m_SpentQuantity_total
float m_SpentQuantity_total
Definition
cacontinuousfilloil.c:5
CAContinuousFillOil::GetProgress
override float GetProgress()
Definition
cacontinuousfilloil.c:111
CAContinuousFillOil::m_SpentQuantity
float m_SpentQuantity
Definition
cacontinuousfilloil.c:4
CAContinuousFillOil::CalcAndSetQuantity
void CalcAndSetQuantity(ActionData action_data)
Definition
cacontinuousfilloil.c:120
CAContinuousFillOil::m_ItemQuantity
float m_ItemQuantity
Definition
cacontinuousfilloil.c:3
CAContinuousFillOil::CAContinuousFillOil
void CAContinuousFillOil(float quantity_used_per_second, float time_to_progress)
Definition
cacontinuousfilloil.c:15
CAContinuousFillOil::m_SpentUnits
ref Param1< float > m_SpentUnits
Definition
cacontinuousfilloil.c:11
CAContinuousFillOil::m_TimeElpased
float m_TimeElpased
Definition
cacontinuousfilloil.c:7
CAContinuousFillOil::Setup
override void Setup(ActionData action_data)
Definition
cacontinuousfilloil.c:22
Car
Base script class for cars.
Definition
carscript.c:171
PlayerBase
Definition
playerbaseclient.c:2
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
CalcAndSetQuantity
void CalcAndSetQuantity()
Definition
fireplacebase.c:2659
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
cacontinuousfilloil.c
Generated by
1.17.0