Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
cacontinuoustransferquantity.c
Go to the documentation of this file.
1
class
CAContinuousTransferQuantity
:
CAContinuousBase
2
{
3
protected
float
m_TargetUnits
;
4
protected
float
m_SpentQuantity
;
5
protected
float
m_ItemQuantity
;
6
protected
float
m_SourceQuantity
;
7
protected
float
m_QuantityFilledPerSecond
;
8
protected
float
m_TimeToComplete
;
9
protected
ref Param1<float>
m_SpentUnits
;
10
11
void
CAContinuousTransferQuantity
(
float
quantity_filled_per_second )
12
{
13
m_QuantityFilledPerSecond
= quantity_filled_per_second;
14
}
15
16
override
void
Setup
(
ActionData
action_data )
17
{
18
m_SpentQuantity
= 0;
19
if
( !
m_SpentUnits
)
20
{
21
m_SpentUnits
=
new
Param1<float>(0);
22
}
23
else
24
{
25
m_SpentUnits
.param1 = 0;
26
}
27
m_ItemQuantity
= action_data.m_MainItem.GetQuantity();
28
ItemBase
trg;
29
if
(
Class
.
CastTo
(trg, action_data.m_Target.GetObject()) )
30
{
31
m_SourceQuantity
= trg.GetQuantity();
32
}
33
m_TargetUnits
= action_data.m_MainItem.GetQuantityMax();
34
m_TimeToComplete
= (
Math
.
Min
((
m_TargetUnits
-
m_ItemQuantity
),
m_SourceQuantity
))/
m_QuantityFilledPerSecond
;
35
}
36
37
override
int
Execute
(
ActionData
action_data )
38
{
39
if
( !action_data.m_Player )
40
{
41
return
UA_ERROR
;
42
}
43
ItemBase
trg;
44
Class
.
CastTo
(trg, action_data.m_Target.GetObject());
45
if
( action_data.m_MainItem.GetQuantity() >= action_data.m_MainItem.GetQuantityMax() || trg.GetQuantity() == 0 )
46
{
47
return
UA_FINISHED
;
48
}
49
else
50
{
51
if
(
m_SpentQuantity
<
m_TargetUnits
&&
m_SpentQuantity
<
m_SourceQuantity
)
52
{
53
m_SpentQuantity
+=
m_QuantityFilledPerSecond
* action_data.m_Player.GetDeltaT();
54
float
val =
m_ItemQuantity
-
m_SpentQuantity
;
55
if
(
m_Action
)
m_Action
.SendMessageToClient(action_data.m_Player, val.
ToString
());
56
return
UA_PROCESSING
;
57
}
58
else
59
{
60
CalcAndSetQuantity
( action_data );
61
OnCompletePogress
(action_data);
62
return
UA_FINISHED
;
63
}
64
}
65
}
66
67
override
override
int
Cancel
(
ActionData
action_data )
68
{
69
if
( !action_data.m_Player )
70
{
71
return
UA_ERROR
;
72
}
73
74
CalcAndSetQuantity
( action_data );
75
return
UA_CANCEL
;
76
}
77
78
override
float
GetProgress
()
79
{
80
float
progress = (
m_SpentQuantity
*
m_QuantityFilledPerSecond
)/
m_TimeToComplete
;
81
return
(
m_SpentQuantity
*
m_QuantityFilledPerSecond
)/
m_TimeToComplete
;
82
}
83
//---------------------------------------------------------------------------
84
85
void
CalcAndSetQuantity
(
ActionData
action_data )
86
{
87
if
(
g_Game
.IsServer() )
88
{
89
if
(
m_SpentUnits
)
90
{
91
m_SpentUnits
.param1 =
m_SpentQuantity
;
92
SetACData
(
m_SpentUnits
);
93
}
94
action_data.m_MainItem.AddQuantity(
m_SpentQuantity
);
95
ItemBase
trg;
96
if
(
Class
.
CastTo
(trg, action_data.m_Target.GetObject()) )
97
{
98
trg.AddQuantity(-
m_SpentQuantity
,
false
,
false
);
99
}
100
}
101
}
102
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
CABase::SetACData
void SetACData(Param units)
Definition
cabase.c:40
CABase::m_Action
ActionBase m_Action
Definition
cabase.c:3
CAContinuousBase
Definition
cacontinuousbase.c:2
CAContinuousBase::OnCompletePogress
void OnCompletePogress(ActionData action_data)
Definition
cacontinuousbase.c:8
CAContinuousTransferQuantity::CAContinuousTransferQuantity
void CAContinuousTransferQuantity(float quantity_filled_per_second)
Definition
cacontinuoustransferquantity.c:11
CAContinuousTransferQuantity::Execute
override int Execute(ActionData action_data)
Definition
cacontinuoustransferquantity.c:37
CAContinuousTransferQuantity::m_TimeToComplete
float m_TimeToComplete
Definition
cacontinuoustransferquantity.c:8
CAContinuousTransferQuantity::GetProgress
override float GetProgress()
Definition
cacontinuoustransferquantity.c:78
CAContinuousTransferQuantity::m_SpentQuantity
float m_SpentQuantity
Definition
cacontinuoustransferquantity.c:4
CAContinuousTransferQuantity::Cancel
override override int Cancel(ActionData action_data)
Definition
cacontinuoustransferquantity.c:67
CAContinuousTransferQuantity::CalcAndSetQuantity
void CalcAndSetQuantity(ActionData action_data)
Definition
cacontinuoustransferquantity.c:85
CAContinuousTransferQuantity::m_QuantityFilledPerSecond
float m_QuantityFilledPerSecond
Definition
cacontinuoustransferquantity.c:7
CAContinuousTransferQuantity::m_ItemQuantity
float m_ItemQuantity
Definition
cacontinuoustransferquantity.c:5
CAContinuousTransferQuantity::m_SourceQuantity
float m_SourceQuantity
Definition
cacontinuoustransferquantity.c:6
CAContinuousTransferQuantity::m_SpentUnits
ref Param1< float > m_SpentUnits
Definition
cacontinuoustransferquantity.c:9
CAContinuousTransferQuantity::m_TargetUnits
float m_TargetUnits
Definition
cacontinuoustransferquantity.c:3
CAContinuousTransferQuantity::Setup
override void Setup(ActionData action_data)
Definition
cacontinuoustransferquantity.c:16
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
ItemBase
Definition
inventoryitem.c:742
Math
Definition
enmath.c:7
float::ToString
proto string ToString(bool simple=true)
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
cacontinuoustransferquantity.c
Generated by
1.17.0