summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteve <steveb9@u.washington.edu>2011-03-05 11:48:01 +0000
committerSteve <steveb9@u.washington.edu>2011-03-05 11:48:01 +0000
commit7c1e3ab40065f139acc69dd8d4cd8215d8937dfb (patch)
treef3e8a4f2096893ec335741222db5479dcc3ed702 /src
parentb49ec8b9f00c98e07eaf210c1984f9314a8cd5b6 (diff)
Changed logic in tick, seems to work for neighboring node detection
Diffstat (limited to 'src')
-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));
}
}