public static void Restore(VehicleInfo prefab)
        {
            if (prefab == null)
            {
                return;
            }

            VehicleOptions options = new VehicleOptions();

            options.SetPrefab(prefab);

            DefaultOptions stored = m_default[prefab.name];

            if (stored == null)
            {
                return;
            }

            options.enabled            = stored.m_enabled;
            options.addBackEngine      = stored.m_addBackEngine;
            options.maxSpeed           = stored.m_maxSpeed;
            options.acceleration       = stored.m_acceleration;
            options.braking            = stored.m_braking;
            options.useColorVariations = stored.m_useColorVariations;
            options.color0             = stored.m_color0;
            options.color1             = stored.m_color1;
            options.color2             = stored.m_color2;
            options.color3             = stored.m_color3;
            options.capacity           = stored.m_capacity;
            prefab.m_placementStyle    = stored.m_placementStyle;
        }
        private DefaultOptions(VehicleInfo prefab)
        {
            VehicleOptions options = new VehicleOptions();

            options.SetPrefab(prefab);

            m_enabled            = options.enabled;
            m_addBackEngine      = options.addBackEngine;
            m_maxSpeed           = options.maxSpeed;
            m_acceleration       = options.acceleration;
            m_braking            = options.braking;
            m_useColorVariations = options.useColorVariations;
            m_color0             = options.color0;
            m_color1             = options.color1;
            m_color2             = options.color2;
            m_color3             = options.color3;
            m_capacity           = options.capacity;
            m_placementStyle     = options.placementStyle;

            if (prefab.m_trailers != null && prefab.m_trailers.Length > 0)
            {
                m_lastTrailer = prefab.m_trailers[prefab.m_trailers.Length - 1].m_info;
                m_probability = prefab.m_trailers[prefab.m_trailers.Length - 1].m_invertProbability;
            }
        }
        public static void CheckForConflicts()
        {
            StringBuilder conflicts = new StringBuilder();

            foreach (string name in m_default.Keys)
            {
                VehicleOptions options = new VehicleOptions();
                options.SetPrefab(m_prefabs[name]);

                DefaultOptions modded = m_modded[name];
                DefaultOptions stored = m_default[name];

                StringBuilder details = new StringBuilder();

                if (modded.m_enabled != stored.m_enabled && options.enabled == stored.m_enabled)
                {
                    options.enabled = modded.m_enabled;
                    details.Append("enabled, ");
                }
                if (modded.m_addBackEngine != stored.m_addBackEngine && options.addBackEngine == stored.m_addBackEngine)
                {
                    options.addBackEngine = modded.m_addBackEngine;
                    details.Append("back engine, ");
                }
                if (modded.m_maxSpeed != stored.m_maxSpeed && options.maxSpeed == stored.m_maxSpeed)
                {
                    options.maxSpeed = modded.m_maxSpeed;
                    details.Append("max speed, ");
                }
                if (modded.m_acceleration != stored.m_acceleration && options.acceleration == stored.m_acceleration)
                {
                    options.acceleration = modded.m_acceleration;
                    details.Append("acceleration, ");
                }
                if (modded.m_braking != stored.m_braking && options.braking == stored.m_braking)
                {
                    options.braking = modded.m_braking;
                    details.Append("braking, ");
                }
                if (modded.m_capacity != stored.m_capacity && options.capacity == stored.m_capacity)
                {
                    options.capacity = modded.m_capacity;
                    details.Append("capacity, ");
                }

                if (details.Length > 0)
                {
                    details.Length -= 2;
                    conflicts.AppendLine(options.name + ": " + details);
                }
            }

            if (conflicts.Length > 0)
            {
                VehicleOptions.UpdateTransfertVehicles();
                DebugUtils.Log("Conflicts detected (this message is harmless):" + Environment.NewLine + conflicts);
            }
        }
示例#4
0
        /// <summary>
        /// Check if there are new vehicles and add them to the options list
        /// </summary>
        private static void CompileVehiclesList()
        {
            List <VehicleOptions> optionsList = new List <VehicleOptions>();

            if (config.options != null)
            {
                optionsList.AddRange(config.options);
            }

            for (uint i = 0; i < PrefabCollection <VehicleInfo> .PrefabCount(); i++)
            {
                VehicleInfo prefab = PrefabCollection <VehicleInfo> .GetPrefab(i);

                if (prefab == null || ContainsPrefab(prefab))
                {
                    continue;
                }

                // New vehicle
                VehicleOptions options = new VehicleOptions();
                options.SetPrefab(prefab);

                optionsList.Add(options);
            }

            if (config.options != null)
            {
                DebugUtils.Log("Found " + (optionsList.Count - config.options.Length) + " new vehicle(s)");
            }
            else
            {
                DebugUtils.Log("Found " + optionsList.Count + " new vehicle(s)");
            }

            config.options = optionsList.ToArray();
        }