public void drawLines(GC gc) {
        ArrayList<Wall> wallsList;
        if (intersectionPoints.size() != 0) {
            Drawer.drawLine(gc, new Point2D(0, y), intersectionPoints.get(0), Main.backgroundColor);
            Drawer.drawLine(gc, intersectionPoints.get(intersectionPoints.size() - 1), new Point2D(Constants.WINDOW_WIDTH, y), Main.backgroundColor);
            fastDraw = false;

            if (!fastDraw) {
                ArrayList<Color> previousColors = new ArrayList<Color>();
                walls = new ArrayList<ArrayList<Wall>>();
                for (int i = 0; i < intersectionPoints.size() - 1; i++) {
                    wallsList = new ArrayList<Wall>();

                    for (int j = 0; j < Main.shapes.size(); j++) {
                        for (int s = 0; s < Main.shapes.get(j).walls.size(); s++) {
                            if (Main.shapes.get(j).walls.get(s).isPointInWallRange(middle(intersectionPoints.get(i), intersectionPoints.get(i + 1)))) {
                                wallsList.add(Main.shapes.get(j).walls.get(s));
                            }
                        }
                    }
                    walls.add(wallsList);

                    if (wallsList.size() == 0) {
                        Drawer.drawLine(gc, intersectionPoints.get(i), intersectionPoints.get(i + 1), Main.backgroundColor);
                    } else {
                        Drawer.drawLine(gc, intersectionPoints.get(i), intersectionPoints.get(i + 1), getNearestWallColor(wallsList));
                        previousColors.add(getNearestWallColor(wallsList));
                    }
                }
            }
            else {
                for (int i = 0; i < previousIntersectionPoints.size() - 1; i++) {
                    if (walls.get(i).size() == 0)
                        Drawer.drawLine(gc, intersectionPoints.get(i), intersectionPoints.get(i + 1), Main.backgroundColor);
                    else
                        Drawer.drawLine(gc, intersectionPoints.get(i), intersectionPoints.get(i + 1), getNearestWallColor(walls.get(i)));
                }
            }
        }
        else {
            Drawer.drawLine(gc, new Point2D(0, y), new Point2D(Constants.WINDOW_WIDTH, y), Main.backgroundColor);
        }
    }