DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousFillCoolant.c
См. документацию.
2{
3 protected float m_ItemQuantity;
4 protected float m_SpentQuantity;
5 protected float m_SpentQuantity_total;
6 protected float m_EmptySpace; //basically free capacity
7 protected float m_TimeElpased;
8 protected float m_QuantityUsedPerSecond;
10 protected float m_DefaultTimeStep;
11 protected ref Param1<float> m_SpentUnits;
12
14
15 void CAContinuousFillCoolant( float quantity_used_per_second, float time_to_progress )
16 {
17 m_QuantityUsedPerSecond = quantity_used_per_second;
18 m_DefaultTimeStep = time_to_progress;
19 }
20
21 //---------------------------------------------------------------------------
22 override void Setup( ActionData action_data )
23 {
24 m_Player = action_data.m_Player;
25
26 Car car = Car.Cast(action_data.m_Target.GetParent());
27
28 if ( !car )
29 return;
30
31 m_TimeElpased = 0;
33
34 if ( !m_SpentUnits )
35 {
36 m_SpentUnits = new Param1<float>( 0 );
37 }
38 else
39 {
40 m_SpentUnits.param1 = 0;
41 }
42
43 m_QuantityUsedPerSecond *= Math.Min(action_data.m_MainItem.GetLiquidThroughputCoef(),car.GetLiquidThroughputCoef());
44
45 float coolCapacity = car.GetFluidCapacity( CarFluid.COOLANT );
46 float currentCool = car.GetFluidFraction( CarFluid.COOLANT );
47 currentCool = currentCool * coolCapacity;
48
49 m_EmptySpace = (coolCapacity - currentCool) * 1000;
50 m_ItemQuantity = action_data.m_MainItem.GetQuantity();
51
54
55 }
56
57 //---------------------------------------------------------------------------
58 override int Execute( ActionData action_data )
59 {
60 Car car = Car.Cast(action_data.m_Target.GetParent());
61
62 if ( !car )
63 return UA_ERROR;
64
65 if ( !action_data.m_Player )
66 {
67 return UA_ERROR;
68 }
69
70 if ( m_ItemQuantity <= 0 )
71 {
72 return UA_FINISHED;
73 }
74 else
75 {
77 {
79 m_SpentQuantity += m_AdjustedQuantityUsedPerSecond * action_data.m_Player.GetDeltaT();
80 m_TimeElpased += action_data.m_Player.GetDeltaT();
81
83 {
84 CalcAndSetQuantity( action_data );
85 m_TimeElpased = 0;
86 //Setup(action_data); //reset data after repeat
87 }
88
89 return UA_PROCESSING;
90 }
91 else
92 {
93 CalcAndSetQuantity( action_data );
94 OnCompletePogress(action_data);
95 return UA_FINISHED;
96 }
97 }
98 }
99
100 //---------------------------------------------------------------------------
101 override int Cancel( ActionData action_data )
102 {
103 if ( !action_data.m_Player )
104 {
105 return UA_ERROR;
106 }
107
108 CalcAndSetQuantity( action_data );
109 return UA_CANCEL;
110 }
111
112 //---------------------------------------------------------------------------
113 override float GetProgress()
114 {
115 if ( m_ItemQuantity <= 0 )
116 return 1;
117
119 }
120
121 //---------------------------------------------------------------------------
122 void CalcAndSetQuantity( ActionData action_data )
123 {
124
126
127 if ( m_SpentUnits )
128 {
131 }
132
133 if ( GetGame().IsServer() )
134 {
135 if( action_data.m_MainItem )
136 action_data.m_MainItem.AddQuantity( -m_SpentQuantity );
137
138 Car car = Car.Cast(action_data.m_Target.GetParent());
139 if( car )
140 car.Fill( CarFluid.COOLANT, (m_SpentQuantity * 0.001) );
141 }
142
143 m_SpentQuantity = 0;
144 }
145}
ActionBase ActionData
Определения ActionBase.c:30
CarFluid
Type of vehicle's fluid. (native, do not change or extend)
Определения Car.c:19
void CalcAndSetQuantity()
Определения FireplaceBase.c:2640
void SetACData(Param units)
Определения CABase.c:40
void OnCompletePogress(ActionData action_data)
Определения CAContinuousBase.c:8
void CAContinuousFillCoolant(float quantity_used_per_second, float time_to_progress)
Определения CAContinuousFillCoolant.c:15
override int Cancel(ActionData action_data)
Определения CAContinuousFillCoolant.c:101
override int Execute(ActionData action_data)
Определения CAContinuousFillCoolant.c:58
override float GetProgress()
Определения CAContinuousFillCoolant.c:113
float m_AdjustedQuantityUsedPerSecond
Определения CAContinuousFillCoolant.c:9
float m_QuantityUsedPerSecond
Определения CAContinuousFillCoolant.c:8
PlayerBase m_Player
Определения CAContinuousFillCoolant.c:13
override void Setup(ActionData action_data)
Определения CAContinuousFillCoolant.c:22
void CalcAndSetQuantity(ActionData action_data)
Определения CAContinuousFillCoolant.c:122
float m_SpentQuantity_total
Определения CAContinuousFillCoolant.c:5
ref Param1< float > m_SpentUnits
Определения CAContinuousFillCoolant.c:11
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
proto native CGame GetGame()
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