@@ -12,20 +12,24 @@ public class HUD
1212 {
1313 protected Scaleform buttons = new Scaleform ( "instructional_buttons" ) ;
1414
15- protected float fuelBarWidth = GetBarWidth ( ) ;
15+ protected float fuelBarWidth ( ) { return GetBarWidth ( ) ; }
1616 protected float fuelBarHeight = 6f ;
1717
1818 protected Color fuelBarColourNormal ;
1919 protected Color fuelBarColourWarning ;
2020
21- protected Rectangle fuelBarBackdrop ;
22- protected Rectangle fuelBarBack ;
23- protected Rectangle fuelBar ;
21+ protected CitizenFX . Core . UI . Rectangle fuelBarBackdrop ;
22+ protected CitizenFX . Core . UI . Rectangle fuelBarBack ;
23+ protected CitizenFX . Core . UI . Rectangle fuelBar ;
2424
2525 protected Tween < float > fuelBarColorTween = new FloatTween ( ) ;
2626 protected bool fuelBarAnimationDir = true ;
2727 protected PointF basePosition = new PointF ( 0f , 584f ) ;
2828
29+ protected SizeF fuelBarBackdropSize ;
30+ protected SizeF fuelBarBackSize ;
31+ protected SizeF fuelBarSize ;
32+
2933 public PointF Position
3034 {
3135 set
@@ -42,19 +46,35 @@ public HUD()
4246 PointF fuelBarBackPosition = new PointF ( fuelBarBackdropPosition . X , fuelBarBackdropPosition . Y + 3f ) ;
4347 PointF fuelBarPosition = fuelBarBackPosition ;
4448
45- SizeF fuelBarBackdropSize = new SizeF ( fuelBarWidth , 12f ) ;
46- SizeF fuelBarBackSize = new SizeF ( fuelBarWidth , fuelBarHeight ) ;
47- SizeF fuelBarSize = fuelBarBackSize ;
49+ fuelBarBackdropSize = new SizeF ( fuelBarWidth ( ) , 12f ) ;
50+ fuelBarBackSize = new SizeF ( fuelBarWidth ( ) , fuelBarHeight ) ;
51+ fuelBarSize = fuelBarBackSize ;
4852
4953 Color fuelBarBackdropColour = Color . FromArgb ( 100 , 0 , 0 , 0 ) ;
5054 Color fuelBarBackColour = Color . FromArgb ( 50 , 255 , 179 , 0 ) ;
5155
56+ /// Default colors will be changed in the <see cref="FRFuel.LoadConfig"/> function, by calling the <see cref="UpdateBarColors"/> function.
5257 fuelBarColourNormal = Color . FromArgb ( 150 , 255 , 179 , 0 ) ;
5358 fuelBarColourWarning = Color . FromArgb ( 255 , 255 , 245 , 220 ) ;
5459
55- fuelBarBackdrop = new Rectangle ( fuelBarBackdropPosition , fuelBarBackdropSize , fuelBarBackdropColour ) ;
56- fuelBarBack = new Rectangle ( fuelBarBackPosition , fuelBarBackSize , fuelBarBackColour ) ;
57- fuelBar = new Rectangle ( fuelBarPosition , fuelBarSize , fuelBarColourNormal ) ;
60+ fuelBarBackdrop = new CitizenFX . Core . UI . Rectangle ( fuelBarBackdropPosition , fuelBarBackdropSize , fuelBarBackdropColour ) ;
61+ fuelBarBack = new CitizenFX . Core . UI . Rectangle ( fuelBarBackPosition , fuelBarBackSize , fuelBarBackColour ) ;
62+ fuelBar = new CitizenFX . Core . UI . Rectangle ( fuelBarPosition , fuelBarSize , fuelBarColourNormal ) ;
63+ }
64+
65+ /// <summary>
66+ /// Updates the <see cref="fuelBarColourNormal"/> and <see cref="fuelBarColourWarning"/> colors.
67+ /// </summary>
68+ /// <param name="red"></param>
69+ /// <param name="green"></param>
70+ /// <param name="blue"></param>
71+ /// <param name="warningRed"></param>
72+ /// <param name="warningGreen"></param>
73+ /// <param name="warningBlue"></param>
74+ public void UpdateBarColors ( int red , int green , int blue , int warningRed , int warningGreen , int warningBlue )
75+ {
76+ fuelBarColourNormal = Color . FromArgb ( 150 , red , green , blue ) ;
77+ fuelBarColourWarning = Color . FromArgb ( 255 , warningRed , warningGreen , warningBlue ) ;
5878 }
5979
6080 /// <summary>
@@ -77,12 +97,24 @@ public void RenderBar(float currentFuelLevel, float maxFuelLevel)
7797 float fuelLevelPercentage = ( 100f / maxFuelLevel ) * currentFuelLevel ;
7898 PointF safeZone = GetSafezoneBounds ( ) ;
7999
80- Position = new PointF ( basePosition . X + safeZone . X , basePosition . Y - safeZone . Y ) ;
100+ if ( IsBigmapActive ( ) )
101+ {
102+ Position = new PointF ( basePosition . X + safeZone . X , basePosition . Y - safeZone . Y - 180f ) ;
103+ }
104+ else
105+ {
106+ Position = new PointF ( basePosition . X + safeZone . X , basePosition . Y - safeZone . Y ) ;
107+ }
108+
109+ fuelBarBackdropSize = new SizeF ( fuelBarWidth ( ) , 12f ) ;
110+ fuelBarSize = new SizeF ( ( fuelBarWidth ( ) / 100f ) * fuelLevelPercentage , fuelBarHeight ) ;
111+ fuelBarBackSize = fuelBarSize ;
112+
113+ fuelBar . Size = fuelBarSize ;
114+ fuelBarBackdrop . Size = fuelBarBackdropSize ;
115+ fuelBarBack . Size = fuelBarBackSize ;
116+
81117
82- fuelBar . Size = new SizeF (
83- ( fuelBarWidth / 100f ) * fuelLevelPercentage ,
84- fuelBarHeight
85- ) ;
86118
87119 if ( maxFuelLevel > 0 && currentFuelLevel < 9f )
88120 {
@@ -155,26 +187,27 @@ public static float GetBarWidth()
155187 {
156188 float width ;
157189 double aspect = Screen . AspectRatio ;
190+ bool bigMap = IsBigmapActive ( ) ;
158191
159192 switch ( aspect )
160193 {
161194 case ( float ) 1.5 : // 3:2
162- width = 212f ;
195+ width = bigMap ? 336f : 212f ;
163196 break ;
164197 case ( float ) 1.33333337306976 : // 4:3
165- width = 240f ;
198+ width = bigMap ? 378f : 240f ;
166199 break ;
167200 case ( float ) 1.66666662693024 : // 5:3
168- width = 191f ;
201+ width = bigMap ? 302f : 191f ;
169202 break ;
170203 case ( float ) 1.25 : // 5:4
171- width = 255f ;
204+ width = bigMap ? 405f : 255f ;
172205 break ;
173206 case ( float ) 1.60000002384186 : // 16:10
174- width = 200f ;
207+ width = bigMap ? 316f : 200f ;
175208 break ;
176209 default :
177- width = 180f ; // 16:9
210+ width = bigMap ? 285f : 180f ; // 16:9
178211 break ;
179212 }
180213 return width ;
0 commit comments