DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CAContinuousFillFuel.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 CAContinuousFillFuel( 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 m_TimeElpased = 0;
28
29 if (!m_SpentUnits)
30 m_SpentUnits = new Param1<float>(0);
31 else
32 m_SpentUnits.param1 = 0;
33
34 Transport transport = Transport.Cast(action_data.m_Target.GetObject());
35 m_QuantityUsedPerSecond *= Math.Min(action_data.m_MainItem.GetLiquidThroughputCoef(), transport.GetLiquidThroughputCoef());
36
37 int fuelCapacity = transport.GetFluidCapacityScript(ETransportFluid.FUEL);
38 float currentFuel = transport.GetFluidFractionScript(ETransportFluid.FUEL);
39
40 currentFuel = currentFuel * fuelCapacity;
41 m_EmptySpace = (fuelCapacity - currentFuel) * 1000;
42 m_ItemQuantity = action_data.m_MainItem.GetQuantity();
43
46
47 }
48
49 //---------------------------------------------------------------------------
50 override int Execute(ActionData action_data)
51 {
52 if (!action_data.m_Player)
53 return UA_ERROR;
54
55 if (m_ItemQuantity <= 0)
56 {
57 return UA_FINISHED;
58 }
59 else
60 {
62 {
64 m_SpentQuantity += m_AdjustedQuantityUsedPerSecond * action_data.m_Player.GetDeltaT();
65 m_TimeElpased += action_data.m_Player.GetDeltaT();
66
68 {
69 CalcAndSetQuantity(action_data);
70 m_TimeElpased = 0;
71 }
72
73 return UA_PROCESSING;
74 }
75 else
76 {
77 CalcAndSetQuantity(action_data);
78 OnCompletePogress(action_data);
79
80 return UA_FINISHED;
81 }
82 }
83 }
84
85 //---------------------------------------------------------------------------
86 override int Cancel(ActionData action_data)
87 {
88 if (!action_data.m_Player)
89 return UA_ERROR;
90
91 CalcAndSetQuantity(action_data);
92
93 return UA_CANCEL;
94 }
95
96 //---------------------------------------------------------------------------
97 override float GetProgress()
98 {
99 if (m_ItemQuantity <= 0)
100 return 1;
101
103 }
104
105 //---------------------------------------------------------------------------
107 {
109
110 if (m_SpentUnits)
111 {
114 }
115
116
117 if ( g_Game.IsServer() )
118 {
119 Transport transport = Transport.Cast(action_data.m_Target.GetObject());
120 action_data.m_MainItem.AddQuantity(-m_SpentQuantity);
121 transport.FillScript(ETransportFluid.FUEL, (m_SpentQuantity * 0.001));
122 }
123
124 m_SpentQuantity = 0;
125 }
126}
DayZGame g_Game
Определения DayZGame.c:4074
void CalcAndSetQuantity()
Определения FireplaceBase.c:2670
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
void SetACData(Param units)
Определения CABase.c:40
void OnCompletePogress(ActionData action_data)
Определения CAContinuousBase.c:8
void CalcAndSetQuantity(ActionData action_data)
Определения CAContinuousFillFuel.c:106
float m_ItemQuantity
Определения CAContinuousFillFuel.c:3
float m_TimeElpased
Определения CAContinuousFillFuel.c:7
float m_SpentQuantity
Определения CAContinuousFillFuel.c:4
float m_AdjustedQuantityUsedPerSecond
Определения CAContinuousFillFuel.c:9
float m_EmptySpace
Определения CAContinuousFillFuel.c:6
override float GetProgress()
Определения CAContinuousFillFuel.c:97
float m_SpentQuantity_total
Определения CAContinuousFillFuel.c:5
float m_DefaultTimeStep
Определения CAContinuousFillFuel.c:10
override int Execute(ActionData action_data)
Определения CAContinuousFillFuel.c:50
override int Cancel(ActionData action_data)
Определения CAContinuousFillFuel.c:86
PlayerBase m_Player
Определения CAContinuousFillFuel.c:13
ref Param1< float > m_SpentUnits
Определения CAContinuousFillFuel.c:11
override void Setup(ActionData action_data)
Определения CAContinuousFillFuel.c:22
void CAContinuousFillFuel(float quantity_used_per_second, float time_to_progress)
Определения CAContinuousFillFuel.c:15
float m_QuantityUsedPerSecond
Определения CAContinuousFillFuel.c:8
override float GetLiquidThroughputCoef()
Определения PowerGenerator.c:70
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
Native class for boats - handles physics simulation.
Определения Boat.c:29
static proto float Min(float x, float y)
Returns smaller of two given values.
const int UA_FINISHED
Определения 3_Game/DayZ/constants.c:498
const int UA_ERROR
Определения 3_Game/DayZ/constants.c:519
const int UA_PROCESSING
Определения 3_Game/DayZ/constants.c:496
const int UA_CANCEL
Определения 3_Game/DayZ/constants.c:499