35 lines
751 B
C#
35 lines
751 B
C#
using Sandbox;
|
|
using System;
|
|
|
|
namespace VeloX.Powertrain;
|
|
|
|
public class PowerWheel : PowertrainComponent
|
|
{
|
|
[Property] public VeloXWheel Wheel { get; set; }
|
|
|
|
public override float QueryInertia()
|
|
{
|
|
float dtScale = Math.Clamp( Time.Delta, 0.01f, 0.05f ) / 0.005f;
|
|
return Wheel.BaseInertia * dtScale;
|
|
}
|
|
|
|
public override float QueryAngularVelocity( float angularVelocity )
|
|
{
|
|
return Wheel.AngularVelocity;
|
|
}
|
|
|
|
public override float ForwardStep( float torque, float inertia )
|
|
{
|
|
Wheel.AutoPhysics = false;
|
|
Wheel.Torque = torque;
|
|
Wheel.Brake = Vehicle.Brake;
|
|
Inertia = Wheel.BaseInertia + inertia;
|
|
Wheel.Inertia = inertia;
|
|
Wheel.DoPhysics( Vehicle );
|
|
|
|
angularVelocity = Wheel.AngularVelocity;
|
|
|
|
return Wheel.CounterTorque;
|
|
}
|
|
}
|