DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousFill.c
См. документацию.
2{
3 protected float m_TargetUnits;
4 protected float m_SpentQuantity;
5 protected float m_SpentQuantity_total;
6 protected float m_ItemQuantity;
8 protected float m_QuantityFilledPerSecond;
9 protected ref Param1<float> m_SpentUnits;
10 protected float m_TimeElpased;
11 protected float m_DefaultTimeStep = 0.25;
12 protected int m_liquid_type;
13
14 void CAContinuousFill( float quantity_filled_per_second , int liquid_type )
15 {
16 m_QuantityFilledPerSecond = quantity_filled_per_second;
17 m_liquid_type = liquid_type;
18 }
19
20 override void Setup( ActionData action_data )
21 {
22 m_TimeElpased = 0;
23
24 if ( !m_SpentUnits )
25 {
26 m_SpentUnits = new Param1<float>(0);
27 }
28 else
29 {
30 m_SpentUnits.param1 = 0;
31 }
32
33 float throughputCoef = action_data.m_MainItem.GetLiquidThroughputCoef();
34 EntityAI entity;
35 if (action_data.m_Target && action_data.m_Target.GetObject() && Class.CastTo(entity,action_data.m_Target.GetObject()))
36 {
37 throughputCoef = Math.Min(throughputCoef,entity.GetLiquidThroughputCoef());
38 }
39 m_QuantityFilledPerSecond *= throughputCoef;
40
41 m_ItemQuantity = action_data.m_MainItem.GetQuantity();
42 m_TargetUnits = action_data.m_MainItem.GetQuantityMax() - action_data.m_MainItem.GetQuantity();
44 }
45
46 override int Execute( ActionData action_data )
47 {
48 if ( !action_data.m_Player )
49 {
50 return UA_ERROR;
51 }
52
53 if ( action_data.m_MainItem.GetQuantity() >= action_data.m_MainItem.GetQuantityMax() )
54 {
55 return UA_FINISHED;
56 }
57 else
58 {
60 {
61 m_SpentQuantity += m_AdjustedQuantityFilledPerSecond * action_data.m_Player.GetDeltaT();
62 m_TimeElpased += action_data.m_Player.GetDeltaT();
63
65 {
66 CalcAndSetQuantity( action_data );
67 m_TimeElpased = 0;
68 //Setup(action_data); //reset data after repeat
69 }
70 return UA_PROCESSING;
71 }
72 else
73 {
74 CalcAndSetQuantity( action_data );
75 OnCompletePogress(action_data);
76 return UA_FINISHED;
77 }
78 }
79 }
80
81 override int Cancel( ActionData action_data )
82 {
83 if ( !action_data.m_Player || !action_data.m_MainItem )
84 {
85 return UA_ERROR;
86 }
87
88 CalcAndSetQuantity( action_data );
89 return UA_CANCEL;
90 }
91
92 override float GetProgress()
93 {
95 }
96 //---------------------------------------------------------------------------
97
99 {
101 if (GetGame().IsServer())
102 {
103 if (m_SpentUnits)
104 {
107 }
108
109 Liquid.FillContainerEnviro(action_data.m_MainItem, m_liquid_type, m_SpentQuantity);
110 }
111
112 m_SpentQuantity = 0;
113 }
114}
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
override int Cancel(ActionData action_data)
Определения CAContinuousFill.c:81
override int Execute(ActionData action_data)
Определения CAContinuousFill.c:46
float m_ItemQuantity
Определения CAContinuousFill.c:6
override void Setup(ActionData action_data)
Определения CAContinuousFill.c:20
ref Param1< float > m_SpentUnits
Определения CAContinuousFill.c:9
override float GetProgress()
Определения CAContinuousFill.c:92
void CalcAndSetQuantity(ActionData action_data)
Определения CAContinuousFill.c:98
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
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
Определения EnMath.c:7
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