DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
MotorBikeHud.c
См. документацию.
1// Motorbike 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
28 protected bool m_VehicleHasCoolant;
29
30 protected int m_EngagedGear;
31
32 override void Init(Widget vehicleHudPanels)
33 {
34 super.Init(vehicleHudPanels);
35
36 m_VehiclePanel = GetGame().GetWorkspace().CreateWidgets("gui/layouts/day_z_hud_cars.layout", vehicleHudPanels);
37
38 m_VehicleRPMPointer = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMPointer") );
39 m_VehicleRPMDial = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMDial") );
40 m_VehicleRPMRedline = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMDialRedline") );
41 m_VehicleSpeedPointer = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("SpeedPointer") );
42 m_VehicleSpeedValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("SpeedValue") );
43
44 m_VehicleCurrentGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Current") );
45 m_VehicleNextGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Next") );
46 m_VehiclePrevGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Prev") );
47
48 m_VehicleBatteryLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("BatteryLight"));
49 m_VehicleEngineLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("EngineLight"));
50 m_VehicleOilLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("OilLight"));
51 m_VehicleHandBrakeLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("HandBrakeLight"));
52 m_VehicleWheelLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("WheelLight"));
53
54 m_VehicleTemperatureIndicator = m_VehiclePanel.FindAnyWidget("TemperatureIndicator");
55 m_VehicleTemperaturePointer = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("TemperaturePointer"));
56 m_VehicleTemperatureLight = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("TemperatureLight"));
57 m_VehicleFuelPointer = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("FuelPointer"));
58 m_VehicleFuelLight = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("FuelLight"));
59 }
60
61 override void ShowVehicleInfo(PlayerBase player)
62 {
63 HumanCommandVehicle hcv = player.GetCommand_Vehicle();
64 if (!hcv)
65 return;
66
69 return;
70
71 float rpm_value_red = m_CurrentVehicle.EngineGetRPMRedline() / m_CurrentVehicle.EngineGetRPMMax();
72 m_VehicleRPMDial.SetMaskProgress(rpm_value_red);
73 m_VehicleRPMRedline.SetMaskProgress(1 - rpm_value_red);
74
75 m_VehiclePanel.Show(true);
76
77 float gearNeutral = m_CurrentVehicle.GetNeutralGear();
78 m_VehicleGearTable.Set(gearNeutral - 1, "R");
79 m_VehicleGearTable.Set(gearNeutral , "N");
80 m_VehicleGearTable.Set(gearNeutral + 1, "1");
81 m_VehicleGearTable.Set(gearNeutral + 2, "2");
82 m_VehicleGearTable.Set(gearNeutral + 3, "3");
83 m_VehicleGearTable.Set(gearNeutral + 4, "4");
84 m_VehicleGearTable.Set(gearNeutral + 5, "5");
85 m_VehicleGearTable.Set(gearNeutral + 6, "6");
86 m_VehicleGearTable.Set(gearNeutral + 7, "7");
87 m_VehicleGearTable.Set(gearNeutral + 8, "8");
88 m_VehicleGearTable.Set(-1, "");
89
90 m_VehicleGearTableAuto.Set(-1, "");
94
95 m_EngagedGear = -1; // force initial update
96 }
97
98 override void HideVehicleInfo()
99 {
100 m_CurrentVehicle = null;
101 }
102
103 override void RefreshVehicleHud(float timeslice)
104 {
105 float rpm_value = m_CurrentVehicle.EngineGetRPM() / m_CurrentVehicle.EngineGetRPMMax();
106 float rpm_value_red = m_CurrentVehicle.EngineGetRPMRedline() / m_CurrentVehicle.EngineGetRPMMax();
107 float speed_value = m_CurrentVehicle.GetSpeedometerAbsolute() / 200;
108
109 m_VehicleRPMPointer.SetRotation(0, 0, rpm_value * 270 - 130, true);
110 m_VehicleSpeedPointer.SetRotation(0, 0, speed_value * 260 - 130, true);
111 m_VehicleSpeedValue.SetText(Math.AbsInt(m_CurrentVehicle.GetSpeedometer()).ToString());
112
113 int engineHealthLevel = m_CurrentVehicle.GetHealthLevel("Engine");
114 int fuelTankHealthLevel = m_CurrentVehicle.GetHealthLevel("FuelTank");
115 bool newHealth = false;
116
118 if (m_CurrentVehicle.HasEngineZoneReceivedHit())
119 {
121 {
123 if (engineHealthLevel <= GameConstants.STATE_WORN)
124 {
126 }
127 else
128 {
129 m_VehicleEngineLight.SetColor(ItemManager.GetItemHealthColor(engineHealthLevel));
130 }
131
132 m_VehicleEngineLight.SetAlpha(1);
134 }
135
137 newHealth = true;
138 }
139 else if (engineHealthLevel > GameConstants.STATE_WORN)
140 {
141 m_VehicleEngineLight.SetColor(ItemManager.GetItemHealthColor(engineHealthLevel));
142 m_VehicleEngineLight.SetAlpha(1);
143 m_VehicleEngineLight.Show(true);
144 }
145 else
146 {
147 m_VehicleEngineLight.Show(false);
148 }
149
151 if (fuelTankHealthLevel <= GameConstants.STATE_WORN)
152 {
154 m_VehicleFuelLight.SetAlpha(1);
155 m_VehicleFuelLight.Show(true);
156 }
157 else if (fuelTankHealthLevel > GameConstants.STATE_WORN)
158 {
159 m_VehicleFuelLight.SetColor(ItemManager.GetItemHealthColor(fuelTankHealthLevel));
160 m_VehicleFuelLight.SetAlpha(1);
161 m_VehicleFuelLight.Show(true);
162 }
163
165 if (m_CurrentVehicle.IsVitalRadiator())
166 {
168 if (m_CurrentVehicle.HasRadiator())
169 {
170 int radiatorHealthLevel = m_CurrentVehicle.GetRadiator().GetHealthLevel("");
171 if (radiatorHealthLevel <= GameConstants.STATE_WORN)
172 {
174 m_VehicleTemperatureLight.SetAlpha(1);
175 m_VehicleTemperatureLight.Show(true);
176 }
177 else if (radiatorHealthLevel > GameConstants.STATE_WORN)
178 {
179 m_VehicleTemperatureLight.SetColor(ItemManager.GetItemHealthColor(radiatorHealthLevel));
180 m_VehicleTemperatureLight.SetAlpha(1);
181 m_VehicleTemperatureLight.Show(true);
182 }
183 }
184 else
185 {
187 m_VehicleTemperatureLight.SetAlpha(1);
188 m_VehicleTemperatureLight.Show(true);
189 }
190 }
191 else
192 {
194 }
195
196 m_VehicleHandBrakeLight.Show(false); // no kickstand while on bike
197 m_VehicleWheelLight.Show(m_CurrentVehicle.WheelIsAnyLocked());
198
199 UpdateGear();
200
201 // refresh backlit
202 GetDayZGame().GetBacklit().RefreshVehicleLayout(m_EngagedGear, newHealth);
203
204 m_VehicleFuelPointer.SetRotation( 0, 0, m_CurrentVehicle.GetFluidFraction( MotorbikeFluid.FUEL ) * 260 - 130, true );
205 //m_VehicleTemperaturePointer.SetRotation( 0, 0, -1 * m_CurrentVehicle.GetFluidFraction( MotorbikeFluid.COOLANT ) * 260 + 130, true );
206
209 {
212 }
213
214 m_VehicleDamageZonesHitTimer += timeslice;
215 }
216
217 protected void UpdateGear()
218 {
219 int gear = m_CurrentVehicle.GetGear();
220 if (m_EngagedGear == gear)
221 return;
222
223 m_EngagedGear = gear;
224
225 int currGear = m_EngagedGear;
226 int prevGear = m_EngagedGear - 1;
227 int nextGear = m_EngagedGear + 1;
228
229 if (m_CurrentVehicle.GearboxGetType() == CarGearboxType.MANUAL)
230 {
231 m_VehicleCurrentGearValue.SetText(m_VehicleGearTable.Get(currGear));
232 m_VehiclePrevGearValue.SetText(m_VehicleGearTable.Get(prevGear));
233 m_VehicleNextGearValue.SetText(m_VehicleGearTable.Get(nextGear));
234
235 m_VehiclePrevGearValue.Show(prevGear >= 0);
236 m_VehicleNextGearValue.Show(nextGear < m_CurrentVehicle.GetGearCount());
237 }
238 else
239 {
241 m_VehicleNextGearValue.SetText(m_VehicleGearTableAuto.Get(nextGear));
242 m_VehiclePrevGearValue.SetText(m_VehicleGearTableAuto.Get(prevGear));
243
244 m_VehiclePrevGearValue.Show(prevGear >= 0);
246 }
247 }
248}
CarAutomaticGearboxMode
Enumerated automatic gearbox modes. (native, do not change or extend)
Определения Car.c:58
CarGearboxType
Enumerated gearbox types. (native, do not change or extend)
Определения Car.c:24
DayZGame GetDayZGame()
Определения DayZGame.c:4076
MotorbikeFluid
Type of vehicle's fluid. (native, do not change or extend)
Определения Motorbike.c:14
void MotorbikeScript()
Определения MotorbikeScript.c:105
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:726
Определения EnConvert.c:688
proto native Transport GetTransport()
Определения human.c:712
static int GetItemHealthColor(int pHealthLevel)
Определения ItemManager.c:417
Определения ItemManager.c:2
Определения EnMath.c:7
ImageWidget m_VehicleTemperaturePointer
Определения MotorBikeHud.c:9
ImageWidget m_VehicleTemperatureLight
Определения MotorBikeHud.c:10
TextWidget m_VehicleSpeedValue
Определения MotorBikeHud.c:14
override void Init(Widget vehicleHudPanels)
Определения MotorBikeHud.c:32
void UpdateGear()
Определения MotorBikeHud.c:217
float m_VehicleDamageZonesHitTimer
Определения MotorBikeHud.c:23
ImageWidget m_VehicleBatteryLight
Определения MotorBikeHud.c:16
ImageWidget m_VehicleFuelLight
Определения MotorBikeHud.c:12
ImageWidget m_VehicleWheelLight
Определения MotorBikeHud.c:20
ImageWidget m_VehicleRPMRedline
Определения MotorBikeHud.c:6
ImageWidget m_VehicleOilLight
Определения MotorBikeHud.c:18
ImageWidget m_VehicleHandBrakeLight
Определения MotorBikeHud.c:19
override void ShowVehicleInfo(PlayerBase player)
Определения MotorBikeHud.c:61
override void HideVehicleInfo()
Определения MotorBikeHud.c:98
ImageWidget m_VehicleRPMPointer
Определения MotorBikeHud.c:4
int m_EngagedGear
Определения MotorBikeHud.c:30
bool m_VehicleDamageZoneHitEngineState
Определения MotorBikeHud.c:22
ImageWidget m_VehicleRPMDial
Определения MotorBikeHud.c:5
bool m_VehicleHasCoolant
Определения MotorBikeHud.c:28
Widget m_VehicleTemperatureIndicator
Определения MotorBikeHud.c:8
ImageWidget m_VehicleSpeedPointer
Определения MotorBikeHud.c:7
float m_TimeSinceLastEngineLightChange
Определения MotorBikeHud.c:27
override void RefreshVehicleHud(float timeslice)
Определения MotorBikeHud.c:103
ImageWidget m_VehicleEngineLight
Определения MotorBikeHud.c:17
ImageWidget m_VehicleFuelPointer
Определения MotorBikeHud.c:11
MotorbikeScript m_CurrentVehicle
Определения MotorBikeHud.c:25
Определения MotorBikeHud.c:3
Определения 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
DayZGame GetGame()
Определения gameplay.c:636
const int STATE_WORN
Определения 3_Game/DayZ/constants.c:912
static proto int AbsInt(int i)
Returns absolute value.