Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
cacontinuouswaterslot.c
Go to the documentation of this file.
1
class
CAContinuousWaterSlot
:
CAContinuousQuantity
2
{
3
protected
float
m_PlantThirstyness
;
4
protected
float
m_TimeToComplete
;
5
protected
float
m_StartQuantity
;
6
protected
Slot
m_Slot
;
7
8
void
CAContinuousWaterSlot
(
float
quantity_used_per_second)
9
{
10
m_QuantityUsedPerSecond
= quantity_used_per_second;
11
}
12
13
override
void
Setup
(
ActionData
action_data)
14
{
15
GardenBase
targetGB;
16
if
(
Class
.
CastTo
(targetGB, action_data.m_Target.GetObject()))
17
{
18
m_SpentQuantity
= 0;
19
m_StartQuantity
= 0;
20
if
(!
m_SpentUnits
)
21
{
22
m_SpentUnits
=
new
Param1<float>(0);
23
}
24
else
25
{
26
m_SpentUnits
.param1 = 0;
27
}
28
29
if
(action_data.m_MainItem)
30
m_ItemQuantity
= action_data.m_MainItem.GetQuantity();
31
32
if
(targetGB)
33
{
34
array<string>
selections =
new
array<string>
;
35
targetGB.GetActionComponentNameList(action_data.m_Target.GetComponentIndex(), selections);
36
37
for
(
int
s = 0; s < selections.Count(); s++)
38
{
39
string
selection = selections[s];
40
m_Slot
= targetGB.GetSlotBySelection(selection);
41
if
(
m_Slot
)
42
break
;
43
}
44
45
if
(
m_Slot
)
46
{
47
m_StartQuantity
=
m_Slot
.GetWater();
48
m_PlantThirstyness
=
m_Slot
.GetWaterUsage() -
m_Slot
.GetWater();
49
}
50
}
51
52
m_TimeToComplete
= (
Math
.
Min
(
m_PlantThirstyness
,
m_ItemQuantity
)) /
m_QuantityUsedPerSecond
;
53
if
(
m_TimeToComplete
<= 0.1)
// Division by zero prevention
54
{
55
m_TimeToComplete
= 0.1;
56
}
57
}
58
}
59
60
override
int
Execute
(
ActionData
action_data)
61
{
62
m_ItemQuantity
= action_data.m_MainItem.GetQuantity();
63
m_ItemMaxQuantity
= action_data.m_MainItem.GetQuantityMax();
64
65
if
(!action_data.m_Player)
66
{
67
return
UA_ERROR
;
68
}
69
70
if
(
m_ItemQuantity
<= 0)
71
{
72
return
UA_FINISHED
;
73
}
74
else
75
{
76
if
(
m_Slot
&&
m_SpentQuantity
<
m_ItemQuantity
)
77
{
78
m_SpentQuantity
+=
m_QuantityUsedPerSecond
* action_data.m_Player.GetDeltaT();
79
if
(
m_SpentQuantity
>
m_ItemQuantity
)
// dont transfer more water than the source's quantity
80
m_SpentQuantity
=
m_ItemQuantity
;
81
82
m_Slot
.GiveWater(
m_SpentQuantity
);
83
84
CalcAndSetQuantity
(action_data);
85
86
m_SpentQuantity
= 0;
87
88
return
UA_PROCESSING
;
89
}
90
else
91
{
92
CalcAndSetQuantity
(action_data);
93
OnCompletePogress
(action_data);
94
95
return
UA_FINISHED
;
96
}
97
}
98
}
99
100
override
float
GetProgress
()
101
{
102
return
-((
m_Slot
.GetWater() -
m_StartQuantity
) /
m_PlantThirstyness
);
103
}
104
106
protected
float
m_SpentQuantityTotal
;
107
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
CAContinuousBase::OnCompletePogress
void OnCompletePogress(ActionData action_data)
Definition
cacontinuousbase.c:8
CAContinuousQuantity::m_QuantityUsedPerSecond
float m_QuantityUsedPerSecond
Definition
cacontinuousquantity.c:6
CAContinuousQuantity::m_SpentQuantity
float m_SpentQuantity
Definition
cacontinuousquantity.c:4
CAContinuousQuantity::m_ItemQuantity
float m_ItemQuantity
Definition
cacontinuousquantity.c:3
CAContinuousQuantity::m_SpentUnits
ref Param1< float > m_SpentUnits
Definition
cacontinuousquantity.c:8
CAContinuousQuantity::CAContinuousQuantity
void CAContinuousQuantity(float quantity_used_per_second)
Definition
cacontinuousquantity.c:10
CAContinuousQuantity::m_ItemMaxQuantity
float m_ItemMaxQuantity
Definition
cacontinuousquantity.c:5
CAContinuousWaterSlot::CAContinuousWaterSlot
void CAContinuousWaterSlot(float quantity_used_per_second)
Definition
cacontinuouswaterslot.c:8
CAContinuousWaterSlot::m_StartQuantity
float m_StartQuantity
Definition
cacontinuouswaterslot.c:5
CAContinuousWaterSlot::m_Slot
Slot m_Slot
Definition
cacontinuouswaterslot.c:6
CAContinuousWaterSlot::Execute
override int Execute(ActionData action_data)
Definition
cacontinuouswaterslot.c:60
CAContinuousWaterSlot::m_TimeToComplete
float m_TimeToComplete
Definition
cacontinuouswaterslot.c:4
CAContinuousWaterSlot::GetProgress
override float GetProgress()
Definition
cacontinuouswaterslot.c:100
CAContinuousWaterSlot::m_SpentQuantityTotal
float m_SpentQuantityTotal
DEPRECATED.
Definition
cacontinuouswaterslot.c:106
CAContinuousWaterSlot::m_PlantThirstyness
float m_PlantThirstyness
Definition
cacontinuouswaterslot.c:3
CAContinuousWaterSlot::Setup
override void Setup(ActionData action_data)
Definition
cacontinuouswaterslot.c:13
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
GardenBase
Definition
gardenplot.c:2
Math
Definition
enmath.c:7
array
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition
isboxcollidinggeometryproxyclasses.c:28
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
Games
Dayz
scripts
4_world
classes
useractionscomponent
actioncomponents
cacontinuouswaterslot.c
Generated by
1.17.0