From 82a94ba4565559c85060ad9ddc0998936439a741 Mon Sep 17 00:00:00 2001 From: Yorick Date: Wed, 8 Apr 2015 11:18:30 +0200 Subject: [PATCH] Started with waypoints --- Agenda/MenuBar.java | 4 ---- Agenda/Window.java | 3 --- Applicatie/Images.java | 1 + Applicatie/Panel.java | 38 ++++++++++++++++++++++++++++++++++-- Applicatie/Visitor.java | 2 ++ Applicatie/Waypoint.java | 42 ++++++++++++++++++++++++++++++++++++++++ Listeners/Mouse.java | 26 +++++++++++++++---------- Objects/Path.java | 12 ++++++++++++ 8 files changed, 109 insertions(+), 19 deletions(-) create mode 100644 Applicatie/Waypoint.java diff --git a/Agenda/MenuBar.java b/Agenda/MenuBar.java index fff5a43..84f451f 100644 --- a/Agenda/MenuBar.java +++ b/Agenda/MenuBar.java @@ -82,12 +82,8 @@ public class MenuBar extends JMenuBar { public void actionPerformed(ActionEvent e) { if(JOptionPane.showConfirmDialog(null, "Are you sure you want to close this program?", "Close Agenda", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION) { -<<<<<<< HEAD w.setVisible(false); w.dispose(); -======= - System.exit(0); ->>>>>>> origin/Banaan } } }); diff --git a/Agenda/Window.java b/Agenda/Window.java index a11c628..9a2df79 100644 --- a/Agenda/Window.java +++ b/Agenda/Window.java @@ -4,10 +4,7 @@ package Agenda; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; -<<<<<<< HEAD import java.awt.FlowLayout; -======= ->>>>>>> origin/Banaan import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; diff --git a/Applicatie/Images.java b/Applicatie/Images.java index 4bb45ff..2059b35 100644 --- a/Applicatie/Images.java +++ b/Applicatie/Images.java @@ -23,6 +23,7 @@ public class Images images.put("stage1", loadImage("images/stage3.png")); images.put("visitor", loadImage("images/visitor.png")); images.put("food", loadImage("images/food.png")); + images.put("waypoint", loadImage("images/waypoint.png")); } public static Image loadImage(String path) diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index 3cc631a..d441deb 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -43,14 +43,14 @@ public class Panel extends JPanel implements ActionListener BufferedImage grass, sand; BufferedImage background; - BufferedImage podiumImage, toiletImage, entranceImage, pathImage, wallImage, foodImage; + BufferedImage podiumImage, toiletImage, entranceImage, pathImage, wallImage, foodImage, waypointImage; private int panelInfox, panelInfoy, scrollfactor; private ArrayList panelInfo = new ArrayList(); // private ArrayList panelTypes = new ArrayList(); ArrayList visitors = new ArrayList<>(); - + ArrayList waypoints = new ArrayList(); ArrayList objects = new ArrayList<>(); ArrayList paths = new ArrayList<>(); DrawObject dragObject = null; @@ -103,6 +103,7 @@ public class Panel extends JPanel implements ActionListener pathImage = ImageIO.read(new File("images/pathIcon.png")); wallImage = ImageIO.read(new File("images/wallIcon.png")); foodImage = ImageIO.read(new File("images/foodIcon.png")); + waypointImage = ImageIO.read(new File("images/waypointIcon.png")); background = grass; } catch (IOException e) @@ -115,6 +116,7 @@ public class Panel extends JPanel implements ActionListener panelInfo.add(pathImage); panelInfo.add(wallImage); panelInfo.add(foodImage); + panelInfo.add(waypointImage); agenda = new Agenda(); @@ -161,6 +163,8 @@ public class Panel extends JPanel implements ActionListener return new Wall(null); case 5: return new Food(null); + case 6: + return new Waypoint(null); default: return null; } @@ -171,6 +175,31 @@ public class Panel extends JPanel implements ActionListener objects.add(dragObject); } + public void addWaypoint(Waypoint w) + { + waypoints.add(w); + } + + public ArrayList getWaypoints() + { + return waypoints; + } + + public int getNextTarget() + { + int last = 0; + for (Waypoint w : waypoints) + { + System.out.println(waypoints); + if (w.getSelf() > last) + { + last = w.getSelf(); + } + } + System.out.println(last); + return last; + } + public void addVisitors() { visitors.add(new Visitor("visitor", new Point(100, 300), agenda, objects)); @@ -553,6 +582,11 @@ public class Panel extends JPanel implements ActionListener return t; } + public ArrayList getPaths() + { + return paths; + } + public void setT(Timer t) { this.t = t; diff --git a/Applicatie/Visitor.java b/Applicatie/Visitor.java index c350a33..c9b1fd8 100644 --- a/Applicatie/Visitor.java +++ b/Applicatie/Visitor.java @@ -27,6 +27,7 @@ public class Visitor ArrayList actions; Agenda agenda; ArrayList objects; + char target; public Visitor(String filename, Point2D position, Agenda agenda, ArrayList objects) { @@ -39,6 +40,7 @@ public class Visitor this.agenda = agenda; this.objects = objects; fillActions(); + target = 'z'; } public void draw(Graphics2D g2) diff --git a/Applicatie/Waypoint.java b/Applicatie/Waypoint.java new file mode 100644 index 0000000..7e00775 --- /dev/null +++ b/Applicatie/Waypoint.java @@ -0,0 +1,42 @@ +package Applicatie; + +import java.awt.geom.Point2D; + +import Objects.DrawObject; + +public class Waypoint extends DrawObject +{ + private int[] options; + private int self; + public Waypoint(Point2D position) + { + super("waypoint", position); + } + + @Override + public String getName() + { + return "Waypoint"; + } + + public int[] getOptions() + { + return options; + } + + public void setOptions(int[] options) + { + this.options = options; + } + + public int getSelf() + { + return self; + } + + public void setSelf(int self) + { + this.self = self; + } + +} diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index e611c2c..789b8ac 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -4,11 +4,13 @@ import java.awt.Color; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import Applicatie.Panel; +import Applicatie.Waypoint; import Objects.DrawObject; -import Objects.Stage; +import Objects.Path; public class Mouse extends MouseAdapter { @@ -27,7 +29,8 @@ public class Mouse extends MouseAdapter Point2D clickPoint = panel.getClickPoint(e.getPoint()); panel.setLastClickPosition(clickPoint); panel.setLastMousePosition(e.getPoint()); - if(!panel.getClickedOption().equals("Path")) { + if (!panel.getClickedOption().equals("Path")) + { if (e.getY() < 150) { int i = 0; @@ -38,7 +41,7 @@ public class Mouse extends MouseAdapter { DrawObject tempDrawObj = panel.createNewDrawObject(i); tempDrawObj.setPosition(clickPoint); - if(!panel.getObjects().isEmpty()) + if (!panel.getObjects().isEmpty()) panel.clearObjectSelection(); panel.setDragObject(tempDrawObj); panel.getDragObject().setSelected(true); @@ -101,7 +104,7 @@ public class Mouse extends MouseAdapter panel.getPP().setSelected(o); panel.setSelectedObject(o); panel.setSelectionPosition(panel.getDragObject().getPosition()); - + } } panel.checkPath(clickPoint); @@ -114,21 +117,24 @@ public class Mouse extends MouseAdapter selectedObject = null; } } - else { //Making path. - panel.getCurrentPath().addPoint(new Point2D.Double(clickPoint.getX(),clickPoint.getY())); + else + { // Making path. + panel.getCurrentPath().addPoint(new Point2D.Double(clickPoint.getX(), clickPoint.getY())); } panel.repaint(); } - public void mouseReleased(MouseEvent e) { - if(panel.getDragObject() != null) { - if(panel.getDragObject().getRectangleColor() != Color.RED) { + if (panel.getDragObject() != null) + { + if (panel.getDragObject().getRectangleColor() != Color.RED) + { panel.setDragObject(null); panel.setClickedOption("drag"); } - else { + else + { panel.getDragObject().setPosition(panel.getSelectionPosition()); panel.getDragObject().setRectangleColor(Color.BLACK); } diff --git a/Objects/Path.java b/Objects/Path.java index e890609..9968691 100644 --- a/Objects/Path.java +++ b/Objects/Path.java @@ -110,6 +110,18 @@ public class Path } return false; } + + public boolean intersectsRect(Rectangle2D rect) + { + for(Shape line : getPath()) + { + if(line.intersects(rect)) + { + return true; + } + } + return false; + } /** * Get array with line's from the points.