Beispiel #1
0
        public static void MoreToolsClicked(UIComponent c, UIMouseEventParameter p)
        {
            switch (c.name)
            {
            case "MoveIt_MoreToolsBtn":
                if (MoreToolsPanel.isVisible)
                {
                    MoreToolsPanel.isVisible = false;
                }
                else
                {
                    MoreToolsPanel.isVisible = true;
                }
                UpdateMoreTools();
                break;

            case "MoveIt_AlignHeightBtn":
                MIT.ProcessAligning(MoveItTool.AlignModes.Height);
                break;

            case "MoveIt_AlignMirrorBtn":
                MIT.ProcessAligning(MoveItTool.AlignModes.Mirror);
                break;

            case "MoveIt_AlignTerrainHeightBtn":
                MIT.AlignMode = MoveItTool.AlignModes.TerrainHeight;

                if (MIT.ToolState == MoveItTool.ToolStates.Cloning || MIT.ToolState == MoveItTool.ToolStates.RightDraggingClone)
                {
                    MIT.StopCloning();
                }

                AlignTerrainHeightAction atha = new AlignTerrainHeightAction();
                ActionQueue.instance.Push(atha);
                ActionQueue.instance.Do();
                if (MoveItTool.autoCloseAlignTools)
                {
                    MoreToolsPanel.isVisible = false;
                }
                MoveItTool.instance.DeactivateTool();
                break;

            case "MoveIt_AlignSlopeBtn":
                if (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt))
                {
                    MIT.AlignMode = MoveItTool.AlignModes.SlopeNode;

                    if (MIT.ToolState == MoveItTool.ToolStates.Cloning || MIT.ToolState == MoveItTool.ToolStates.RightDraggingClone)
                    {
                        MIT.StopCloning();
                    }

                    AlignSlopeAction asa = new AlignSlopeAction();
                    asa.followTerrain = MoveItTool.followTerrain;
                    asa.IsQuick       = true;
                    ActionQueue.instance.Push(asa);
                    ActionQueue.instance.Do();
                    if (MoveItTool.autoCloseAlignTools)
                    {
                        MoreToolsPanel.isVisible = false;
                    }
                    MIT.DeactivateTool();
                    break;
                }
                MIT.ProcessAligning(MoveItTool.AlignModes.Slope);
                break;

            case "MoveIt_AlignIndividualBtn":
                MIT.ProcessAligning(MoveItTool.AlignModes.Inplace);
                break;

            case "MoveIt_AlignGroupBtn":
                MIT.ProcessAligning(MoveItTool.AlignModes.Group);
                break;

            case "MoveIt_AlignRandomBtn":
                MIT.AlignMode = MoveItTool.AlignModes.Random;

                if (MIT.ToolState == MoveItTool.ToolStates.Cloning || MIT.ToolState == MoveItTool.ToolStates.RightDraggingClone)
                {
                    MIT.StopCloning();
                }

                AlignRandomAction ara = new AlignRandomAction();
                ara.followTerrain = MoveItTool.followTerrain;
                ActionQueue.instance.Push(ara);
                ActionQueue.instance.Do();
                if (MoveItTool.autoCloseAlignTools)
                {
                    MoreToolsPanel.isVisible = false;
                }
                MIT.DeactivateTool();
                break;

            case "MoveIt_ConvertToPOBtn":
                if (MoveItTool.PO.Enabled && MIT.ToolState == MoveItTool.ToolStates.Default)
                {
                    if (MoveItTool.PO.Active == false)
                    {
                        MoveItTool.PO.Active = true;
                        UIToolOptionPanel.instance.PO_button.activeStateIndex = 1;
                        MoveItTool.PO.ToolEnabled();
                        UIFilters.POToggled();
                    }

                    ConvertToPOAction convertAction = new ConvertToPOAction();
                    ActionQueue.instance.Push(convertAction);
                    ActionQueue.instance.Do();
                }
                if (MoveItTool.autoCloseAlignTools)
                {
                    MoreToolsPanel.isVisible = false;
                }
                MIT.DeactivateTool();
                break;

            case "MoveIt_ResetObjectBtn":
                MoveItTool.instance.StartReset();
                if (MoveItTool.autoCloseAlignTools)
                {
                    MoreToolsPanel.isVisible = false;
                }
                MIT.DeactivateTool();
                break;

            default:
                Debug.Log($"Invalid Tool call ({c.name})");
                break;
            }
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
        public static void AlignToolsClicked(UIComponent c, UIMouseEventParameter p)
        {
            switch (c.name)
            {
            case "MoveIt_AlignToolsBtn":
                if (AlignToolsPanel.isVisible)
                {
                    AlignToolsPanel.isVisible = false;
                }
                else
                {
                    AlignToolsPanel.isVisible = true;
                }
                UpdateAlignTools();
                break;

            case "MoveIt_AlignHeightBtn":
                MIT.ProcessAligning(MoveItTool.AlignModes.Height);
                break;

            case "MoveIt_AlignTerrainHeightBtn":
                MIT.AlignMode = MoveItTool.AlignModes.TerrainHeight;

                if (MIT.ToolState == MoveItTool.ToolStates.Cloning || MIT.ToolState == MoveItTool.ToolStates.RightDraggingClone)
                {
                    MIT.StopCloning();
                }

                AlignTerrainHeightAction atha = new AlignTerrainHeightAction();
                ActionQueue.instance.Push(atha);
                ActionQueue.instance.Do();
                if (MoveItTool.autoCloseAlignTools)
                {
                    AlignToolsPanel.isVisible = false;
                }
                MoveItTool.instance.DeactivateAlignTool();
                break;

            case "MoveIt_AlignSlopeBtn":
                if (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt))
                {
                    MIT.AlignMode = MoveItTool.AlignModes.SlopeNode;

                    if (MIT.ToolState == MoveItTool.ToolStates.Cloning || MIT.ToolState == MoveItTool.ToolStates.RightDraggingClone)
                    {
                        MIT.StopCloning();
                    }

                    AlignSlopeAction asa = new AlignSlopeAction();
                    asa.followTerrain = MoveItTool.followTerrain;
                    asa.IsQuick       = true;
                    ActionQueue.instance.Push(asa);
                    ActionQueue.instance.Do();
                    if (MoveItTool.autoCloseAlignTools)
                    {
                        AlignToolsPanel.isVisible = false;
                    }
                    MIT.DeactivateAlignTool();
                    break;
                }
                MIT.ProcessAligning(MoveItTool.AlignModes.Slope);
                break;

            case "MoveIt_AlignIndividualBtn":
                MIT.ProcessAligning(MoveItTool.AlignModes.Inplace);
                break;

            case "MoveIt_AlignGroupBtn":
                MIT.ProcessAligning(MoveItTool.AlignModes.Group);
                break;

            case "MoveIt_AlignRandomBtn":
                MIT.AlignMode = MoveItTool.AlignModes.Random;

                if (MIT.ToolState == MoveItTool.ToolStates.Cloning || MIT.ToolState == MoveItTool.ToolStates.RightDraggingClone)
                {
                    MIT.StopCloning();
                }

                AlignRandomAction ara = new AlignRandomAction();
                ara.followTerrain = MoveItTool.followTerrain;
                ActionQueue.instance.Push(ara);
                ActionQueue.instance.Do();
                if (MoveItTool.autoCloseAlignTools)
                {
                    AlignToolsPanel.isVisible = false;
                }
                MoveItTool.instance.DeactivateAlignTool();
                break;

            default:
                Debug.Log($"Invalid Align Tools call ({c.name})");
                break;
            }
            //Debug.Log($"{c.name} clicked, mode is {MoveItTool.alignMode}");
        }