DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CarHud.c
См. документацию.
1// Car HUD
3{
4 protected ImageWidget m_VehicleRPMPointer;
5 protected ImageWidget m_VehicleRPMDial;
6 protected ImageWidget m_VehicleRPMRedline;
7 protected ImageWidget m_VehicleSpeedPointer;
9 protected ImageWidget m_VehicleTemperaturePointer;
10 protected ImageWidget m_VehicleTemperatureLight;
11 protected ImageWidget m_VehicleFuelPointer;
12 protected ImageWidget m_VehicleFuelLight;
13
15
16 protected ImageWidget m_VehicleBatteryLight;
17 protected ImageWidget m_VehicleEngineLight;
18 protected ImageWidget m_VehicleOilLight;
19 protected ImageWidget m_VehicleHandBrakeLight;
20 protected ImageWidget m_VehicleWheelLight;
21
24
26
27 protected int m_VehicleGearCount = -1;
29 protected bool m_VehicleHasCoolant;
30
31 override void Init(Widget vehicleHudPanels)
32 {
33 super.Init(vehicleHudPanels);
34
35 m_VehiclePanel = GetGame().GetWorkspace().CreateWidgets("gui/layouts/day_z_hud_cars.layout", vehicleHudPanels);
36
37 m_VehicleRPMPointer = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMPointer") );
38 m_VehicleRPMDial = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMDial") );
39 m_VehicleRPMRedline = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMDialRedline") );
40 m_VehicleSpeedPointer = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("SpeedPointer") );
41 m_VehicleSpeedValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("SpeedValue") );
42
43 m_VehicleCurrentGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Current") );
44 m_VehicleNextGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Next") );
45 m_VehiclePrevGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Prev") );
46
47 m_VehicleBatteryLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("BatteryLight"));
48 m_VehicleEngineLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("EngineLight"));
49 m_VehicleOilLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("OilLight"));
50 m_VehicleHandBrakeLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("HandBrakeLight"));
51 m_VehicleWheelLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("WheelLight"));
52
53 m_VehicleTemperatureIndicator = m_VehiclePanel.FindAnyWidget("TemperatureIndicator");
54 m_VehicleTemperaturePointer = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("TemperaturePointer"));
55 m_VehicleTemperatureLight = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("TemperatureLight"));
56 m_VehicleFuelPointer = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("FuelPointer"));
57 m_VehicleFuelLight = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("FuelLight"));
58
59 m_VehicleGearTable.Set(-1, "");
60 m_VehicleGearTable.Set(CarGear.REVERSE, "R");
61 m_VehicleGearTable.Set(CarGear.NEUTRAL, "N");
62 m_VehicleGearTable.Set(CarGear.FIRST, "1");
63 m_VehicleGearTable.Set(CarGear.SECOND, "2");
64 m_VehicleGearTable.Set(CarGear.THIRD, "3");
65 m_VehicleGearTable.Set(CarGear.FOURTH, "4");
66 m_VehicleGearTable.Set(CarGear.FIFTH, "5");
67 m_VehicleGearTable.Set(CarGear.SIXTH, "6");
68 m_VehicleGearTable.Set(CarGear.SEVENTH, "7");
69 m_VehicleGearTable.Set(CarGear.EIGTH, "8");
70
71 m_VehicleGearTableAuto.Set(-1, "");
75 }
76
77 override void ShowVehicleInfo(PlayerBase player)
78 {
79 HumanCommandVehicle hcv = player.GetCommand_Vehicle();
80 if (!hcv)
81 return;
82
85 return;
86
87 m_VehicleGearCount = m_CurrentVehicle.GetGearsCount();
88
89 float rpm_value_red = m_CurrentVehicle.EngineGetRPMRedline() / m_CurrentVehicle.EngineGetRPMMax();
90 m_VehicleRPMDial.SetMaskProgress(rpm_value_red);
91 m_VehicleRPMRedline.SetMaskProgress(1 - rpm_value_red);
92
93 m_VehiclePanel.Show(true);
94 }
95
96 override void HideVehicleInfo()
97 {
98 m_CurrentVehicle = null;
100 }
101
102 override void RefreshVehicleHud(float timeslice)
103 {
104 float rpm_value = m_CurrentVehicle.EngineGetRPM() / m_CurrentVehicle.EngineGetRPMMax();
105 float rpm_value_red = m_CurrentVehicle.EngineGetRPMRedline() / m_CurrentVehicle.EngineGetRPMMax();
106 float speed_value = m_CurrentVehicle.GetSpeedometerAbsolute() / 200;
107
108 m_VehicleRPMPointer.SetRotation(0, 0, rpm_value * 270 - 130, true);
109 m_VehicleSpeedPointer.SetRotation(0, 0, speed_value * 260 - 130, true);
110 m_VehicleSpeedValue.SetText(Math.AbsInt(m_CurrentVehicle.GetSpeedometer()).ToString());
111
112 int engineHealthLevel = m_CurrentVehicle.GetHealthLevel("Engine");
113 int fuelTankHealthLevel = m_CurrentVehicle.GetHealthLevel("FuelTank");
114 bool newHealth = false;
115
117 if (m_CurrentVehicle.HasEngineZoneReceivedHit())
118 {
120 {
122 if (engineHealthLevel <= GameConstants.STATE_WORN)
123 {
125 }
126 else
127 {
128 m_VehicleEngineLight.SetColor(ItemManager.GetItemHealthColor(engineHealthLevel));
129 }
130
131 m_VehicleEngineLight.SetAlpha(1);
133 }
134
136 newHealth = true;
137 }
138 else if (engineHealthLevel > GameConstants.STATE_WORN)
139 {
140 m_VehicleEngineLight.SetColor(ItemManager.GetItemHealthColor(engineHealthLevel));
141 m_VehicleEngineLight.SetAlpha(1);
142 m_VehicleEngineLight.Show(true);
143 }
144 else
145 {
146 m_VehicleEngineLight.Show(false);
147 }
148
150 if (fuelTankHealthLevel <= GameConstants.STATE_WORN)
151 {
153 m_VehicleFuelLight.SetAlpha(1);
154 m_VehicleFuelLight.Show(true);
155 }
156 else if (fuelTankHealthLevel > GameConstants.STATE_WORN)
157 {
158 m_VehicleFuelLight.SetColor(ItemManager.GetItemHealthColor(fuelTankHealthLevel));
159 m_VehicleFuelLight.SetAlpha(1);
160 m_VehicleFuelLight.Show(true);
161 }
162
164 if (m_CurrentVehicle.IsVitalRadiator())
165 {
167 if (m_CurrentVehicle.HasRadiator())
168 {
169 int radiatorHealthLevel = m_CurrentVehicle.GetRadiator().GetHealthLevel("");
170 if (radiatorHealthLevel <= GameConstants.STATE_WORN)
171 {
173 m_VehicleTemperatureLight.SetAlpha(1);
174 m_VehicleTemperatureLight.Show(true);
175 }
176 else if (radiatorHealthLevel > GameConstants.STATE_WORN)
177 {
178 m_VehicleTemperatureLight.SetColor(ItemManager.GetItemHealthColor(radiatorHealthLevel));
179 m_VehicleTemperatureLight.SetAlpha(1);
180 m_VehicleTemperatureLight.Show(true);
181 }
182 }
183 else
184 {
186 m_VehicleTemperatureLight.SetAlpha(1);
187 m_VehicleTemperatureLight.Show(true);
188 }
189 }
190 else
191 {
193 }
194
195 m_VehicleHandBrakeLight.Show(m_CurrentVehicle.IsHandbrakeActive());
196 m_VehicleWheelLight.Show(m_CurrentVehicle.WheelIsAnyLocked());
197
198
199 int engagedGear = -1;
200 int prevGear = -1;
201 int nextGear = -1;
202
203 if (m_CurrentVehicle.GearboxGetType() == CarGearboxType.MANUAL)
204 {
205 engagedGear = m_CurrentVehicle.GetGear();
206 prevGear = engagedGear - 1;
207 nextGear = engagedGear + 1;
208
209 if (engagedGear == CarGear.NEUTRAL)
210 {
211 prevGear = CarGear.REVERSE;
212 }
213 else if (engagedGear == CarGear.REVERSE)
214 {
215 prevGear = -1;
216 nextGear = CarGear.NEUTRAL;
217 }
218
219 m_VehicleCurrentGearValue.SetText(m_VehicleGearTable.Get(engagedGear));
221
222 m_VehicleNextGearValue.SetText(m_VehicleGearTable.Get(nextGear));
223 m_VehiclePrevGearValue.SetText(m_VehicleGearTable.Get(prevGear));
224 }
225 else
226 {
227 engagedGear = m_CurrentVehicle.GearboxGetMode();
228 prevGear = engagedGear - 1;
229 nextGear = engagedGear + 1;
230
231 m_VehicleCurrentGearValue.SetText(m_VehicleGearTableAuto.Get(engagedGear));
233
234 m_VehicleNextGearValue.SetText(m_VehicleGearTableAuto.Get(nextGear));
235 m_VehiclePrevGearValue.SetText(m_VehicleGearTableAuto.Get(prevGear));
236 }
237
238 // refresh backlit
239 GetDayZGame().GetBacklit().RefreshVehicleLayout(engagedGear, newHealth);
240
241 m_VehicleFuelPointer.SetRotation( 0, 0, m_CurrentVehicle.GetFluidFraction( CarFluid.FUEL ) * 260 - 130, true );
242 m_VehicleTemperaturePointer.SetRotation( 0, 0, -1 * m_CurrentVehicle.GetFluidFraction( CarFluid.COOLANT ) * 260 + 130, true );
243
246 {
249 }
250
251 m_VehicleDamageZonesHitTimer += timeslice;
252 }
253}
CarAutomaticGearboxMode
Enumerated automatic gearbox modes. (native, do not change or extend)
Определения Car.c:69
CarFluid
Type of vehicle's fluid. (native, do not change or extend)
Определения Car.c:19
CarGearboxType
Enumerated gearbox types. (native, do not change or extend)
Определения Car.c:35
DayZGame GetDayZGame()
Определения DayZGame.c:3870
proto native WorkspaceWidget GetWorkspace()
ImageWidget m_VehicleRPMRedline
Определения CarHud.c:6
float m_TimeSinceLastEngineLightChange
Определения CarHud.c:28
override void Init(Widget vehicleHudPanels)
Определения CarHud.c:31
ImageWidget m_VehicleTemperaturePointer
Определения CarHud.c:9
ImageWidget m_VehicleFuelPointer
Определения CarHud.c:11
ImageWidget m_VehicleWheelLight
Определения CarHud.c:20
ImageWidget m_VehicleSpeedPointer
Определения CarHud.c:7
CarScript m_CurrentVehicle
Определения CarHud.c:25
ImageWidget m_VehicleHandBrakeLight
Определения CarHud.c:19
ImageWidget m_VehicleFuelLight
Определения CarHud.c:12
float m_VehicleDamageZonesHitTimer
Определения CarHud.c:23
ImageWidget m_VehicleTemperatureLight
Определения CarHud.c:10
int m_VehicleGearCount
Определения CarHud.c:27
override void HideVehicleInfo()
Определения CarHud.c:96
ImageWidget m_VehicleRPMPointer
Определения CarHud.c:4
TextWidget m_VehicleSpeedValue
Определения CarHud.c:14
Widget m_VehicleTemperatureIndicator
Определения CarHud.c:8
override void ShowVehicleInfo(PlayerBase player)
Определения CarHud.c:77
ImageWidget m_VehicleBatteryLight
Определения CarHud.c:16
ImageWidget m_VehicleEngineLight
Определения CarHud.c:17
override void RefreshVehicleHud(float timeslice)
Определения CarHud.c:102
bool m_VehicleHasCoolant
Определения CarHud.c:29
ImageWidget m_VehicleRPMDial
Определения CarHud.c:5
ImageWidget m_VehicleOilLight
Определения CarHud.c:18
bool m_VehicleDamageZoneHitEngineState
Определения CarHud.c:22
Определения CarHud.c:3
Определения CivilianSedan.c:2
const int WHITE
Определения Colors.c:15
const int COLOR_RUINED
Определения Colors.c:20
Определения Colors.c:4
static int GetEnumSize(typename e)
Return amount of values in enum.
Определения EnConvert.c:623
Определения EnConvert.c:590
Определения constants.c:659
proto native Transport GetTransport()
Определения human.c:690
static int GetItemHealthColor(int pHealthLevel)
Определения ItemManager.c:417
Определения ItemManager.c:2
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
Определения EnWidgets.c:220
TextWidget m_VehiclePrevGearValue
Определения VehicleHudBase.c:7
TextWidget m_VehicleNextGearValue
Определения VehicleHudBase.c:6
void VehicleHudBase()
Widget m_VehiclePanel
Определения VehicleHudBase.c:4
TextWidget m_VehicleCurrentGearValue
Определения VehicleHudBase.c:5
ref map< int, string > m_VehicleGearTable
Определения VehicleHudBase.c:9
ref map< int, string > m_VehicleGearTableAuto
Определения VehicleHudBase.c:10
Определения EnWidgets.c:190
proto native CGame GetGame()
const int STATE_WORN
Определения constants.c:849
static proto int AbsInt(int i)
Returns absolute value.
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.