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); }
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)); }
public RequiredFuelCalculator(IFuelConsumptionInfo fuelConsumptionInfo) { _fuelConsumptionInfo = fuelConsumptionInfo; }