Example #1
0
 private void HandleEditModeChange()
 {
     if (this.isPicking && EditMode.editMode != EditMode.SceneViewEditMode.GridPicking)
     {
         this.m_MarqueeStart = null;
         this.m_MarqueeType  = PaintableGrid.MarqueeType.None;
         if (this.isHotControl)
         {
             GUI.changed           = true;
             GUIUtility.hotControl = 0;
         }
     }
     if (this.isBoxing && EditMode.editMode != EditMode.SceneViewEditMode.GridBox)
     {
         this.m_MarqueeStart = null;
         this.m_MarqueeType  = PaintableGrid.MarqueeType.None;
         if (this.isHotControl)
         {
             GUI.changed           = true;
             GUIUtility.hotControl = 0;
         }
     }
     if (EditMode.editMode != EditMode.SceneViewEditMode.GridSelect && EditMode.editMode != EditMode.SceneViewEditMode.GridMove)
     {
         this.ClearGridSelection();
     }
 }
Example #2
0
        private void HandleBrushPicking()
        {
            Event current = Event.current;

            if (current.type == EventType.MouseDown && this.IsPickingEvent(current) && !this.isHotControl)
            {
                this.m_ModeBeforePicking = EditMode.SceneViewEditMode.GridPainting;
                if (this.inEditMode && EditMode.editMode != EditMode.SceneViewEditMode.GridPicking)
                {
                    this.m_ModeBeforePicking = EditMode.editMode;
                    EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridPicking, ScriptableSingleton <GridPaintingState> .instance);
                }
                this.m_MarqueeStart = new Vector2Int?(this.mouseGridPosition);
                this.m_MarqueeType  = PaintableGrid.MarqueeType.Pick;
                PaintableGrid.s_LastActivePaintableGrid = this;
                Event.current.Use();
                GUI.changed           = true;
                GUIUtility.hotControl = this.m_PermanentControlID;
                this.OnBrushPickStarted();
            }
            if (current.type == EventType.MouseDrag && this.isHotControl && this.m_MarqueeStart.HasValue && this.m_MarqueeType == PaintableGrid.MarqueeType.Pick && this.IsPickingEvent(current))
            {
                RectInt marqueeRect = GridEditorUtility.GetMarqueeRect(this.m_MarqueeStart.Value, this.mouseGridPosition);
                this.OnBrushPickDragged(new BoundsInt(new Vector3Int(marqueeRect.xMin, marqueeRect.yMin, 0), new Vector3Int(marqueeRect.size.x, marqueeRect.size.y, 1)));
                Event.current.Use();
                GUI.changed = true;
            }
            if (current.type == EventType.MouseUp && this.m_MarqueeStart.HasValue && this.m_MarqueeType == PaintableGrid.MarqueeType.Pick && this.IsPickingEvent(current))
            {
                RectInt marqueeRect2 = GridEditorUtility.GetMarqueeRect(this.m_MarqueeStart.Value, this.mouseGridPosition);
                if (this.isHotControl)
                {
                    Vector2Int marqueePivot = this.GetMarqueePivot(this.m_MarqueeStart.Value, this.mouseGridPosition);
                    this.PickBrush(new BoundsInt(new Vector3Int(marqueeRect2.xMin, marqueeRect2.yMin, 0), new Vector3Int(marqueeRect2.size.x, marqueeRect2.size.y, 1)), new Vector3Int(marqueePivot.x, marqueePivot.y, 0));
                    if (this.inEditMode && EditMode.editMode != this.m_ModeBeforePicking)
                    {
                        EditMode.ChangeEditMode(this.m_ModeBeforePicking, ScriptableSingleton <GridPaintingState> .instance);
                    }
                    GridPaletteBrushes.ActiveGridBrushAssetChanged();
                    PaintableGrid.s_LastActivePaintableGrid = this;
                    InspectorWindow.RepaintAllInspectors();
                    Event.current.Use();
                    GUI.changed           = true;
                    GUIUtility.hotControl = 0;
                }
                this.m_MarqueeType  = PaintableGrid.MarqueeType.None;
                this.m_MarqueeStart = null;
            }
        }
Example #3
0
        private void HandleMoveTool()
        {
            Event current = Event.current;

            if (current.type == EventType.MouseDown && current.button == 0 && !current.alt && EditMode.editMode == EditMode.SceneViewEditMode.GridMove)
            {
                this.RegisterUndo();
                Vector3Int position = new Vector3Int(this.mouseGridPosition.x, this.mouseGridPosition.y, GridSelection.position.zMin);
                if (GridSelection.active && GridSelection.position.Contains(position))
                {
                    GUIUtility.hotControl = this.m_PermanentControlID;
                    this.executing        = true;
                    this.m_MarqueeStart   = null;
                    this.m_MarqueeType    = PaintableGrid.MarqueeType.None;
                    this.m_PreviousMove   = new Vector2Int?(this.mouseGridPosition);
                    this.MoveStart(GridSelection.position);
                    PaintableGrid.s_LastActivePaintableGrid = this;
                }
                Event.current.Use();
            }
            if (current.type == EventType.MouseDrag && current.button == 0 && EditMode.editMode == EditMode.SceneViewEditMode.GridMove && GUIUtility.hotControl == this.m_PermanentControlID)
            {
                if (this.m_MouseGridPositionChanged && this.m_PreviousMove.HasValue)
                {
                    this.executing = true;
                    BoundsInt  position2  = GridSelection.position;
                    BoundsInt  from       = new BoundsInt(new Vector3Int(position2.xMin, position2.yMin, 0), new Vector3Int(position2.size.x, position2.size.y, 1));
                    Vector2Int vector2Int = this.mouseGridPosition - this.m_PreviousMove.Value;
                    BoundsInt  position3  = GridSelection.position;
                    position3.position     = new Vector3Int(position3.x + vector2Int.x, position3.y + vector2Int.y, position3.z);
                    GridSelection.position = position3;
                    this.Move(from, position3);
                    this.m_PreviousMove = new Vector2Int?(this.mouseGridPosition);
                    Event.current.Use();
                }
            }
            if (current.type == EventType.MouseUp && current.button == 0 && this.m_PreviousMove.HasValue && EditMode.editMode == EditMode.SceneViewEditMode.GridMove && GUIUtility.hotControl == this.m_PermanentControlID)
            {
                if (this.m_PreviousMove.HasValue)
                {
                    this.m_PreviousMove = null;
                    this.MoveEnd(GridSelection.position);
                }
                this.executing        = false;
                GUIUtility.hotControl = 0;
                Event.current.Use();
            }
        }
