void WheelsControl(float angle, int direction, float speed) { if (float.IsNaN(angle)) { return; } SuspensionParametersChangedEventArgs args = new SuspensionParametersChangedEventArgs(); args.Speed = speed; float KmH = (float)_controller.GetShipSpeed() * 3.7f; _controller.HandBrake = KmH > args.Speed + 2.0f;// || _handBrake; float speedFactor = KmH / _maxForwardSpeed; args.Movement = -(1f - 0.7f * speedFactor) * direction; args.Friction = 50.0f - 25.0f * speedFactor; args.Steer = angle / MAX_STEER_ANGLE; if (float.IsNaN(args.Steer)) { args.Steer = 0; } ChangeTruckSuspensionParameters?.Invoke(this, args); }
public void SuspensionParametersChanged(object sender, SuspensionParametersChangedEventArgs e) { Suspension.SetValueFloat("Speed Limit", e.Speed); Suspension.Friction = e.Friction; Suspension.SetValueFloat("Steer override", e.Steer); Suspension.SetValueFloat("Propulsion override", e.Movement * Side); }