From d991728a32705a66f101a489956e3bdf1deb61eb Mon Sep 17 00:00:00 2001 From: Steve Date: Sat, 5 Mar 2011 12:45:25 +0000 Subject: more logic changes. almost right --- src/tesseract/World.java | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/tesseract/World.java b/src/tesseract/World.java index eb30713..8323aef 100644 --- a/src/tesseract/World.java +++ b/src/tesseract/World.java @@ -261,53 +261,59 @@ public class World implements Observer { for (int j = i + 1; j < myObjects.size(); j++) { ArrayList collisions = CollisionDetector.calculateCollisions(myObjects.get(i),myObjects.get(j)); - if (collisions.size() > 0) { - //if 'i' side and a neighbor exists, transmit j object to that node + + //if 'i' side and a neighbor exists, transmit j object to that node + if (collisions.size() > 0 && myObjects.get(i) instanceof HalfSpace) { + if (myObjects.get(i).equals(my_side1) && myPeer.getPeerInDirection (my_side1.getPosition().getX(), my_side1.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side1.getPosition().getX(), my_side1.getPosition().getY()), myObjects.get(j)); - } - if (myObjects.get(i).equals(my_side2)&& myPeer.getPeerInDirection + myObjects.get(j).detach(); + }else if (myObjects.get(i).equals(my_side2)&& myPeer.getPeerInDirection (my_side2.getPosition().getX(), my_side2.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side2.getPosition().getX(), my_side2.getPosition().getY()), myObjects.get(j)); - } - if (myObjects.get(i).equals(my_side3)&& myPeer.getPeerInDirection + myObjects.get(j).detach(); + } else if (myObjects.get(i).equals(my_side3)&& myPeer.getPeerInDirection (my_side3.getPosition().getX(), my_side3.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side3.getPosition().getX(), my_side3.getPosition().getY()), myObjects.get(j)); - } - if (myObjects.get(i).equals(my_side4)&& myPeer.getPeerInDirection + myObjects.get(j).detach(); + } else if (myObjects.get(i).equals(my_side4)&& myPeer.getPeerInDirection (my_side4.getPosition().getX(), my_side4.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side4.getPosition().getX(), my_side4.getPosition().getY()), myObjects.get(j)); + myObjects.get(j).detach(); } - //if 'j' is a side transmit i object + + //if 'j' is a side transmit i object + } else if (collisions.size() > 0 && myObjects.get(j) instanceof HalfSpace) { + if (myObjects.get(j).equals(my_side1)&& myPeer.getPeerInDirection (my_side1.getPosition().getX(), my_side1.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side1.getPosition().getX(), my_side1.getPosition().getY()), myObjects.get(i)); - } - if (myObjects.get(j).equals(my_side2)&& myPeer.getPeerInDirection + myObjects.get(i).detach(); + } else if (myObjects.get(j).equals(my_side2)&& myPeer.getPeerInDirection (my_side2.getPosition().getX(), my_side2.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side2.getPosition().getX(), my_side2.getPosition().getY()), myObjects.get(i)); - } - if (myObjects.get(j).equals(my_side3)&& myPeer.getPeerInDirection + myObjects.get(i).detach(); + } else if (myObjects.get(j).equals(my_side3)&& myPeer.getPeerInDirection (my_side3.getPosition().getX(), my_side3.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side3.getPosition().getX(), my_side3.getPosition().getY()), myObjects.get(i)); - } - if (myObjects.get(j).equals(my_side4)&& myPeer.getPeerInDirection + myObjects.get(i).detach(); + } else if (myObjects.get(j).equals(my_side4)&& myPeer.getPeerInDirection (my_side4.getPosition().getX(), my_side4.getPosition().getY()) != null) { myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (my_side4.getPosition().getX(), my_side4.getPosition().getY()), myObjects.get(i)); - } else { - myObjects.get(i).resolveCollisions(myObjects.get(j)); + myObjects.get(i).detach(); } + } else if (collisions.size() > 0) { + myObjects.get(i).resolveCollisions(myObjects.get(j)); } - } } -- cgit v1.2.3