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