public static void MoreToolsClicked(string name, bool simAlt = false, bool simShift = false) { MoveItTool.instance.DeactivateTool(); MoveItTool.m_isLowSensitivity = false; switch (name) { case "MoveIt_MoreToolsBtn": if (MoreToolsPanel.isVisible) { MoreToolsPanel.isVisible = false; } else { MoreToolsPanel.isVisible = true; } UpdateMoreTools(); break; case "MoveIt_LoadBtn": UILoadWindow.Open(); break; case "MoveIt_SaveBtn": if (MoveItTool.IsExportSelectionValid()) { UISaveWindow.Open(); } else { UIView.library.ShowModal <ExceptionPanel>("ExceptionPanel").SetMessage(Str.xml_SelectionInvalidTitle, Str.xml_SelectionInvalidMessage, false); } break; case "MoveIt_AlignHeightBtn": m_activeToolMenu = MoreButtons["MoveIt_HeightBtn"]; MIT.ProcessAligning(MoveItTool.MT_Tools.Height); break; case "MoveIt_AlignMirrorBtn": m_activeToolMenu = MoreButtons["MoveIt_OthersBtn"]; MIT.ProcessAligning(MoveItTool.MT_Tools.Mirror); break; case "MoveIt_AlignTerrainHeightBtn": if (MoveItTool.ToolState == MoveItTool.ToolStates.Cloning || MoveItTool.ToolState == MoveItTool.ToolStates.RightDraggingClone) { MIT.StopCloning(); } AlignTerrainHeightAction atha = new AlignTerrainHeightAction(); ActionQueue.instance.Push(atha); ActionQueue.instance.Do(); CheckCloseMenu(); MIT.DeactivateTool(); break; case "MoveIt_AlignSlopeBtn": if (simShift) { m_activeToolMenu = MoreButtons["MoveIt_HeightBtn"]; MIT.ProcessAligning(MoveItTool.MT_Tools.Slope); break; } if (MoveItTool.ToolState == MoveItTool.ToolStates.Cloning || MoveItTool.ToolState == MoveItTool.ToolStates.RightDraggingClone) { MIT.StopCloning(); } AlignSlopeAction asa = new AlignSlopeAction { followTerrain = MoveItTool.followTerrain, mode = AlignSlopeAction.Modes.Auto }; if (simAlt) { asa.mode = AlignSlopeAction.Modes.Quick; } ActionQueue.instance.Push(asa); ActionQueue.instance.Do(); CheckCloseMenu(); MIT.DeactivateTool(); break; case "MoveIt_AlignLineBtn": if (MoveItTool.ToolState == MoveItTool.ToolStates.Cloning || MoveItTool.ToolState == MoveItTool.ToolStates.RightDraggingClone) { MIT.StopCloning(); } LineAction la = new LineAction { followTerrain = MoveItTool.followTerrain, mode = LineAction.Modes.Spaced, }; if (simShift) { la.mode = LineAction.Modes.Unspaced; } ActionQueue.instance.Push(la); ActionQueue.instance.Do(); CheckCloseMenu(); MIT.DeactivateTool(); break; case "MoveIt_AlignIndividualBtn": m_activeToolMenu = MoreButtons["MoveIt_RotateBtn"]; MIT.ProcessAligning(MoveItTool.MT_Tools.Inplace); break; case "MoveIt_AlignGroupBtn": m_activeToolMenu = MoreButtons["MoveIt_RotateBtn"]; MIT.ProcessAligning(MoveItTool.MT_Tools.Group); break; case "MoveIt_AlignRandomBtn": if (MoveItTool.ToolState == MoveItTool.ToolStates.Cloning || MoveItTool.ToolState == MoveItTool.ToolStates.RightDraggingClone) { MIT.StopCloning(); } AlignRandomAction ara = new AlignRandomAction { followTerrain = MoveItTool.followTerrain }; ActionQueue.instance.Push(ara); ActionQueue.instance.Do(); CheckCloseMenu(); MIT.DeactivateTool(); break; case "MoveIt_ConvertToPOBtn": if (MoveItTool.PO.Enabled && MoveItTool.ToolState == MoveItTool.ToolStates.Default) { MoveItTool.PO.StartConvertAction(); } CheckCloseMenu(); MIT.DeactivateTool(); break; case "MoveIt_ResetObjectBtn": MIT.StartReset(); CheckCloseMenu(); MIT.DeactivateTool(); break; case "MoveIt_MoveToBtn": m_activeToolMenu = MoreButtons["MoveIt_OthersBtn"]; if (!MoveItTool.instance.StartTool(MoveItTool.ToolStates.ToolActive, MoveItTool.MT_Tools.MoveTo)) { m_activeToolMenu = null; break; } MoveToAction mta = new MoveToAction { followTerrain = MoveItTool.followTerrain }; ActionQueue.instance.Push(mta); MoveItTool.m_moveToPanel.Visible(true); CheckCloseMenu(); break; default: Log.Debug($"Invalid Tool clicked ({name})"); break; } }