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