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); } }
/// <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(); }