/// <summary> /// Primarily handles click events on hovered nodes/segments /// </summary> protected override void OnToolUpdate() { base.OnToolUpdate(); //Log._Debug($"OnToolUpdate"); if (Input.GetKeyUp(KeyCode.PageDown)) { InfoManager.instance.SetCurrentMode(InfoManager.InfoMode.Traffic, InfoManager.SubInfoMode.Default); UIView.library.Hide("TrafficInfoViewPanel"); } else if (Input.GetKeyUp(KeyCode.PageUp)) { InfoManager.instance.SetCurrentMode(InfoManager.InfoMode.None, InfoManager.SubInfoMode.Default); } _mouseDown = Input.GetMouseButton(0); if (_mouseDown) { if (_mouseClicked) { return; } _mouseClicked = true; bool elementsHovered = determineHoveredElements(); if (!elementsHovered || (activeSubTool != null && activeSubTool.IsCursorInPanel())) { //Log.Message("inside ui: " + m_toolController.IsInsideUI + " visible: " + Cursor.visible + " in secondary panel: " + _cursorInSecondaryPanel); return; } if (HoveredSegmentId == 0 && HoveredNodeId == 0) { //Log.Message("no hovered segment"); return; } if (activeSubTool != null) { activeSubTool.OnClickOverlay(); } } else { //showTooltip(false, null, Vector3.zero); _mouseClicked = false; } }
/// <summary> /// Primarily handles click events on hovered nodes/segments /// </summary> protected override void OnToolUpdate() { base.OnToolUpdate(); //Log._Debug($"OnToolUpdate"); if (Input.GetKeyUp(KeyCode.PageDown)) { InfoManager.instance.SetCurrentMode(InfoManager.InfoMode.Traffic, InfoManager.SubInfoMode.Default); UIView.library.Hide("TrafficInfoViewPanel"); } else if (Input.GetKeyUp(KeyCode.PageUp)) { InfoManager.instance.SetCurrentMode(InfoManager.InfoMode.None, InfoManager.SubInfoMode.Default); } bool primaryMouseClicked = Input.GetMouseButtonDown(0); bool secondaryMouseClicked = Input.GetMouseButtonDown(1); // check if clicked if (!primaryMouseClicked && !secondaryMouseClicked) { return; } // check if mouse is inside panel if (UIBase.GetMenu().containsMouse) { #if DEBUG Log._Debug($"TrafficManagerTool: OnToolUpdate: Menu contains mouse. Ignoring click."); #endif return; } bool elementsHovered = determineHoveredElements(); if (/*!elementsHovered || (*/ activeSubTool != null && activeSubTool.IsCursorInPanel() /*)*/) { #if DEBUG Log._Debug($"TrafficManagerTool: OnToolUpdate: Subtool contains mouse. Ignoring click."); #endif //Log.Message("inside ui: " + m_toolController.IsInsideUI + " visible: " + Cursor.visible + " in secondary panel: " + _cursorInSecondaryPanel); return; } /*if (HoveredSegmentId == 0 && HoveredNodeId == 0) { * //Log.Message("no hovered segment"); * return; * }*/ if (activeSubTool != null) { if (primaryMouseClicked) { activeSubTool.OnPrimaryClickOverlay(); } if (secondaryMouseClicked) { activeSubTool.OnSecondaryClickOverlay(); } } }