Improved UI

This commit is contained in:
max
2025-12-18 03:00:13 +01:00
parent e0af3aefe1
commit 6249499be2
5 changed files with 272 additions and 142 deletions

View File

@@ -48,6 +48,33 @@ namespace Car_simulation
InitializeAudio();
}
public List<string> GetDisplayData()
{
return new List<string>
{
$"Engine Energy: {Engine.FlywheelEnergy,7:F0} J",
$"Engine Torque: {Engine.GetTorqueOutput(),7:F0} Nm",
$"Engine RPM: {Engine.RPM,7:F0}",
$"Total Energy: {WheelSystem.TotalEnergy,7:F0} J",
$" (Wheel Rot: {WheelSystem.GetRotationalEnergy(),7:F0} J)",
$" (Car Trans: {WheelSystem.GetTranslationalEnergy(),7:F0} J)",
$"Wheel RPM: {WheelSystem.RPM,7:F0}",
$"Vehicle: {Speed * 3.6f,7:F1} km/h",
$"Throttle: {Engine.GetActualThrottle() * 100,6:F1}%",
$"Power: {Engine.CurrentPower / 1000,6:F1} kW",
$"Transmitted: {Drivetrain.TransmittedPower / 1000,6:F1} kW",
$"Brake: {BrakeInput * 100,6:F1}%",
$"Speed Diff: {Drivetrain.GetSpeedDifferenceRPM(),6:F0} RPM",
$"Clutch: {ClutchInput * 100,6:F1}% disengaged",
$"Clutch T: {Drivetrain.ClutchTorque,6:F0} Nm",
$"Clutch Slip: {Drivetrain.GetClutchSlipPercent(),6:F1}%",
$"Resistance: {CalculateTotalResistanceForce(),6:F1} N",
$"Drag: {CalculateDragForce(),6:F1} N",
$"Rolling: {CalculateRollingResistanceForce(),6:F1} N",
$"Gear: {Drivetrain.GetCurrentGearName(),3} (Ratio: {Drivetrain.GearRatio:F2}:1)"
};
}
private void InitializeAudio()
{
try
@@ -120,40 +147,15 @@ namespace Car_simulation
return dragForce + rollingForce;
}
private float CalculateDragForce()
public float CalculateDragForce()
{
float speed = Speed;
return 0.5f * AirDensity * DragCoefficient * FrontalArea * speed * speed;
}
private float CalculateRollingResistanceForce()
public float CalculateRollingResistanceForce()
{
return RollingResistanceCoefficient * Mass * 9.81f;
}
public void DisplayUpdate()
{
Console.SetCursorPosition(0, 0);
Console.WriteLine($"Engine Energy: {Engine.FlywheelEnergy,7:F0} J");
Console.WriteLine($"Engine Torque: {Engine.GetTorqueOutput(),7:F0} Nm");
Console.WriteLine($"Engine RPM: {Engine.RPM,7:F0}");
Console.WriteLine($"Total Energy: {WheelSystem.TotalEnergy,7:F0} J");
Console.WriteLine($" (Wheel Rot: {WheelSystem.GetRotationalEnergy(),7:F0} J)");
Console.WriteLine($" (Car Trans: {WheelSystem.GetTranslationalEnergy(),7:F0} J)");
Console.WriteLine($"Wheel RPM: {WheelSystem.RPM,7:F0}");
Console.WriteLine($"Vehicle: {Speed * 3.6f,7:F1} km/h");
Console.WriteLine($"Throttle: {Engine.GetActualThrottle() * 100,6:F1}%");
Console.WriteLine($"Power: {Engine.CurrentPower / 1000,6:F1} kW");
Console.WriteLine($"Transmitted: {Drivetrain.TransmittedPower / 1000,6:F1} kW");
Console.WriteLine($"Brake: {BrakeInput * 100,6:F1}%");
Console.WriteLine($"Speed Diff: {Drivetrain.GetSpeedDifferenceRPM(),6:F0} RPM");
Console.WriteLine($"Clutch: {ClutchInput * 100,6:F1}% disengaged");
Console.WriteLine($"Clutch T: {Drivetrain.ClutchTorque,6:F0} Nm");
Console.WriteLine($"Clutch Slip: {Drivetrain.GetClutchSlipPercent(),6:F1}%");
Console.WriteLine($"Resistance: {CalculateTotalResistanceForce(),6:F1} N");
Console.WriteLine($"Drag: {CalculateDragForce(),6:F1} N");
Console.WriteLine($"Rolling: {CalculateRollingResistanceForce(),6:F1} N");
Console.WriteLine($"Gear: {Drivetrain.GetCurrentGearName(),3} (Ratio: {Drivetrain.GearRatio:F2}:1)");
}
}
}