private void HandleBrushPaintAndErase() { Event evt = Event.current; if (!IsPaintingEvent(evt) && !IsErasingEvent(evt)) { return; } switch (evt.type) { case EventType.MouseDown: RegisterUndo(); if (IsErasingEvent(evt)) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridEraser) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridEraser, GridPaintingState.instance); } Erase(new Vector3Int(mouseGridPosition.x, mouseGridPosition.y, 0)); } else { if (EditMode.editMode != EditMode.SceneViewEditMode.GridPainting) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridPainting, GridPaintingState.instance); } Paint(new Vector3Int(mouseGridPosition.x, mouseGridPosition.y, 0)); } Event.current.Use(); GUIUtility.hotControl = m_PermanentControlID; GUI.changed = true; executing = true; break; case EventType.MouseDrag: if (isHotControl && mouseGridPositionChanged) { List <Vector2Int> points = GridEditorUtility.GetPointsOnLine(m_PreviousMouseGridPosition, mouseGridPosition).ToList(); if (points[0] == mouseGridPosition) { points.Reverse(); } for (int i = 1; i < points.Count; i++) { if (IsErasingEvent(evt)) { Erase(new Vector3Int(points[i].x, points[i].y, 0)); } else { Paint(new Vector3Int(points[i].x, points[i].y, 0)); } } Event.current.Use(); GUI.changed = true; } executing = true; break; case EventType.MouseUp: executing = false; if (isHotControl) { if (Event.current.shift && EditMode.editMode != EditMode.SceneViewEditMode.GridPainting) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridPainting, GridPaintingState.instance); } Event.current.Use(); GUI.changed = true; GUIUtility.hotControl = 0; } break; } }
public void StartEditMode() { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.LightProbeGroup, m_Editor.bounds, this); }
private void HandleBrushPaintAndErase() { Event current = Event.current; if (this.IsPaintingEvent(current) || this.IsErasingEvent(current)) { EventType type = current.type; if (type != EventType.MouseDown) { if (type != EventType.MouseDrag) { if (type == EventType.MouseUp) { this.executing = false; if (this.isHotControl) { if (Event.current.shift && EditMode.editMode != EditMode.SceneViewEditMode.GridPainting) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridPainting, ScriptableSingleton <GridPaintingState> .instance); } Event.current.Use(); GUI.changed = true; GUIUtility.hotControl = 0; } } } else { if (this.isHotControl && this.mouseGridPositionChanged) { List <Vector2Int> list = GridEditorUtility.GetPointsOnLine(this.m_PreviousMouseGridPosition, this.mouseGridPosition).ToList <Vector2Int>(); if (list[0] == this.mouseGridPosition) { list.Reverse(); } for (int i = 1; i < list.Count; i++) { if (this.IsErasingEvent(current)) { this.Erase(new Vector3Int(list[i].x, list[i].y, 0)); } else { this.Paint(new Vector3Int(list[i].x, list[i].y, 0)); } } Event.current.Use(); GUI.changed = true; } this.executing = true; } } else { this.RegisterUndo(); if (this.IsErasingEvent(current)) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridEraser) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridEraser, ScriptableSingleton <GridPaintingState> .instance); } this.Erase(new Vector3Int(this.mouseGridPosition.x, this.mouseGridPosition.y, 0)); } else { if (EditMode.editMode != EditMode.SceneViewEditMode.GridPainting) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridPainting, ScriptableSingleton <GridPaintingState> .instance); } this.Paint(new Vector3Int(this.mouseGridPosition.x, this.mouseGridPosition.y, 0)); } Event.current.Use(); GUIUtility.hotControl = this.m_PermanentControlID; GUI.changed = true; this.executing = true; } } }
public void ChangeToTool(GridBrushBase.Tool tool) { EditMode.ChangeEditMode(PaintableGrid.BrushToolToEditMode(tool), new Bounds(Vector3.zero, Vector3.positiveInfinity), GridPaintingState.instance); Repaint(); }
private void HotkeyHandler() { if (kGridSelectKey.activated) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridSelect) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridSelect, GridPaintingState.instance); } else { EditMode.QuitEditMode(); } Event.current.Use(); } if (kGridMoveKey.activated) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridMove) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridMove, GridPaintingState.instance); } else { EditMode.QuitEditMode(); } Event.current.Use(); } if (kGridBrushKey.activated) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridPainting) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridPainting, GridPaintingState.instance); } else { EditMode.QuitEditMode(); } Event.current.Use(); } if (kGridEraseKey.activated) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridEraser) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridEraser, GridPaintingState.instance); } else { EditMode.QuitEditMode(); } Event.current.Use(); } if (kGridFillKey.activated) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridFloodFill) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridFloodFill, GridPaintingState.instance); } else { EditMode.QuitEditMode(); } Event.current.Use(); } if (kGridPickerKey.activated) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridPicking) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridPicking, GridPaintingState.instance); } else { EditMode.QuitEditMode(); } Event.current.Use(); } if (kGridRectangleKey.activated) { if (EditMode.editMode != EditMode.SceneViewEditMode.GridBox) { EditMode.ChangeEditMode(EditMode.SceneViewEditMode.GridBox, GridPaintingState.instance); } else { EditMode.QuitEditMode(); } Event.current.Use(); } if (GridPaintingState.gridBrush != null && GridPaintingState.activeGrid != null) { if (kRotateClockwise.activated) { GridPaintingState.gridBrush.Rotate(GridBrush.RotationDirection.Clockwise, GridPaintingState.activeGrid.cellLayout); GridPaintingState.activeGrid.Repaint(); Event.current.Use(); } if (kRotateAntiClockwise.activated) { GridPaintingState.gridBrush.Rotate(GridBrush.RotationDirection.CounterClockwise, GridPaintingState.activeGrid.cellLayout); GridPaintingState.activeGrid.Repaint(); Event.current.Use(); } if (kFlipX.activated) { GridPaintingState.gridBrush.Flip(GridBrush.FlipAxis.X, GridPaintingState.activeGrid.cellLayout); GridPaintingState.activeGrid.Repaint(); Event.current.Use(); } if (kFlipY.activated) { GridPaintingState.gridBrush.Flip(GridBrush.FlipAxis.Y, GridPaintingState.activeGrid.cellLayout); GridPaintingState.activeGrid.Repaint(); Event.current.Use(); } } }