47 lines
910 B
C#
47 lines
910 B
C#
namespace VeloX;
|
|
|
|
public partial class VeloXCar
|
|
{
|
|
|
|
private void WheelThink( in float dt )
|
|
{
|
|
var maxRPM = GetTransmissionMaxRPM( Gear );
|
|
|
|
|
|
var frontTorque = availableFrontTorque;
|
|
var rearTorque = availableRearTorque;
|
|
|
|
|
|
groundedCount = 0;
|
|
float avgRPM = 0, totalSideSlip = 0, totalForwardSlip = 0;
|
|
|
|
foreach ( var w in Wheels )
|
|
{
|
|
w.Update( this, dt );
|
|
|
|
totalSideSlip += w.SideSlip;
|
|
totalForwardSlip += w.ForwardSlip;
|
|
var rpm = w.RPM;
|
|
|
|
avgRPM += rpm * w.DistributionFactor;
|
|
|
|
w.Torque = w.DistributionFactor * (w.IsFront ? frontTorque : rearTorque);
|
|
w.Brake = w.IsFront ? frontBrake : rearBrake;
|
|
|
|
if ( inputHandbrake && !w.IsFront )
|
|
w.RPM = 0;
|
|
|
|
if ( rpm > maxRPM )
|
|
w.RPM = maxRPM;
|
|
|
|
if ( w.IsOnGround )
|
|
groundedCount++;
|
|
|
|
}
|
|
avgPoweredRPM = avgRPM;
|
|
avgSideSlip = totalSideSlip / Wheels.Count;
|
|
avgForwardSlip = totalForwardSlip / Wheels.Count;
|
|
|
|
}
|
|
}
|