diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index f7aa994..516c3b8 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -45,7 +45,7 @@ public class Panel extends JPanel implements ActionListener BufferedImage grass, sand; BufferedImage background; - BufferedImage podiumImage, toiletImage, entranceImage, pathImage, wallImage, foodImage; + BufferedImage podiumImage, toiletImage, entranceImage, wallImage, foodImage; private int panelInfox, panelInfoy, scrollfactor; @@ -110,7 +110,6 @@ public class Panel extends JPanel implements ActionListener podiumImage = ImageIO.read(new File("images/stageIcon.png")); toiletImage = ImageIO.read(new File("images/wcIcon.png")); entranceImage = ImageIO.read(new File("images/entranceIcon.png")); - pathImage = ImageIO.read(new File("images/pathIcon.png")); wallImage = ImageIO.read(new File("images/wallIcon.png")); foodImage = ImageIO.read(new File("images/foodIcon.png")); background = grass; @@ -122,7 +121,6 @@ public class Panel extends JPanel implements ActionListener panelInfo.add(podiumImage); panelInfo.add(toiletImage); panelInfo.add(entranceImage); - panelInfo.add(pathImage); panelInfo.add(wallImage); panelInfo.add(foodImage); @@ -166,10 +164,8 @@ public class Panel extends JPanel implements ActionListener case 2: return new Entrance(null); case 3: - return new OldPath(null); - case 4: return new Wall(null); - case 5: + case 4: return new Food(null); default: return null; @@ -538,6 +534,16 @@ public class Panel extends JPanel implements ActionListener { this.agenda = agenda; } + + public int getFieldWidth() + { + return width; + } + + public int getFieldHeight() + { + return height; + } @Override public void actionPerformed(ActionEvent e) diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index e611c2c..d048f71 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -4,11 +4,12 @@ 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 Objects.DrawObject; -import Objects.Stage; +import Objects.Entrance; public class Mouse extends MouseAdapter { @@ -125,6 +126,35 @@ public class Mouse extends MouseAdapter { if(panel.getDragObject() != null) { if(panel.getDragObject().getRectangleColor() != Color.RED) { + if(panel.getDragObject() instanceof Entrance) + { + Rectangle2D rect = panel.getDragObject().getRectangle(); + double xl = (panel.getFieldWidth()/2) + rect.getMinX(); + double xr = panel.getFieldWidth() - xl+rect.getWidth(); + double yt = (panel.getFieldHeight()/2) + rect.getMinY(); + double yb = panel.getFieldHeight() - yt+rect.getHeight(); + if(xl < xr && xl < yt && xl < yb) + { + panel.getDragObject().setPosition(new Point2D.Double(-panel.getFieldWidth()/2, rect.getMinY())); + } + else if(xr < xl && xr < yt && xr < yb) + { + panel.getDragObject().setPosition(new Point2D.Double(panel.getFieldWidth()/2 - rect.getWidth(), rect.getMinY())); + } + else if(yt < xl && yt < xr && yt < yb) + { + panel.getDragObject().setPosition(new Point2D.Double(rect.getMinX(), -panel.getFieldHeight()/2)); + } + else if(yb < xl && yb < yt && yb < xr) + { + panel.getDragObject().setPosition(new Point2D.Double(rect.getMinX(), panel.getFieldHeight()/2 - rect.getHeight())); + } + else + { + panel.getDragObject().setPosition(new Point2D.Double(-panel.getFieldWidth()/2, -panel.getFieldHeight()/2)); + } + + } panel.setDragObject(null); panel.setClickedOption("drag"); }