Dayz Explorer
1.28.160049
Loading...
Searching...
No Matches
boathud.c
Go to the documentation of this file.
1
// Boat HUD UI
2
class
BoatHud
:
VehicleHudBase
3
{
4
protected
const
float
ENGINE_BLINK_DURATION
= 3;
5
6
protected
ImageWidget
m_SpeedPointer
;
7
protected
ImageWidget
m_EngineLight
;
8
protected
ImageWidget
m_FuelLight
;
9
10
protected
bool
m_HasEngine
;
11
protected
int
m_EngagedGear
;
12
protected
int
m_EngineHealthLevel
;
13
protected
float
m_FuelLevel
;
14
protected
float
m_TimeSinceEngineHit
;
15
protected
float
m_TimeSinceEngineBlink
;
16
protected
BoatScript
m_CurrentVehicle
;
17
18
protected
ref WidgetFadeTimer
m_FadeTimer
=
new
WidgetFadeTimer();
19
20
override
void
Init
(Widget vehicleHudPanels)
21
{
22
super.Init(vehicleHudPanels);
23
24
m_VehiclePanel
=
GetGame
().GetWorkspace().CreateWidgets(
"gui/layouts/day_z_hud_boats.layout"
, vehicleHudPanels);
25
26
m_SpeedPointer
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"SpeedPointer"
) );
27
m_EngineLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"EngineLight"
));
28
m_FuelLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"FuelLight"
));
29
30
m_VehicleCurrentGearValue
= TextWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"Current"
) );
31
m_VehicleNextGearValue
= TextWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"Next"
) );
32
m_VehiclePrevGearValue
= TextWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"Prev"
) );
33
}
34
35
override
void
ShowVehicleInfo
(
PlayerBase
player)
36
{
37
HumanCommandVehicle hcv = player.GetCommand_Vehicle();
38
if
(!hcv)
39
return
;
40
41
m_CurrentVehicle
=
BoatScript
.Cast(hcv.GetTransport());
42
43
m_VehiclePanel
.Show(
true
);
44
45
m_EngineHealthLevel
= -1;
46
m_FuelLevel
= -1;
47
48
if
(
m_CurrentVehicle
.HasEngine())
49
m_HasEngine
=
true
;
50
51
float
gearNeutral =
m_CurrentVehicle
.GetNeutralGear();
52
m_VehicleGearTable
.Set(gearNeutral - 2,
""
);
53
m_VehicleGearTable
.Set(gearNeutral - 1,
"R"
);
54
m_VehicleGearTable
.Set(gearNeutral,
"N"
);
55
m_VehicleGearTable
.Set(gearNeutral + 1,
"F"
);
56
m_VehicleGearTable
.Set(gearNeutral + 2,
""
);
57
58
m_EngagedGear
= -10;
// force initial update
59
}
60
61
override
void
HideVehicleInfo
()
62
{
63
m_CurrentVehicle
= null;
64
m_VehicleGearTable
.Clear();
65
}
66
67
override
void
RefreshVehicleHud
(
float
timeslice)
68
{
69
int
engineHealthLevel =
m_CurrentVehicle
.GetHealthLevel(
"Engine"
);
70
float
fuelFraction =
m_CurrentVehicle
.GetFluidFraction(
BoatFluid
.FUEL);
71
72
if
(
m_EngineHealthLevel
!= engineHealthLevel)
73
UpdateEngineIcon
(engineHealthLevel);
74
75
if
(
m_FuelLevel
!= fuelFraction)
76
UpdateFuelIcon
(fuelFraction);
77
78
if
(
m_CurrentVehicle
.HasEngineZoneReceivedHit())
79
m_TimeSinceEngineHit
=
ENGINE_BLINK_DURATION
;
80
81
if
(
m_TimeSinceEngineHit
> 0)
82
UpdateEngineBlink
(timeslice);
83
84
UpdateSpeedPointer
();
85
UpdateGear
();
86
}
87
88
protected
void
UpdateEngineIcon
(
int
level)
89
{
90
m_EngineHealthLevel
= level;
91
92
if
(
m_EngineHealthLevel
<=
GameConstants
.STATE_WORN)
93
{
94
m_EngineLight
.SetColor(
COLOR_WHITE
);
95
m_EngineLight
.SetAlpha(0);
96
}
97
else
if
(
m_EngineHealthLevel
>
GameConstants
.STATE_WORN)
98
{
99
m_EngineLight
.SetColor(
ItemManager
.
GetItemHealthColor
(
m_EngineHealthLevel
));
100
m_EngineLight
.SetAlpha(1);
101
}
102
}
103
104
protected
void
UpdateFuelIcon
(
float
level)
105
{
106
m_FuelLevel
= level;
107
108
if
(
m_FuelLevel
> 0.45)
109
{
110
m_FuelLight
.SetAlpha(0);
111
return
;
112
}
113
else
if
(
m_FuelLevel
> 0.15)
114
m_FuelLight
.SetColor(
Colors
.COLOR_DAMAGED);
115
else
if
(
m_FuelLevel
> 0)
116
m_FuelLight
.SetColor(
Colors
.COLOR_BADLY_DAMAGED);
117
else
118
m_FuelLight
.SetColor(
Colors
.COLOR_RUINED);
119
120
m_FuelLight
.SetAlpha(1);
121
}
122
123
protected
void
UpdateSpeedPointer
()
124
{
125
if
(
m_HasEngine
)
126
{
127
float
min, max, current;
128
min = 0;
129
max =
m_CurrentVehicle
.EngineGetRPMMax();
130
current =
Math
.Clamp(
m_CurrentVehicle
.EngineGetRPM(), min, max);
131
132
float
percentVal =
Math
.InverseLerp(min, max, current);
133
m_SpeedPointer
.SetRotation(0, 0,
Math
.Lerp(225, 495,
Math
.AbsFloat(percentVal)),
true
);
134
}
135
}
136
137
protected
void
UpdateGear
()
138
{
139
if
(!
m_HasEngine
)
140
return
;
141
142
int
gear =
m_CurrentVehicle
.GetGear();
143
if
(
m_EngagedGear
== gear)
144
return
;
145
146
m_EngagedGear
= gear;
147
148
m_VehiclePrevGearValue
.SetText(
m_VehicleGearTable
.Get(
m_EngagedGear
- 1));
149
m_VehicleCurrentGearValue
.SetText(
m_VehicleGearTable
.Get(
m_EngagedGear
));
150
m_VehicleNextGearValue
.SetText(
m_VehicleGearTable
.Get(
m_EngagedGear
+ 1));
151
}
152
153
protected
void
UpdateEngineBlink
(
float
timeSlice)
154
{
155
m_TimeSinceEngineHit
-= timeSlice;
156
if
(
m_TimeSinceEngineHit
<= 0)
157
{
158
m_FadeTimer
.Stop();
159
m_EngineLight
.SetAlpha(1);
160
return
;
161
}
162
163
m_TimeSinceEngineBlink
-= timeSlice;
164
if
(
m_TimeSinceEngineBlink
<= 0)
165
{
166
m_TimeSinceEngineBlink
= 0.35;
167
if
(
m_EngineLight
.GetAlpha() == 0)
168
m_FadeTimer
.FadeIn(
m_EngineLight
, 0.1);
169
else
170
m_FadeTimer
.FadeOut(
m_EngineLight
, 0.1);
171
}
172
}
173
174
protected
float
GetSpeedometer
()
175
{
176
vector
transform[4];
177
m_CurrentVehicle
.GetTransform(transform);
178
179
return
GetVelocity
(
m_CurrentVehicle
).InvMultiply3(transform)[2];
180
}
181
}
BoatFluid
BoatFluid
Type of vehicle's fluid. (native, do not change or extend)
Definition
boat.c:14
BoatHud
Definition
boathud.c:3
BoatHud::UpdateEngineBlink
void UpdateEngineBlink(float timeSlice)
Definition
boathud.c:153
BoatHud::RefreshVehicleHud
override void RefreshVehicleHud(float timeslice)
Definition
boathud.c:67
BoatHud::HideVehicleInfo
override void HideVehicleInfo()
Definition
boathud.c:61
BoatHud::m_TimeSinceEngineHit
float m_TimeSinceEngineHit
Definition
boathud.c:14
BoatHud::ENGINE_BLINK_DURATION
const float ENGINE_BLINK_DURATION
Definition
boathud.c:4
BoatHud::m_EngagedGear
int m_EngagedGear
Definition
boathud.c:11
BoatHud::UpdateSpeedPointer
void UpdateSpeedPointer()
Definition
boathud.c:123
BoatHud::m_FuelLevel
float m_FuelLevel
Definition
boathud.c:13
BoatHud::UpdateFuelIcon
void UpdateFuelIcon(float level)
Definition
boathud.c:104
BoatHud::UpdateGear
void UpdateGear()
Definition
boathud.c:137
BoatHud::m_FadeTimer
ref WidgetFadeTimer m_FadeTimer
Definition
boathud.c:18
BoatHud::m_CurrentVehicle
BoatScript m_CurrentVehicle
Definition
boathud.c:16
BoatHud::ShowVehicleInfo
override void ShowVehicleInfo(PlayerBase player)
Definition
boathud.c:35
BoatHud::m_EngineLight
ImageWidget m_EngineLight
Definition
boathud.c:7
BoatHud::GetSpeedometer
float GetSpeedometer()
Definition
boathud.c:174
BoatHud::m_EngineHealthLevel
int m_EngineHealthLevel
Definition
boathud.c:12
BoatHud::m_TimeSinceEngineBlink
float m_TimeSinceEngineBlink
Definition
boathud.c:15
BoatHud::Init
override void Init(Widget vehicleHudPanels)
Definition
boathud.c:20
BoatHud::m_HasEngine
bool m_HasEngine
Definition
boathud.c:10
BoatHud::UpdateEngineIcon
void UpdateEngineIcon(int level)
Definition
boathud.c:88
BoatHud::m_FuelLight
ImageWidget m_FuelLight
Definition
boathud.c:8
BoatHud::m_SpeedPointer
ImageWidget m_SpeedPointer
Definition
boathud.c:6
BoatScript
Definition
boatscript.c:42
Colors
Definition
colors.c:4
GameConstants
Definition
constants.c:661
ItemManager
Definition
itemmanager.c:2
ItemManager::GetItemHealthColor
static int GetItemHealthColor(int pHealthLevel)
Definition
itemmanager.c:417
Math
Definition
enmath.c:7
PlayerBase
Definition
playerbaseclient.c:2
VehicleHudBase
Definition
vehiclehudbase.c:3
VehicleHudBase::m_VehiclePrevGearValue
TextWidget m_VehiclePrevGearValue
Definition
vehiclehudbase.c:7
VehicleHudBase::m_VehicleNextGearValue
TextWidget m_VehicleNextGearValue
Definition
vehiclehudbase.c:6
VehicleHudBase::m_VehiclePanel
Widget m_VehiclePanel
Definition
vehiclehudbase.c:4
VehicleHudBase::m_VehicleCurrentGearValue
TextWidget m_VehicleCurrentGearValue
Definition
vehiclehudbase.c:5
VehicleHudBase::m_VehicleGearTable
ref map< int, string > m_VehicleGearTable
Definition
vehiclehudbase.c:9
vector
Definition
enconvert.c:106
GetGame
proto native CGame GetGame()
COLOR_WHITE
const int COLOR_WHITE
Definition
constants.c:63
GetVelocity
proto native vector GetVelocity(notnull IEntity ent)
Returns linear velocity.
Daten
5_mission
gui
vehicles
boathud.c
Generated by
1.12.0