private void PencilToolHandler() { if (IsMouseAboveGrid(mouseWorlPosition) == false) { return; } bool rubberMode = false; if (toolIndex == 1) { rubberMode = true; } SAP_TileData tileUnderMouse = grid.GetTileDataAtWorldPosition(mouseWorlPosition); Event e = Event.current; if (e.type == EventType.MouseDown || e.type == EventType.MouseDrag) { if (e.button == 0) { List <SAP_TileData> selectedTiles = grid.GetNeighborTiles(tileUnderMouse, true, brushSize - 1); selectedTiles.Add(tileUnderMouse); foreach (SAP_TileData tile in selectedTiles) { if (rubberMode == false) { tile.isWalkable = false; tile.walkableLock = true; UserGridDataLoader.WriteData(grid, tile); } else { tile.isWalkable = true; tile.walkableLock = false; UserGridDataLoader.DeleteData(grid, tile); } } } } //draw brush Vector2 point1 = new Vector2(tileUnderMouse.WorldPosition.x - grid.TileDiameter * (brushSize - 1), tileUnderMouse.WorldPosition.y - grid.TileDiameter * (brushSize - 1)); Vector2 point2 = new Vector2(tileUnderMouse.WorldPosition.x + grid.TileDiameter * (brushSize - 1), tileUnderMouse.WorldPosition.y + grid.TileDiameter * (brushSize - 1)); DrawSelectionRectangle(point1, point2, Color.clear, pathfinder.EditorSettings.selectingColor); }
private void RectangleToolHandler() { if (mouseDrag == false && IsMouseAboveGrid(mouseWorlPosition) == false) { return; } Event e = Event.current; if (e.type == EventType.MouseDrag) { if (e.button == 0) { mouseDrag = true; } } if (e.type == EventType.MouseUp) { if (e.button == 0) { int startX = Mathf.Min(startDragTile.x, endDragTile.x); int startY = Mathf.Min(startDragTile.y, endDragTile.y); int endX = Mathf.Max(startDragTile.x, endDragTile.x); int endY = Mathf.Max(startDragTile.y, endDragTile.y); for (int x = startX; x <= endX; x++) { for (int y = startY; y <= endY; y++) { SAP_TileData tile = grid.GetTileDataAt(x, y); tile.isWalkable = false; tile.walkableLock = true; UserGridDataLoader.WriteData(grid, tile); } } } mouseDrag = false; } endDragTile = grid.GetTileDataAtWorldPosition(mouseWorlPosition); if (mouseDrag == false) { startDragTile = endDragTile; } DrawSelectionRectangle(startDragTile.WorldPosition, endDragTile.WorldPosition, pathfinder.EditorSettings.obstacleColor, pathfinder.EditorSettings.selectingColor); }