DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousWaterSlot.c
См. документацию.
2{
3 protected float m_PlantThirstyness;
4 protected float m_TimeToComplete;
5 protected float m_SpentQuantityTotal;
6 protected float m_StartQuantity;
7 protected Slot m_Slot;
8
9 void CAContinuousWaterSlot( float quantity_used_per_second )
10 {
11 m_QuantityUsedPerSecond = quantity_used_per_second;
12 }
13
14 override void Setup( ActionData action_data )
15 {
16 GardenBase target_GB;
17
18 if ( Class.CastTo(target_GB, action_data.m_Target.GetObject()) )
19 {
21 m_StartQuantity = action_data.m_MainItem.GetQuantity();
22 if ( !m_SpentUnits )
23 {
24 m_SpentUnits = new Param1<float>(0);
25 }
26 else
27 {
28 m_SpentUnits.param1 = 0;
29 }
30
31 if ( action_data.m_MainItem )
32 m_ItemQuantity = action_data.m_MainItem.GetQuantity();
33
34 if ( target_GB )
35 {
36 array<string> selections = new array<string>;
37 target_GB.GetActionComponentNameList(action_data.m_Target.GetComponentIndex(), selections);
38
39 for (int s = 0; s < selections.Count(); s++)
40 {
41 string selection = selections[s];
42 m_Slot = target_GB.GetSlotBySelection( selection );
43 if (m_Slot)
44 break;
45 }
46
47 m_PlantThirstyness = m_Slot.GetWaterUsage() - m_Slot.GetWater();
48 }
49
51
52 if (m_TimeToComplete <= 0.1) // Division by zero prevention
53 {
54 m_TimeToComplete = 0.1;
55 }
56 }
57 }
58
59 override int Execute( ActionData action_data )
60 {
61 GardenBase target_GB;
62 Class.CastTo(target_GB, action_data.m_Target.GetObject() );
63 m_ItemQuantity = action_data.m_MainItem.GetQuantity();
64 m_ItemMaxQuantity = action_data.m_MainItem.GetQuantityMax();
65
66 if ( !action_data.m_Player )
67 {
68 return UA_ERROR;
69 }
70
71 if ( m_ItemQuantity <= 0 )
72 {
73 return UA_FINISHED;
74 }
75 else
76 {
78 {
79 m_SpentQuantity += m_QuantityUsedPerSecond * action_data.m_Player.GetDeltaT();
80 if (m_SpentQuantity > m_ItemQuantity) // dont transfer more water than the source's quantity
82
83 m_Slot.GiveWater( m_SpentQuantity );
84
86 CalcAndSetQuantity( action_data );
87
89
90 return UA_PROCESSING;
91 }
92 else
93 {
94 CalcAndSetQuantity( action_data );
95 OnCompletePogress( action_data );
96
97 return UA_FINISHED;
98 }
99 }
100 }
101
102 override float GetProgress()
103 {
104 if ( m_ItemQuantity <= 0 )
105 return 1;
106 float progress = -(m_SpentQuantityTotal / m_StartQuantity);
107 return progress;
108 }
109};
ActionBase ActionData
Определения ActionBase.c:30
void CalcAndSetQuantity()
Определения FireplaceBase.c:2640
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_SpentQuantity
Определения CAContinuousQuantity.c:4
float m_QuantityUsedPerSecond
Определения CAContinuousQuantity.c:6
void CAContinuousQuantity(float quantity_used_per_second)
Определения CAContinuousQuantity.c:10
void CAContinuousWaterSlot(float quantity_used_per_second)
Определения CAContinuousWaterSlot.c:9
override int Execute(ActionData action_data)
Определения CAContinuousWaterSlot.c:59
override float GetProgress()
Определения CAContinuousWaterSlot.c:102
float m_TimeToComplete
Определения CAContinuousWaterSlot.c:4
float m_StartQuantity
Определения CAContinuousWaterSlot.c:6
float m_SpentQuantityTotal
Определения CAContinuousWaterSlot.c:5
float m_PlantThirstyness
Определения CAContinuousWaterSlot.c:3
override void Setup(ActionData action_data)
Определения CAContinuousWaterSlot.c:14
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения GardenPlot.c:2
Определения EnMath.c:7
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
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