DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousQuantityRepeat.c
См. документацию.
2{
3 protected float m_ItemQuantity;
4 protected float m_SpentQuantity;
5 protected float m_ItemMaxQuantity;
6 protected float m_TimeElpased;
7 protected float m_QuantityUsedPerSecond;
9 protected float m_DefaultTimeToRepeat;
10 protected ref Param1<float> m_SpentUnits;
11
12 void CAContinuousQuantityRepeat( float quantity_used_per_second, float time_to_repeat )
13 {
14 m_QuantityUsedPerSecond = quantity_used_per_second;
15 m_DefaultTimeToRepeat = time_to_repeat;
16 }
17
18 override void Setup( ActionData action_data )
19 {
20 m_TimeElpased = 0;
22
23 if ( !m_SpentUnits )
24 {
25 m_SpentUnits = new Param1<float>( 0 );
26 }
27 else
28 {
29 m_SpentUnits.param1 = 0;
30 }
31
32 m_ItemMaxQuantity = action_data.m_MainItem.GetQuantityMax();
33 m_ItemQuantity = action_data.m_MainItem.GetQuantity();
34 }
35
36
37 override int Execute( ActionData action_data )
38 {
39 if ( !action_data.m_Player )
40 {
41 return UA_ERROR;
42 }
43
44 if ( m_ItemQuantity <= 0 )
45 {
46 return UA_FINISHED;
47 }
48 else
49 {
51 {
53 m_SpentQuantity += m_AdjustedQuantityUsedPerSecond * action_data.m_Player.GetDeltaT();
54 m_TimeElpased += action_data.m_Player.GetDeltaT();
55
57 {
58 CalcAndSetQuantity( action_data );
59 Setup(action_data); //reset data after repeat
60 }
61
62 return UA_PROCESSING;
63 }
64 else
65 {
66 CalcAndSetQuantity( action_data );
67 OnCompletePogress(action_data);
68 return UA_FINISHED;
69 }
70 }
71 }
72
73 override int Cancel( ActionData action_data )
74 {
75 if ( !action_data.m_Player )
76 {
77 return UA_ERROR;
78 }
79
80 return UA_CANCEL;
81 }
82
83 override float GetProgress()
84 {
85 //float progress = ( m_ItemQuantity - m_SpentQuantity ) / m_ItemMaxQuantity;
87 }
88
89 //---------------------------------------------------------------------------
90
91
92 void CalcAndSetQuantity( ActionData action_data )
93 {
94 if ( GetGame().IsServer() )
95 {
96 if ( m_SpentUnits )
97 {
100 }
101
102 action_data.m_MainItem.AddQuantity( -m_SpentQuantity, false, false );
103 }
104 }
105}
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)
Определения CAContinuousQuantityRepeat.c:18
override float GetProgress()
Определения CAContinuousQuantityRepeat.c:83
float m_AdjustedQuantityUsedPerSecond
Определения CAContinuousQuantityRepeat.c:8
void CalcAndSetQuantity(ActionData action_data)
Определения CAContinuousQuantityRepeat.c:92
override int Cancel(ActionData action_data)
Определения CAContinuousQuantityRepeat.c:73
ref Param1< float > m_SpentUnits
Определения CAContinuousQuantityRepeat.c:10
override int Execute(ActionData action_data)
Определения CAContinuousQuantityRepeat.c:37
void CAContinuousQuantityRepeat(float quantity_used_per_second, float time_to_repeat)
Определения CAContinuousQuantityRepeat.c:12
proto native CGame GetGame()
class Test Setup
Stage definition used in conjunction with Step attribute.
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