public float GetCurrentSpeedRestrictions()
        {
            if (!AnyLaneSelected)
            {
                return(-1f);
            }

            return(RoadManager.GetLaneSpeed(m_selectedLaneMarkers[0].m_lane));
        }
Exemple #2
0
        public static float RestrictSpeed(float calculatedSpeed, uint laneId, VehicleInfo info)
        {
            if (calculatedSpeed == 0f || (CSLTraffic.Options & OptionsManager.ModOptions.BetaTestRoadCustomizerTool) == OptionsManager.ModOptions.None)
            {
                return(calculatedSpeed);
            }

            float speedLimit = RoadManager.GetLaneSpeed(laneId);
            float curve      = NetManager.instance.m_lanes.m_buffer[laneId].m_curve;

            float a = 1000f / (1f + curve * 1000f / info.m_turning) + 2f;
            float b = 8f * speedLimit;

            return(Mathf.Min(Mathf.Min(a, b), info.m_maxSpeed));
        }