|
|
@@ -47,6 +47,7 @@ public class Terrain extends JPanel {
|
|
|
private boolean grid;
|
|
|
private ArrayList<Visitor> visitors;
|
|
|
private ArrayList<WalkingPath> paths;
|
|
|
+ Cursor rotate, pathpoint;
|
|
|
|
|
|
Point2D lastClickPosition;
|
|
|
Point lastMousePosition;
|
|
|
@@ -64,8 +65,7 @@ public class Terrain extends JPanel {
|
|
|
visitors = new ArrayList<Visitor>();
|
|
|
paths = new ArrayList<WalkingPath>();
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+ createCustomCursors();
|
|
|
//initialize sidebar
|
|
|
sidebar = new Sidebar(sideBarWidth, 3000, this);
|
|
|
|
|
|
@@ -144,12 +144,13 @@ public class Terrain extends JPanel {
|
|
|
if(drawObject.contains(clickPoint)){
|
|
|
if(pathgenerate == 1){
|
|
|
currentpath = new WalkingPath();
|
|
|
- currentpath.addPoint(new Point((int)drawObject.getX(), (int)drawObject.getY()));
|
|
|
+ currentpath.addPoint(new Point((int)drawObject.getCenter().getX(), (int)drawObject.getCenter().getY()));
|
|
|
currentpath.setObject1(drawObject);
|
|
|
pathgenerate = 2;
|
|
|
return;
|
|
|
}else if(pathgenerate > 1){
|
|
|
- currentpath.addPoint(new Point((int)drawObject.getX(), (int)drawObject.getY()));
|
|
|
+
|
|
|
+ currentpath.addPoint(new Point((int)drawObject.getCenter().getX(), (int)drawObject.getCenter().getY()));
|
|
|
currentpath.setObject2(drawObject);
|
|
|
paths.add(currentpath);
|
|
|
for(int i=0; i< 200; i++){
|
|
|
@@ -159,6 +160,7 @@ public class Terrain extends JPanel {
|
|
|
pathgenerate = 0;
|
|
|
return;
|
|
|
}else{
|
|
|
+ setCursor(new Cursor(Cursor.MOVE_CURSOR));
|
|
|
dragObject = drawObject;
|
|
|
selectedObject = dragObject;
|
|
|
oldPosition = new Point2D.Double(selectedObject.getX(), selectedObject.getY());
|
|
|
@@ -210,6 +212,7 @@ public class Terrain extends JPanel {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
|
|
|
selectedObject = null;
|
|
|
dragObject = null;
|
|
|
repaint();
|
|
|
@@ -219,20 +222,34 @@ public class Terrain extends JPanel {
|
|
|
addMouseMotionListener(new MouseMotionAdapter() {
|
|
|
public void mouseMoved(MouseEvent e){
|
|
|
lastMovedMousePosition = getClickPoint(e.getPoint());
|
|
|
+ if(pathgenerate >0){
|
|
|
+ setCursor(pathpoint);
|
|
|
+ }else{
|
|
|
+ for(DrawEngine drawObject: entities){
|
|
|
+ if(drawObject.contains(lastMovedMousePosition)){
|
|
|
+ setCursor(new Cursor(Cursor.HAND_CURSOR));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
|
|
|
+ }
|
|
|
}
|
|
|
@Override
|
|
|
public void mouseDragged(MouseEvent e) {
|
|
|
Point2D clickPoint = getClickPoint(e.getPoint());
|
|
|
if(dragObject != null){
|
|
|
if(SwingUtilities.isLeftMouseButton(e)){
|
|
|
+ setCursor(new Cursor(Cursor.MOVE_CURSOR));
|
|
|
dragObject.setX(dragObject.getX() - (lastClickPosition.getX() - clickPoint.getX()));
|
|
|
dragObject.setY(dragObject.getY() - (lastClickPosition.getY() - clickPoint.getY()));
|
|
|
}else if(SwingUtilities.isRightMouseButton(e)){
|
|
|
- dragObject.setRotation(dragObject.getRotation() + (lastClickPosition.getX() - clickPoint.getX() + lastClickPosition.getY() - clickPoint.getY()));
|
|
|
+ setCursor(rotate);
|
|
|
+ dragObject.setRotation(dragObject.getRotation() + (lastClickPosition.getX() - clickPoint.getX() + lastClickPosition.getY() - clickPoint.getY()));
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ setCursor(new Cursor(Cursor.MOVE_CURSOR));
|
|
|
cameraPoint = new Point2D.Double(
|
|
|
cameraPoint.getX() + (lastMousePosition.getX() - e.getX()),
|
|
|
cameraPoint.getY() + (lastMousePosition.getY() - e.getY())
|
|
|
@@ -438,4 +455,21 @@ public class Terrain extends JPanel {
|
|
|
public void addEntity(DrawEngine dragObject){
|
|
|
entities.add(dragObject);
|
|
|
}
|
|
|
+
|
|
|
+ public void createCustomCursors(){
|
|
|
+ Toolkit toolkit = Toolkit.getDefaultToolkit();
|
|
|
+ Image image = null;
|
|
|
+ try {
|
|
|
+ image = ImageIO.read(Window.class.getResource("/rotate.gif"));
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ rotate = toolkit.createCustomCursor(image, new Point(14,14), "Rotate");
|
|
|
+ try {
|
|
|
+ image = ImageIO.read(Window.class.getResource("/path.gif"));
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ pathpoint = toolkit.createCustomCursor(image, new Point(14,14), "Pathpoint");
|
|
|
+ }
|
|
|
}
|