Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
 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);
 }