summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tesseract/World.java42
1 files changed, 18 insertions, 24 deletions
diff --git a/src/tesseract/World.java b/src/tesseract/World.java
index 6f8e446..11e2677 100644
--- a/src/tesseract/World.java
+++ b/src/tesseract/World.java
@@ -28,6 +28,7 @@ import common.CollidableObject;
import common.CollisionDetector;
import common.CollisionInfo;
import common.Peer;
+import common.PeerInformation;
/**
* Model of the 3D world.
@@ -257,6 +258,15 @@ public class World implements Observer {
*/
// Collision Detection with Aldens mar4 suggestions
+ PeerInformation neighbor1 = myPeer.getPeerInDirection(my_side1.getPosition().getX(),
+ my_side1.getPosition().getY());
+ PeerInformation neighbor2 = myPeer.getPeerInDirection(my_side2.getPosition().getX(),
+ my_side2.getPosition().getY());
+ PeerInformation neighbor3 = myPeer.getPeerInDirection(my_side3.getPosition().getX(),
+ my_side3.getPosition().getY());
+ PeerInformation neighbor4 = myPeer.getPeerInDirection(my_side4.getPosition().getX(),
+ my_side4.getPosition().getY());
+
for (int i = 0; i < myObjects.size() - 1; i++) {
for (int j = i + 1; j < myObjects.size(); j++) {
ArrayList<CollisionInfo> collisions =
@@ -265,63 +275,47 @@ public class World implements Observer {
//if 'i' is a side and a neighbor exists, transmit j object to that node
if (collisions.size() > 0) {
- if (myObjects.get(i).equals(my_side1) && myPeer.getPeerInDirection
- (my_side1.getPosition().getX(), my_side1.getPosition().getY()) != null) {
+ if (myObjects.get(i).equals(my_side1) && neighbor1 != null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side1.getPosition().getX(), my_side1.getPosition().getY()), myObjects.get(j));
myObjects.get(j).detach();
- myObjects.remove(myObjects.get(j));
}
- if (myObjects.get(i).equals(my_side2)&& myPeer.getPeerInDirection
- (my_side2.getPosition().getX(), my_side2.getPosition().getY()) != null) {
+ if (myObjects.get(i).equals(my_side2)&& neighbor2 != null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side2.getPosition().getX(), my_side2.getPosition().getY()), myObjects.get(j));
myObjects.get(j).detach();
- myObjects.remove(myObjects.get(j));
}
- if (myObjects.get(i).equals(my_side3)&& myPeer.getPeerInDirection
- (my_side3.getPosition().getX(), my_side3.getPosition().getY()) != null) {
+ if (myObjects.get(i).equals(my_side3)&& neighbor3 != null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side3.getPosition().getX(), my_side3.getPosition().getY()), myObjects.get(j));
myObjects.get(j).detach();
- myObjects.remove(myObjects.get(j));
}
- if (myObjects.get(i).equals(my_side4)&& myPeer.getPeerInDirection
- (my_side4.getPosition().getX(), my_side4.getPosition().getY()) != null) {
+ if (myObjects.get(i).equals(my_side4)&& neighbor4 != null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side4.getPosition().getX(), my_side4.getPosition().getY()), myObjects.get(j));
myObjects.get(j).detach();
- myObjects.remove(myObjects.get(j));
}
//if 'j' is a side transmit i object
- if (myObjects.get(j).equals(my_side1)&& myPeer.getPeerInDirection
- (my_side1.getPosition().getX(), my_side1.getPosition().getY()) != null) {
+ if (myObjects.get(j).equals(my_side1)&& neighbor1 != null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side1.getPosition().getX(), my_side1.getPosition().getY()), myObjects.get(i));
myObjects.get(i).detach();
- myObjects.remove(myObjects.get(i));
}
- if (myObjects.get(j).equals(my_side2)&& myPeer.getPeerInDirection
- (my_side2.getPosition().getX(), my_side2.getPosition().getY()) != null) {
+ if (myObjects.get(j).equals(my_side2)&& neighbor2 != null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side2.getPosition().getX(), my_side2.getPosition().getY()), myObjects.get(i));
myObjects.get(i).detach();
- myObjects.remove(myObjects.get(i));
}
- if (myObjects.get(j).equals(my_side3)&& myPeer.getPeerInDirection
- (my_side3.getPosition().getX(), my_side3.getPosition().getY()) != null) {
+ if (myObjects.get(j).equals(my_side3)&& neighbor3 != null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side3.getPosition().getX(), my_side3.getPosition().getY()), myObjects.get(i));
myObjects.get(i).detach();
- myObjects.remove(myObjects.get(i));
}
- if (myObjects.get(j).equals(my_side4)&& myPeer.getPeerInDirection
- (my_side4.getPosition().getX(), my_side4.getPosition().getY()) != null) {
+ if (myObjects.get(j).equals(my_side4)&& neighbor4!= null) {
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(my_side4.getPosition().getX(), my_side4.getPosition().getY()), myObjects.get(i));
myObjects.get(i).detach();
- myObjects.remove(myObjects.get(i));
}
myObjects.get(i).resolveCollisions(myObjects.get(j));