DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ RefreshVehicleHud()

override void CarHud::RefreshVehicleHud ( float timeslice)
inlineprotected

engine

fuel tank

temperature

general hit timer reset

См. определение в файле CarHud.c строка 102

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 {
124 m_VehicleEngineLight.SetColor(Colors.WHITE);
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 {
152 m_VehicleFuelLight.SetColor(Colors.WHITE);
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 {
172 m_VehicleTemperatureLight.SetColor(Colors.WHITE);
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 {
185 m_VehicleTemperatureLight.SetColor(Colors.COLOR_RUINED);
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));
232 m_VehicleNextGearValue.Show(nextGear < EnumTools.GetEnumSize(CarAutomaticGearboxMode));
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 }
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
float m_TimeSinceLastEngineLightChange
Определения CarHud.c:28
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
ImageWidget m_VehicleRPMPointer
Определения CarHud.c:4
TextWidget m_VehicleSpeedValue
Определения CarHud.c:14
Widget m_VehicleTemperatureIndicator
Определения CarHud.c:8
ImageWidget m_VehicleEngineLight
Определения CarHud.c:17
bool m_VehicleDamageZoneHitEngineState
Определения CarHud.c:22
TextWidget m_VehiclePrevGearValue
Определения VehicleHudBase.c:7
TextWidget m_VehicleNextGearValue
Определения VehicleHudBase.c:6
TextWidget m_VehicleCurrentGearValue
Определения VehicleHudBase.c:5
ref map< int, string > m_VehicleGearTable
Определения VehicleHudBase.c:9
ref map< int, string > m_VehicleGearTableAuto
Определения VehicleHudBase.c:10
@ Colors
Определения EnWorld.c:88

Перекрестные ссылки Math::AbsInt(), Colors::COLOR_RUINED, GetDayZGame(), EnumTools::GetEnumSize(), ItemManager::GetItemHealthColor(), m_CurrentVehicle, m_TimeSinceLastEngineLightChange, VehicleHudBase::m_VehicleCurrentGearValue, m_VehicleDamageZoneHitEngineState, m_VehicleDamageZonesHitTimer, m_VehicleEngineLight, m_VehicleFuelLight, m_VehicleFuelPointer, m_VehicleGearCount, VehicleHudBase::m_VehicleGearTable, VehicleHudBase::m_VehicleGearTableAuto, m_VehicleHandBrakeLight, VehicleHudBase::m_VehicleNextGearValue, VehicleHudBase::m_VehiclePrevGearValue, m_VehicleRPMPointer, m_VehicleSpeedPointer, m_VehicleSpeedValue, m_VehicleTemperatureIndicator, m_VehicleTemperatureLight, m_VehicleTemperaturePointer, m_VehicleWheelLight, GameConstants::STATE_WORN и Colors::WHITE.