Example #1
0
 public void SetWidgetModeUI(WidgetMode mode)
 {
     MoveMenuItem.Checked     = (mode == WidgetMode.Position);
     MoveMenuItem.BackColor   = (mode == WidgetMode.Position) ? SystemColors.GradientActiveCaption : SystemColors.Control;
     RotateMenuItem.Checked   = (mode == WidgetMode.Rotation);
     RotateMenuItem.BackColor = (mode == WidgetMode.Rotation) ? SystemColors.GradientActiveCaption : SystemColors.Control;
     ScaleMenuItem.Checked    = (mode == WidgetMode.Scale);
     ScaleMenuItem.BackColor  = (mode == WidgetMode.Scale) ? SystemColors.GradientActiveCaption : SystemColors.Control;
 }
        void OnKeyAction(SceneView sceneView, Event e)
        {
            if(widgetMode == WidgetMode.Resize)
            {
                if (targetBrush != null && e.keyCode == KeyMappings.CancelMove) // Cancel move
                {
                    if (e.type == EventType.KeyUp)
                    {
                        CancelMove();
                    }
                    e.Use();
                }
            }

            if(!CameraPanInProgress)
            {
                if(KeyMappings.EventsMatch(e, EditorKeyMappings.GetToolViewMapping()))
                {
                    if (e.type == EventType.KeyUp)
                    {
                        widgetMode = WidgetMode.Resize;
                        SceneView.RepaintAll();
                    }
                }
                else if(KeyMappings.EventsMatch(e, EditorKeyMappings.GetToolMoveMapping()))
                {
                    if (e.type == EventType.KeyUp)
                    {
                        widgetMode = WidgetMode.Translate;
                        SceneView.RepaintAll();
                    }
                }
                else if(KeyMappings.EventsMatch(e, EditorKeyMappings.GetToolRotateMapping()))
                {
                    if (e.type == EventType.KeyUp)
                    {
                        widgetMode = WidgetMode.Rotate;
                        SceneView.RepaintAll();
                    }
                }
            }
        }
Example #3
0
        public UndoStep CreateUndoStep(WidgetMode mode, Vector3 startPos, Quaternion startRot, Vector3 startScale, WorldForm wf, bool editPivot)
        {
            if (MultipleSelectionItems != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new MultiPositionUndoStep(this, startPos, wf));

                case WidgetMode.Rotation: return(new MultiRotationUndoStep(this, startRot, wf));

                case WidgetMode.Scale: return(new MultiScaleUndoStep(this, startScale, wf));
                }
            }
            else if (EntityDef != null)
            {
                if (editPivot)
                {
                    switch (mode)
                    {
                    case WidgetMode.Position: return(new EntityPivotPositionUndoStep(EntityDef, startPos));

                    case WidgetMode.Rotation: return(new EntityPivotRotationUndoStep(EntityDef, startRot));
                    }
                }
                else
                {
                    switch (mode)
                    {
                    case WidgetMode.Position: return(new EntityPositionUndoStep(EntityDef, startPos));

                    case WidgetMode.Rotation: return(new EntityRotationUndoStep(EntityDef, startRot));

                    case WidgetMode.Scale: return(new EntityScaleUndoStep(EntityDef, startScale));
                    }
                }
            }
            else if (CarGenerator != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new CarGenPositionUndoStep(CarGenerator, startPos));

                case WidgetMode.Rotation: return(new CarGenRotationUndoStep(CarGenerator, startRot));

                case WidgetMode.Scale: return(new CarGenScaleUndoStep(CarGenerator, startScale));
                }
            }
            else if (CollisionVertex != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new CollisionVertexPositionUndoStep(CollisionVertex, startPos, wf));
                }
            }
            else if (CollisionPoly != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new CollisionPolyPositionUndoStep(CollisionPoly, startPos, wf));

                case WidgetMode.Rotation: return(new CollisionPolyRotationUndoStep(CollisionPoly, startRot, wf));

                case WidgetMode.Scale: return(new CollisionPolyScaleUndoStep(CollisionPoly, startScale, wf));
                }
            }
            else if (CollisionBounds != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new CollisionPositionUndoStep(CollisionBounds, startPos, wf));

                case WidgetMode.Rotation: return(new CollisionRotationUndoStep(CollisionBounds, startRot, wf));

                case WidgetMode.Scale: return(new CollisionScaleUndoStep(CollisionBounds, startScale, wf));
                }
            }
            else if (PathNode != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new PathNodePositionUndoStep(PathNode, startPos, wf));
                }
            }
            else if (NavPoly != null)
            {
                //todo...
            }
            else if (NavPoint != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new NavPointPositionUndoStep(NavPoint, startPos, wf));

                case WidgetMode.Rotation: return(new NavPointRotationUndoStep(NavPoint, startRot, wf));
                }
            }
            else if (NavPortal != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new NavPortalPositionUndoStep(NavPortal, startPos, wf));

                case WidgetMode.Rotation: return(new NavPortalRotationUndoStep(NavPortal, startRot, wf));
                }
            }
            else if (TrainTrackNode != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new TrainTrackNodePositionUndoStep(TrainTrackNode, startPos, wf));
                }
            }
            else if (ScenarioNode != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new ScenarioNodePositionUndoStep(ScenarioNode, startPos, wf));

                case WidgetMode.Rotation: return(new ScenarioNodeRotationUndoStep(ScenarioNode, startRot, wf));
                }
            }
            else if (Audio != null)
            {
                switch (mode)
                {
                case WidgetMode.Position: return(new AudioPositionUndoStep(Audio, startPos));

                case WidgetMode.Rotation: return(new AudioRotationUndoStep(Audio, startRot));
                }
            }
            return(null);
        }
 private void OnTopToolbarGUI(int windowID)
 {
     widgetMode = SabreGUILayout.DrawEnumGrid(widgetMode, GUILayout.Width(70));
 }
Example #5
0
 private void OnWidgetModeChanges(WidgetMode mode)
 {
     TransformActorModel.WidgetMode = mode;
 }