DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousTransferQuantity.c
См. документацию.
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 {
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();
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 {
52 {
53 m_SpentQuantity += m_QuantityFilledPerSecond * action_data.m_Player.GetDeltaT();
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
83 //---------------------------------------------------------------------------
84
85 void CalcAndSetQuantity( ActionData action_data )
86 {
87 if ( GetGame().IsServer() )
88 {
89 if ( m_SpentUnits )
90 {
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};
ActionBase ActionData
Определения ActionBase.c:30
void CalcAndSetQuantity()
Определения FireplaceBase.c:2640
void SetACData(Param units)
Определения CABase.c:40
ActionBase m_Action
Определения CABase.c:3
void OnCompletePogress(ActionData action_data)
Определения CAContinuousBase.c:8
override override int Cancel(ActionData action_data)
Определения CAContinuousTransferQuantity.c:67
override int Execute(ActionData action_data)
Определения CAContinuousTransferQuantity.c:37
override float GetProgress()
Определения CAContinuousTransferQuantity.c:78
void CAContinuousTransferQuantity(float quantity_filled_per_second)
Определения CAContinuousTransferQuantity.c:11
ref Param1< float > m_SpentUnits
Определения CAContinuousTransferQuantity.c:9
void CalcAndSetQuantity(ActionData action_data)
Определения CAContinuousTransferQuantity.c:85
override void Setup(ActionData action_data)
Определения CAContinuousTransferQuantity.c:16
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения InventoryItem.c:731
Определения EnMath.c:7
proto string ToString(bool simple=true)
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto float Min(float x, float y)
Returns smaller of two given values.
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