summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteve <steveb9@u.washington.edu>2011-03-05 12:45:25 +0000
committerSteve <steveb9@u.washington.edu>2011-03-05 12:45:25 +0000
commitd991728a32705a66f101a489956e3bdf1deb61eb (patch)
tree032074817aa98a366373fc43bae82170bc2e00f8 /src
parent77031b4f9d903f0f17105d0ce1c43cd4bbb76e8e (diff)
more logic changes. almost right
Diffstat (limited to 'src')
-rw-r--r--src/tesseract/World.java42
1 files changed, 24 insertions, 18 deletions
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<CollisionInfo> 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));
}
-
}
}