From a4f130e3daca9eec354f9ca54d3938e90ba86997 Mon Sep 17 00:00:00 2001 From: ConnorMolz <114417919+ConnorMolz@users.noreply.github.com> Date: Tue, 27 May 2025 13:39:49 +0200 Subject: [PATCH 1/3] Add more fields --- .../FuelCalculator/FuelCalculator.xaml | 10 +++++- .../FuelCalculator/FuelCalculator.xaml.cs | 32 +++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml index ad7d16e..89f9473 100644 --- a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml +++ b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml @@ -24,6 +24,8 @@ + + @@ -37,9 +39,15 @@ - + + + + + + + diff --git a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs index bb1041d..4889a42 100644 --- a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs +++ b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs @@ -19,6 +19,8 @@ public partial class FuelCalculator : Overlay private float _currentFuel; private iRacingData _data; private int _lap; + private TimeSpan _lastTimeEnteredTrack; + private bool _isOnTrack = false; // Calculated values private float _fuelPerLap; @@ -33,10 +35,11 @@ public partial class FuelCalculator : Overlay public FuelCalculator() : base("Fuel Calculator","This Overlay calculates the fuel needed to finish") { InitializeComponent(); - _setWindowSize(160, 60); + _setWindowSize(170, 100); _getConfig(); + _lastTimeEnteredTrack = TimeSpan.Zero; _lastLapFuel = new List(); _lastLapTimes = new List(); @@ -74,8 +77,12 @@ public override void _updateWindow() FuelNeededText.Background = Brushes.Red; FuelNeededText.Text = _fuelToFinish.ToString("F2"); } + var fuelLaps = CalcFuelLaps(); FuelInTank.Text = _currentFuel.ToString("F2"); - LapsText.Text = CalcFuelLaps().ToString("F1"); + LapsText.Text = fuelLaps.ToString("F1"); + TimeLeftText.Text = "~" + TimeSpan.FromMilliseconds(fuelLaps * _avgLapTime).ToString(@"hh\:mm\:ss"); + + TimeInStintText.Text = (new TimeSpan(DateTime.Now.Ticks) - _lastTimeEnteredTrack).ToString(@"hh\:mm\:ss"); } public override void _getData() @@ -84,7 +91,8 @@ public override void _getData() _currentFuel = _data.LocalCarTelemetry.FuelLevel; Lap = _data.LocalCarTelemetry.Lap; - + OnTrack = !_data.Pitstop.InPit; + } public override void UpdateThreadMethod() @@ -138,6 +146,24 @@ public int Lap } } } + + public bool OnTrack + { + get => _isOnTrack; + set + { + if (_isOnTrack != value) + { + _isOnTrack = value; + OnPropertyChanged(); + if (_isOnTrack) + { + _lastTimeEnteredTrack = new TimeSpan(DateTime.Now.Ticks); + } + } + } + } + private void OnLapChanged() { From b4088efa2fbb86476d177f06a2ea838440441ffe Mon Sep 17 00:00:00 2001 From: ConnorMolz <114417919+ConnorMolz@users.noreply.github.com> Date: Tue, 27 May 2025 13:42:52 +0200 Subject: [PATCH 2/3] Reformat --- RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs index 4889a42..3d02500 100644 --- a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs +++ b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs @@ -78,11 +78,12 @@ public override void _updateWindow() FuelNeededText.Text = _fuelToFinish.ToString("F2"); } var fuelLaps = CalcFuelLaps(); + TimeInStintText.Text = (new TimeSpan(DateTime.Now.Ticks) - _lastTimeEnteredTrack).ToString(@"hh\:mm\:ss"); FuelInTank.Text = _currentFuel.ToString("F2"); LapsText.Text = fuelLaps.ToString("F1"); TimeLeftText.Text = "~" + TimeSpan.FromMilliseconds(fuelLaps * _avgLapTime).ToString(@"hh\:mm\:ss"); - TimeInStintText.Text = (new TimeSpan(DateTime.Now.Ticks) - _lastTimeEnteredTrack).ToString(@"hh\:mm\:ss"); + } public override void _getData() From 13f01a692a047cb0c939bc2fd5ac4f0695f2cf09 Mon Sep 17 00:00:00 2001 From: ConnorMolz Date: Tue, 27 May 2025 22:29:00 +0200 Subject: [PATCH 3/3] Fix some small errors --- .../Overlays/FuelCalculator/FuelCalculator.xaml | 4 ++-- .../FuelCalculator/FuelCalculator.xaml.cs | 16 +++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml index 89f9473..1c3ea74 100644 --- a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml +++ b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml @@ -43,10 +43,10 @@ - + - + diff --git a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs index 3d02500..fdb9912 100644 --- a/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs +++ b/RaceOverlay/Overlays/FuelCalculator/FuelCalculator.xaml.cs @@ -35,7 +35,7 @@ public partial class FuelCalculator : Overlay public FuelCalculator() : base("Fuel Calculator","This Overlay calculates the fuel needed to finish") { InitializeComponent(); - _setWindowSize(170, 100); + _setWindowSize(190, 100); _getConfig(); @@ -81,9 +81,15 @@ public override void _updateWindow() TimeInStintText.Text = (new TimeSpan(DateTime.Now.Ticks) - _lastTimeEnteredTrack).ToString(@"hh\:mm\:ss"); FuelInTank.Text = _currentFuel.ToString("F2"); LapsText.Text = fuelLaps.ToString("F1"); - TimeLeftText.Text = "~" + TimeSpan.FromMilliseconds(fuelLaps * _avgLapTime).ToString(@"hh\:mm\:ss"); - - + try + { + TimeLeftText.Text = "~" + TimeSpan.FromSeconds(fuelLaps * _avgLapTime).ToString(@"hh\:mm\:ss"); + } + catch (Exception) + { + TimeLeftText.Text = "NaN"; + } + } public override void _getData() @@ -92,7 +98,7 @@ public override void _getData() _currentFuel = _data.LocalCarTelemetry.FuelLevel; Lap = _data.LocalCarTelemetry.Lap; - OnTrack = !_data.Pitstop.InPit; + OnTrack = !_data.Pitstop.InPit || _data.InGarage; }