Example #4
0
        private void HandleBoxTool()
        {
            Event current = Event.current;

            if (current.type == EventType.MouseDown && current.button == 0 && !current.alt && EditMode.editMode == EditMode.SceneViewEditMode.GridBox)
            {
                this.m_MarqueeStart = new Vector2Int?(this.mouseGridPosition);
                this.m_MarqueeType  = PaintableGrid.MarqueeType.Box;
                Event.current.Use();
                GUI.changed           = true;
                this.executing        = true;
                GUIUtility.hotControl = this.m_PermanentControlID;
            }
            if (current.type == EventType.MouseDrag && current.button == 0 && EditMode.editMode == EditMode.SceneViewEditMode.GridBox)
            {
                if (this.isHotControl && this.m_MarqueeStart.HasValue)
                {
                    Event.current.Use();
                    this.executing = true;
                    GUI.changed    = true;
                }
            }
            if (current.type == EventType.MouseUp && current.button == 0 && EditMode.editMode == EditMode.SceneViewEditMode.GridBox)
            {
                if (this.isHotControl && this.m_MarqueeStart.HasValue)
                {
                    this.RegisterUndo();
                    RectInt marqueeRect = GridEditorUtility.GetMarqueeRect(this.m_MarqueeStart.Value, this.mouseGridPosition);
                    if (current.shift)
                    {
                        this.BoxErase(new BoundsInt(marqueeRect.x, marqueeRect.y, 0, marqueeRect.size.x, marqueeRect.size.y, 1));
                    }
                    else
                    {
                        this.BoxFill(new BoundsInt(marqueeRect.x, marqueeRect.y, 0, marqueeRect.size.x, marqueeRect.size.y, 1));
                    }
                    Event.current.Use();
                    this.executing        = false;
                    GUI.changed           = true;
                    GUIUtility.hotControl = 0;
                }
                this.m_MarqueeStart = null;
                this.m_MarqueeType  = PaintableGrid.MarqueeType.None;
            }
        }
Example #5
0
        private void HandleSelectTool()
        {
            Event current = Event.current;

            if (current.type == EventType.MouseDown && current.button == 0 && !current.alt && (EditMode.editMode == EditMode.SceneViewEditMode.GridSelect || (EditMode.editMode == EditMode.SceneViewEditMode.GridMove && current.control)))
            {
                if (EditMode.editMode == EditMode.SceneViewEditMode.GridMove && current.control)
                {
                    EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridSelect, ScriptableSingleton <GridPaintingState> .instance);
                }
                this.m_PreviousMove = null;
                this.m_MarqueeStart = new Vector2Int?(this.mouseGridPosition);
                this.m_MarqueeType  = PaintableGrid.MarqueeType.Select;
                PaintableGrid.s_LastActivePaintableGrid = this;
                GUIUtility.hotControl = this.m_PermanentControlID;
                Event.current.Use();
            }
            if (current.type == EventType.MouseUp && current.button == 0 && !current.alt && this.m_MarqueeStart.HasValue && GUIUtility.hotControl == this.m_PermanentControlID && EditMode.editMode == EditMode.SceneViewEditMode.GridSelect)
            {
                if (this.m_MarqueeStart.HasValue && this.m_MarqueeType == PaintableGrid.MarqueeType.Select)
                {
                    RectInt marqueeRect = GridEditorUtility.GetMarqueeRect(this.m_MarqueeStart.Value, this.mouseGridPosition);
                    this.Select(new BoundsInt(new Vector3Int(marqueeRect.xMin, marqueeRect.yMin, 0), new Vector3Int(marqueeRect.size.x, marqueeRect.size.y, 1)));
                    this.m_MarqueeStart = null;
                    this.m_MarqueeType  = PaintableGrid.MarqueeType.None;
                    InspectorWindow.RepaintAllInspectors();
                }
                if (current.control)
                {
                    EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridMove, ScriptableSingleton <GridPaintingState> .instance);
                }
                GUIUtility.hotControl = 0;
                Event.current.Use();
            }
            if (current.type == EventType.KeyDown && current.keyCode == KeyCode.Escape && !this.m_MarqueeStart.HasValue && !this.m_PreviousMove.HasValue)
            {
                this.ClearGridSelection();
                Event.current.Use();
            }
        }