CitiesSkylinesMods / TMPE

Cities: Skylines Traffic Manager: President Edition
https://steamcommunity.com/sharedfiles/filedetails/?id=1637663252
MIT License
574 stars 85 forks source link

Ensure defaults set correctly - fix regressions #1464

Closed originalfoo closed 2 years ago

originalfoo commented 2 years ago

Kian noticed some issues in earlier PR regarding mod option defaults.

https://github.com/CitiesSkylinesMods/TMPE/pull/1455#issuecomment-1065974769

Notably:

This PR fixes the first (driving styles) but leaves the second (bus ingore lane arrows) as defaulting to on - currently. Should I change bus ignore arrows back to off by default, or should it be on by default? It's trivial to change either way.

I also explicitly defined several false defaults in the options manager.

krzychu124 commented 2 years ago

@aubergine10 is this a result of recent changes?

Warning 3.9198840: Skipping invalid value 1 for vehicle restrictions aggression
   at CSUtil.Commons.Log.LogToFile(System.String log, LogLevel level)
   at CSUtil.Commons.Log.Warning(System.String s)
   at TrafficManager.Manager.Impl.OptionsManager.LoadData(System.Byte[] data)
   at TrafficManager.Lifecycle.SerializableDataExtension.Load()
   at TrafficManager.Lifecycle.TMPELifecycle.Awake()
   at UnityEngine.GameObject.Internal_AddComponentWithType(System.Type )
   at UnityEngine.GameObject.AddComponent(System.Type componentType)
   at UnityEngine.GameObject..ctor(System.String name, System.Type[] components)
   at TrafficManager.Lifecycle.TMPELifecycle.StartMod()
   at TrafficManager.Lifecycle.TrafficManagerMod.OnEnabled()
   at System.Reflection.MonoMethod.InternalInvoke(System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(System.Object obj, System.Object[] parameters)
   at ColossalFramework.Plugins.PluginManager.AddPlugins(System.Collections.Generic.Dictionary`2 plugins)
   at ColossalFramework.Plugins.PluginManager.LoadPluginAtPath(System.String path, Boolean builtin, PublishedFileId id)
   at ColossalFramework.Plugins.PluginManager.OnPluginAdded(System.String path)
   at ColossalFramework.Plugins.PluginManager+<>c__DisplayClass20.<OnFileWatcherEventChanged>b__1a()
   at ColossalFramework.Threading.Dispatcher+<>c__DisplayClass4.<CreateSafeAction>b__3()
   at ColossalFramework.Threading.Task`1+<>c__DisplayClassa[[ColossalFramework.Threading.Task+VoidTask, ColossalManaged, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null]].<.ctor>b__8(ColossalFramework.Threading.Task t)
   at ColossalFramework.Threading.Task`1[[ColossalFramework.Threading.Task+VoidTask, ColossalManaged, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null]].Execute()
   at ColossalFramework.Threading.Task.InternalExecute()
   at ColossalFramework.Threading.Dispatcher.RunTask(ColossalFramework.Threading.Task task)
   at ColossalFramework.Threading.Dispatcher.ProcessSingleTask(ColossalFramework.Threading.Task task)
   at ColossalFramework.Threading.Dispatcher.InternalProcessTasks()
   at ColossalFramework.Threading.Dispatcher.ProcessTasks()
   at ColossalFramework.Threading.ThreadHelper.FpsBoosterUpdate()
   at BehaviourUpdater.Updater.Update()
originalfoo commented 2 years ago

@krzychu124 It's possible, ofc, but I didn't get any errors while testing during recent PRs.

1 is valid value so not sure why it's throwing that. I'll see if I can reproduce the error (at some point I'm going to create UI wrapper for all those dropdowns as their code is a massive mess at the moment).