summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tesseract/World.java37
1 files changed, 26 insertions, 11 deletions
diff --git a/src/tesseract/World.java b/src/tesseract/World.java
index ad55819..eb30713 100644
--- a/src/tesseract/World.java
+++ b/src/tesseract/World.java
@@ -262,35 +262,50 @@ public class World implements Observer {
ArrayList<CollisionInfo> collisions =
CollisionDetector.calculateCollisions(myObjects.get(i),myObjects.get(j));
if (collisions.size() > 0) {
- //if 'i' is a side transmit j object
- if (myObjects.get(i).equals(my_side1)) {
+ //if 'i' side and a neighbor exists, transmit j object to that node
+ 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));
- } else if (myObjects.get(i).equals(my_side2)) {
+ }
+ 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));
- } else if (myObjects.get(i).equals(my_side3)) {
+ }
+ 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));
- } else if (myObjects.get(i).equals(my_side4)) {
+ }
+ 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));
-
+ }
//if 'j' is a side transmit i object
- } else if (myObjects.get(j).equals(my_side1)) {
+ 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));
- } else if (myObjects.get(j).equals(my_side2)) {
+ }
+ 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));
- } else if (myObjects.get(j).equals(my_side3)) {
+ }
+ 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));
- } else if (myObjects.get(j).equals(my_side4)) {
+ }
+ 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).resolveCollisions(myObjects.get(j));
}
}