klyte45 / TransportLinesManager

The TLM mod for Cities Skylines
Other
28 stars 24 forks source link

[BUG] Cable Car UI button leads to wrong UI #233

Open Vectorial1024 opened 2 years ago

Vectorial1024 commented 2 years ago

Describe the bug The main point is, should there be a "Lines Overview" UI button for Cable Cars?

To Reproduce Steps to reproduce the behavior:

  1. Set up a cable car line
  2. Click on the cable car stop building
  3. Click "Lines overview"
  4. See screenshot
  5. Exit from the UI
  6. See game log

Game Logs Error thrown at step 6, relevant portion:

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Behaviour.set_enabled (bool) <0x0007b>
at VehicleSelector.ClosePopup () <0x0001e>
at VehicleSelector.OnVisibilityChanged (ColossalFramework.UI.UIComponent,bool) <0x0002c>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x0005b>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at (wrapper delegate-invoke) ColossalFramework.UI.PropertyChangedEventHandler`1<bool>.invoke_void__this___UIComponent_bool (ColossalFramework.UI.UIComponent,bool) <0x00097>
at ColossalFramework.UI.UIComponent.OnVisibilityChanged () <0x0015d>
at ColossalFramework.UI.UIComponent.set_isVisible (bool) <0x0004f>
at ColossalFramework.UI.UIComponent.Hide () <0x0001e>
at ColossalFramework.UI.UIDynamicPanels.Hide (string,int) <0x003d7>
at PublicTransportDetailPanel.OnClosed () <0x0006e>
at (wrapper dynamic-method) object.DynamicEventWrapper_OnClosed (PublicTransportDetailPanel,ColossalFramework.UI.UIComponent,ColossalFramework.UI.UIMouseEventParameter) <0x0001f>
at ColossalFramework.UI.UIComponent.OnClick (ColossalFramework.UI.UIMouseEventParameter) <0x000c6>
at ColossalFramework.UI.UIButton.OnClick (ColossalFramework.UI.UIMouseEventParameter) <0x0027f>
at ColossalFramework.UI.UIInput/MouseHandler.ProcessInput (ColossalFramework.UI.IInputTranslator,UnityEngine.Ray,ColossalFramework.UI.UIComponent,bool) <0x00ca1>
at ColossalFramework.UI.UIInput.ProcessMouseInput () <0x002fa>
at ColossalFramework.UI.UIInput.FpsBoosterUpdate () <0x00055>
at BehaviourUpdater.UiInputUpdater.UpdateInput () <0x0002b>

UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
BehaviourUpdater.UiInputUpdater:UpdateInput()
BehaviourUpdater.Updater:Update()

(Filename:  Line: -1)

Screenshots

I selected the cable car stop, and am about to click on the Lines Overview button...

Screenshot

And then I am given what looks like a "placeholder" UI:

Screenshot

The UI looks like the vanilla Lines overview UI but with some placeholder data.

Additional context

There currently seems no way for us to manage cable cars in any way. perhaps this is a chance to extend cable car support?