Esempio n. 1
0
 public SessionFuelConsumptionInfo(IFuelConsumptionInfo fuelConsumptionInfo, string trackName, Distance lapDistance, SessionType sessionType)
 {
     FuelConsumptionInfo = fuelConsumptionInfo;
     TrackName           = trackName;
     LapDistance         = lapDistance;
     SessionType         = sessionType;
 }
 public void Reset()
 {
     CreateAndAddSessionFuelConsumptionInfo();
     _nextMinuteConsumptionUpdate = TimeSpan.Zero;
     _lastTickFuelStatus          = null;
     _lastMinuteFuelStatus        = null;
     _lastLapFuelStatus           = null;
     _lastLapNumber        = -1;
     _totalFuelConsumption = new FuelConsumptionInfo();
     ActPerMinute          = Volume.FromLiters(0);
     ActPerLap             = Volume.FromLiters(0);
     TotalPerMinute        = Volume.FromLiters(0);
     TotalPerLap           = Volume.FromLiters(0);
 }
Esempio n. 3
0
        public void UpdateFuelConsumption(SimulatorDataSet simulatorDataSet)
        {
            if (simulatorDataSet?.PlayerInfo == null)
            {
                return;
            }

            if (simulatorDataSet?.PlayerInfo.CarInfo.FuelSystemInfo.FuelRemaining.InLiters <= 0)
            {
                return;
            }

            if (_lastTickFuelStatus?.SessionTime == simulatorDataSet.SessionInfo.SessionTime)
            {
                return;
            }

            if (SkipThisTick(simulatorDataSet))
            {
                // Force to also skip next tick
                _lastTickFuelStatus = null;
                return;
            }

            if (_lastTickFuelStatus == null)
            {
                _lastTickFuelStatus = new FuelStatusSnapshot(simulatorDataSet);
                return;
            }

            UpdateLapConsumption(simulatorDataSet);
            UpdateMinuteConsumption(simulatorDataSet);

            FuelStatusSnapshot  currentSnapshot         = new FuelStatusSnapshot(simulatorDataSet);
            FuelConsumptionInfo lastTickConsumptionInfo = FuelConsumptionInfo.CreateConsumption(_lastTickFuelStatus, currentSnapshot);

            if (!lastTickConsumptionInfo.IsFuelConsumptionValid(simulatorDataSet))
            {
                _lastTickFuelStatus = currentSnapshot;
                return;
            }

            _totalFuelConsumption = _totalFuelConsumption.AddConsumption(lastTickConsumptionInfo);
            UpdateTotalData(simulatorDataSet);
            _lastTickFuelStatus = currentSnapshot;
        }
        public IFuelConsumptionInfo AddConsumption(IFuelConsumptionInfo fuelConsumption)
        {
            TimeSpan newElapsedTime = ElapsedTime + fuelConsumption.ElapsedTime;

            return(new FuelConsumptionInfo(ConsumedFuel + fuelConsumption.ConsumedFuel, newElapsedTime, TraveledDistance.InMeters + fuelConsumption.TraveledDistance.InMeters));
        }
Esempio n. 5
0
 public RequiredFuelCalculator(IFuelConsumptionInfo fuelConsumptionInfo)
 {
     _fuelConsumptionInfo = fuelConsumptionInfo;
 }