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(); } }
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; } }
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(); } }
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; } }
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(); } }