public override void Start() { base.Start(); if (Parent == null) { ModDebug.Error(String.Format("Parent not set in {0}", this.GetType().Name)); return; } width = Parent.width; relativePosition = Vector3.zero; isVisible = true; canFocus = true; isInteractive = true;; _drag.width = width - 50; _drag.height = height; _drag.relativePosition = Vector3.zero; _drag.target = Parent; _icon.spriteName = IconSprite; _icon.relativePosition = new Vector3(5, 10); _title.relativePosition = new Vector3(50, 13); _title.text = TitleText; _close.relativePosition = new Vector3(width - 35, 2); _close.normalBgSprite = "buttonclose"; _close.hoveredBgSprite = "buttonclosehover"; _close.pressedBgSprite = "buttonclosepressed"; _close.eventClick += (component, param) => Parent.Hide(); }
private void HookIntoNativeUI() { _busPanel = UIUtil.FindUIComponent("BusPanel"); _metroPanel = UIUtil.FindUIComponent("MetroPanel"); _trainPanel = UIUtil.FindUIComponent("TrainPanel"); _tramPanel = UIUtil.FindUIComponent("TramPanel"); _busBg = UIUtil.FindUIComponent("BusBackground"); _metroBg = UIUtil.FindUIComponent("MetroBackground"); _trainBg = UIUtil.FindUIComponent("TrainBackground"); _tramBg = UIUtil.FindUIComponent("TramBackground"); if (_busPanel == null || _busBg == null) { ModDebug.Error("Failed to locate BusPanel - could not hook into native UI."); return; } if (_metroPanel == null || _metroBg == null) { ModDebug.Error("Failed to locate MetroPanel - could not hook into native UI."); return; } if (_trainPanel == null || _trainBg == null) { ModDebug.Error("Failed to locate TrainPanel - could not hook into native UI."); return; } if (_tramPanel == null || _tramBg == null) { ModDebug.Error("Failed to locate TramPanel - could not hook into native UI."); return; } // extended bus hook _busPanel.eventClick += BusPanelOnEventClick; _busPanel.eventMouseHover += BusPanelOnEventMouseHover; _busPanel.eventMouseLeave += BusPanelOnEventMouseLeave; // extended metro hook _metroPanel.eventClick += MetroPanelOnEventClick; _metroPanel.eventMouseHover += MetroPanelOnEventMouseHover; _metroPanel.eventMouseLeave += MetroPanelOnEventMouseLeave; // extended train hook _trainPanel.eventClick += TrainPanelOnEventClick; _trainPanel.eventMouseHover += TrainPanelOnEventMouseHover; _trainPanel.eventMouseLeave += TrainPanelOnEventMouseLeave; // extended tram hook _tramPanel.eventClick += TramPanelOnEventClick; _tramPanel.eventMouseHover += TramPanelOnEventMouseHover; _tramPanel.eventMouseLeave += TramPanelOnEventMouseLeave; // hide all extended panels, when the transport info view gets closed _busPanel.parent.eventVisibilityChanged += InfoPanelOnEventVisibilityChanged; }