DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousFillPowerGenerator.c
См. документацию.
2{
3 void CAContinuousFillPowerGenerator( float quantity_filled_per_second , int liquid_type )
4 {
5 m_QuantityFilledPerSecond = quantity_filled_per_second;
6 m_liquid_type = liquid_type;
7 }
8
9 override void Setup( ActionData action_data )
10 {
11 m_TimeElpased = 0;
12
13 if ( !m_SpentUnits )
14 {
15 m_SpentUnits = new Param1<float>(0);
16 }
17 else
18 {
19 m_SpentUnits.param1 = 0;
20 }
21
22 EntityAI pg = EntityAI.Cast(action_data.m_Target.GetObject()); // get power generator
23 m_QuantityFilledPerSecond *= Math.Min(action_data.m_MainItem.GetLiquidThroughputCoef(),pg.GetLiquidThroughputCoef());
24
25 m_ItemQuantity = action_data.m_MainItem.GetQuantity();
26 m_TargetUnits = pg.GetCompEM().GetEnergyMax() - pg.GetCompEM().GetEnergy();
28 }
29
30 override int Execute( ActionData action_data )
31 {
32 if ( !action_data.m_Player )
33 {
34 return UA_ERROR;
35 }
36
37 PowerGeneratorBase pg = PowerGeneratorBase.Cast(action_data.m_Target.GetObject()); // get power generator
38
39 if ( pg.GetFuel() >= pg.GetMaxFuel() )
40 {
41 return UA_FINISHED;
42 }
43 else
44 {
46 {
47 m_SpentQuantity += m_AdjustedQuantityFilledPerSecond * action_data.m_Player.GetDeltaT();
48 m_TimeElpased += action_data.m_Player.GetDeltaT();
49
51 {
52 CalcAndSetQuantity( action_data );
53 m_TimeElpased = 0;
54 //Setup(action_data); //reset data after repeat
55 }
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 void CalcAndSetQuantity( ActionData action_data )
68 {
70
71 if ( m_SpentUnits )
72 {
75 }
76
77
78 if ( GetGame().IsServer() )
79 {
80 PowerGeneratorBase pg = PowerGeneratorBase.Cast(action_data.m_Target.GetObject()); // get power generator
81 int consumed_fuel = pg.AddFuel( m_SpentQuantity );
82 action_data.m_MainItem.AddQuantity( -consumed_fuel );
83 }
84
86 }
87};
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_TimeElpased
Определения CAContinuousFill.c:10
float m_ItemQuantity
Определения CAContinuousFill.c:6
ref Param1< float > m_SpentUnits
Определения CAContinuousFill.c:9
float m_SpentQuantity_total
Определения CAContinuousFill.c:5
float m_TargetUnits
Определения CAContinuousFill.c:3
float m_SpentQuantity
Определения CAContinuousFill.c:4
float m_QuantityFilledPerSecond
Определения CAContinuousFill.c:8
int m_liquid_type
Определения CAContinuousFill.c:12
void CAContinuousFill(float quantity_filled_per_second, int liquid_type)
Определения CAContinuousFill.c:14
float m_AdjustedQuantityFilledPerSecond
Определения CAContinuousFill.c:7
float m_DefaultTimeStep
Определения CAContinuousFill.c:11
override void CalcAndSetQuantity(ActionData action_data)
override void Setup(ActionData action_data)
Определения CAContinuousFillPowerGenerator.c:9
override int Execute(ActionData action_data)
void CAContinuousFillPowerGenerator(float quantity_filled_per_second, int liquid_type)
Определения CAContinuousFillPowerGenerator.c:3
Определения Building.c:6
Определения EnMath.c:7
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