DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousEmpty.c
См. документацию.
2{
3 protected float m_TargetUnits;
4 protected float m_SpentQuantity;
5 protected float m_SpentQuantity_total;
8 protected bool m_WringingClothes;
9 protected ref Param1<float> m_SpentUnits;
10 protected float m_TimeElpased;
11 protected float m_DefaultTimeStep = 0.25;
12
13 void CAContinuousEmpty( float quantity_emptied_per_second )
14 {
15 m_QuantityEmptiedPerSecond = quantity_emptied_per_second;
16 }
17
18 override void Setup( ActionData action_data )
19 {
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.IsClothing() )
30 {
31 m_WringingClothes = true;
32
33 m_SpentQuantity = action_data.m_MainItem.GetWetMax() - action_data.m_MainItem.GetWet();
34 m_TargetUnits = action_data.m_MainItem.GetWetMax();
35 }
36 else
37 {
38 m_WringingClothes = false;
39
40 m_SpentQuantity = action_data.m_MainItem.GetQuantityMin();
41 m_TargetUnits = action_data.m_MainItem.GetQuantity();
42 }
43
45 }
46
47 override int Execute( ActionData action_data )
48 {
49 if ( !action_data.m_Player )
50 {
51 return UA_ERROR;
52 }
53
54 if ( m_WringingClothes && action_data.m_MainItem.GetWet() >= action_data.m_MainItem.GetWetMax() )
55 {
56 return UA_FINISHED;
57 }
58 else
59 {
61 {
62 m_SpentQuantity += m_AdjustedQuantityEmptiedPerSecond * action_data.m_Player.GetDeltaT();
63 m_TimeElpased += action_data.m_Player.GetDeltaT();
64
66 {
67 CalcAndSetQuantity( action_data );
68 m_TimeElpased = 0;
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 {
95 }
96
97 //---------------------------------------------------------------------------
98
99 void CalcAndSetQuantity( ActionData action_data )
100 {
102 if (GetGame().IsServer())
103 {
104 if ( m_SpentUnits )
105 {
108 }
109
110 if (action_data.m_MainItem.GetQuantity() > 0.0)
111 action_data.m_MainItem.AddQuantity(-m_SpentQuantity);
112 }
113 m_SpentQuantity = 0;
114 }
115};
ActionBase ActionData
Определения ActionBase.c:30
void CalcAndSetQuantity()
Определения FireplaceBase.c:2640
void SetACData(Param units)
Определения CABase.c:40
void OnCompletePogress(ActionData action_data)
Определения CAContinuousBase.c:8
override void Setup(ActionData action_data)
Определения CAContinuousEmpty.c:18
float m_DefaultTimeStep
Определения CAContinuousEmpty.c:11
override int Execute(ActionData action_data)
Определения CAContinuousEmpty.c:47
float m_SpentQuantity_total
Определения CAContinuousEmpty.c:5
float m_AdjustedQuantityEmptiedPerSecond
Определения CAContinuousEmpty.c:6
void CAContinuousEmpty(float quantity_emptied_per_second)
Определения CAContinuousEmpty.c:13
float m_TargetUnits
Определения CAContinuousEmpty.c:3
void CalcAndSetQuantity(ActionData action_data)
Определения CAContinuousEmpty.c:99
bool m_WringingClothes
Определения CAContinuousEmpty.c:8
override int Cancel(ActionData action_data)
Определения CAContinuousEmpty.c:81
override float GetProgress()
Определения CAContinuousEmpty.c:92
float m_TimeElpased
Определения CAContinuousEmpty.c:10
float m_SpentQuantity
Определения CAContinuousEmpty.c:4
ref Param1< float > m_SpentUnits
Определения CAContinuousEmpty.c:9
float m_QuantityEmptiedPerSecond
Определения CAContinuousEmpty.c:7
proto native CGame GetGame()
const int UA_FINISHED
Определения constants.c:464
const int UA_ERROR
Определения constants.c:483
const int UA_PROCESSING
Определения constants.c:462
const int UA_CANCEL
Определения constants.c:465