void RecordSteamPerformance() { MSTSSteamLocomotive steamloco = (MSTSSteamLocomotive)Viewer.PlayerLocomotive; float SteamspeedMpH = MpS.ToMpH(steamloco.SpeedMpS); if (SteamspeedMpH >= previousLoggedSteamSpeedMpH + 5) // Add a new record every time speed increases by 5 mph { previousLoggedSteamSpeedMpH = (float)(int)SteamspeedMpH; // Keep speed records close to whole numbers Logger.Data(MpS.FromMpS(Viewer.PlayerLocomotive.SpeedMpS, false).ToString("F0")); Logger.Data(S.ToM(steamloco.SteamPerformanceTimeS).ToString("F1")); Logger.Data(Viewer.PlayerLocomotive.ThrottlePercent.ToString("F0")); Logger.Data(Viewer.PlayerTrain.MUReverserPercent.ToString("F0")); Logger.Data(N.ToLbf(Viewer.PlayerLocomotive.MotiveForceN).ToString("F0")); Logger.Data(steamloco.IndicatedHorsePowerHP.ToString("F0")); Logger.Data(steamloco.DrawBarPullLbsF.ToString("F0")); Logger.Data(steamloco.DrawbarHorsePowerHP.ToString("F0")); Logger.Data(N.ToLbf(steamloco.LocomotiveCouplerForceN).ToString("F0")); Logger.Data(N.ToLbf(steamloco.LocoTenderFrictionForceN).ToString("F0")); Logger.Data(N.ToLbf(steamloco.TotalFrictionForceN).ToString("F0")); Logger.Data(Kg.ToTUK(steamloco.TrainLoadKg).ToString("F0")); Logger.Data(steamloco.BoilerPressurePSI.ToString("F0")); Logger.Data(steamloco.LogSteamChestPressurePSI.ToString("F0")); Logger.Data(steamloco.LogInitialPressurePSI.ToString("F0")); Logger.Data(steamloco.LogCutoffPressurePSI.ToString("F0")); Logger.Data(steamloco.LogReleasePressurePSI.ToString("F0")); Logger.Data(steamloco.LogBackPressurePSI.ToString("F0")); Logger.Data(steamloco.MeanEffectivePressurePSI.ToString("F0")); Logger.Data(steamloco.CurrentSuperheatTempF.ToString("F0")); Logger.Data(pS.TopH(steamloco.CylinderSteamUsageLBpS).ToString("F0")); Logger.Data(pS.TopH(steamloco.WaterConsumptionLbpS).ToString("F0")); Logger.Data(Kg.ToLb(pS.TopH(steamloco.FuelBurnRateSmoothedKGpS)).ToString("F0")); Logger.Data(steamloco.SuperheaterSteamUsageFactor.ToString("F2")); Logger.Data(steamloco.CumulativeCylinderSteamConsumptionLbs.ToString("F0")); Logger.Data(steamloco.CumulativeWaterConsumptionLbs.ToString("F0")); Logger.Data(steamloco.CutoffPressureDropRatio.ToString("F2")); Logger.Data(steamloco.HPCylinderMEPPSI.ToString("F0")); Logger.Data(steamloco.LogLPInitialPressurePSI.ToString("F0")); Logger.Data(steamloco.LogLPCutoffPressurePSI.ToString("F0")); Logger.Data(steamloco.LogLPReleasePressurePSI.ToString("F0")); Logger.Data(steamloco.LogLPBackPressurePSI.ToString("F0")); Logger.Data(steamloco.CutoffPressureDropRatio.ToString("F2")); Logger.Data(steamloco.LPCylinderMEPPSI.ToString("F0")); Logger.End(); } }
void RecordSteamPowerCurve() { MSTSSteamLocomotive loco = (MSTSSteamLocomotive)Viewer.PlayerLocomotive; float speedMpH = MpS.ToMpH(loco.SpeedMpS); if (speedMpH >= previousLoggedSpeedMpH + 1) // Add a new record every time speed increases by 1 mph { previousLoggedSpeedMpH = (float)(int)speedMpH; // Keep speed records close to whole numbers Logger.Data(speedMpH.ToString("F1")); float power = W.ToHp(loco.MotiveForceN * loco.SpeedMpS); Logger.Data(power.ToString("F1")); Logger.Data((Viewer.PlayerLocomotive as MSTSSteamLocomotive).ThrottlePercent.ToString("F0")); Logger.Data((Viewer.PlayerLocomotive as MSTSSteamLocomotive).Train.MUReverserPercent.ToString("F0")); Logger.End(); } }