summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve <steveb9@u.washington.edu>2011-03-06 11:06:48 +0000
committerSteve <steveb9@u.washington.edu>2011-03-06 11:06:48 +0000
commit8713db044a45f768b00beb73611143110fe426b3 (patch)
tree13392a17f6dfe90c31b86b45eac300b8d7e5d45f
parent63aa793e17cca81061dd9f4540e58f741771a65f (diff)
Added size check of peers to fix Exception when no network
-rw-r--r--src/common/Peer.java4
-rw-r--r--src/tesseract/World.java154
2 files changed, 111 insertions, 47 deletions
diff --git a/src/common/Peer.java b/src/common/Peer.java
index 14ca0b8..2ba0d83 100644
--- a/src/common/Peer.java
+++ b/src/common/Peer.java
@@ -23,8 +23,8 @@ public class Peer extends Observable {
*/
public static final int DEFAULT_SERVER_PORT = 5507;
- private PeerInformation myInfo;
- private ArrayList<PeerInformation> peers;
+ private PeerInformation myInfo = new PeerInformation();
+ private ArrayList<PeerInformation> peers = new ArrayList<PeerInformation>();
private ServerSocket serverSocket;
private SwingWorker<Object,Object> worker;
diff --git a/src/tesseract/World.java b/src/tesseract/World.java
index c566824..456fed6 100644
--- a/src/tesseract/World.java
+++ b/src/tesseract/World.java
@@ -30,6 +30,7 @@ import common.CollidableObject;
import common.CollisionDetector;
import common.CollisionInfo;
import common.Peer;
+import common.PeerInformation;
/**
* Model of the 3D world.
@@ -348,84 +349,147 @@ public class World implements Observer {
}
//if 'i' side and a neighbor exists, transmit j object to that node
- if (i_object.equals(my_side1) && myPeer.getPeerInDirection
+ if (i_object.equals(my_side1)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+ System.out.println("Hit Side 1" + i_object.getPosition());
+ PeerInformation info2 = myPeer.getPeerInDirection(j_object.getVelocity().getX(), j_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info2);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ (j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object);
+ indexToRemove = j;
+ j_object.detach();
+
+
+ }
+ i_object.resolveCollisions(j_object);
+ }
+ //if 'i' side and a neighbor exists, transmit j object to that node
+ /*if (i_object.equals(my_side1) && myPeer.getPeerInDirection
(j_object.getVelocity().getX(), j_object.getVelocity().getZ()) != null) {
+
System.out.println("Hit Side 1" + i_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(j_object.getVelocity().getX(), j_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object);
indexToRemove = j;
j_object.detach();
i_object.resolveCollisions(j_object);
- }
- if (i_object.equals(my_side2) && myPeer.getPeerInDirection
- (j_object.getVelocity().getX(), j_object.getVelocity().getZ()) != null) {
- System.out.println("Hit Side 2" + i_object.getPosition());
- myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
- (j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object);
- indexToRemove = j;
- j_object.detach();
+ } */
+ if (i_object.equals(my_side2)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+
+ System.out.println("Hit Side 2" + i_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(j_object.getVelocity().getX(), j_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ (j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object);
+ indexToRemove = j;
+ j_object.detach();
+ }
i_object.resolveCollisions(j_object);
}
- if (i_object.equals(my_side3) && myPeer.getPeerInDirection
- (j_object.getVelocity().getX(), j_object.getVelocity().getZ()) != null) {
- System.out.println("Hit Side 3" + i_object.getPosition());
- myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ if (i_object.equals(my_side3)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+
+ System.out.println("Hit Side 3" + i_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(j_object.getVelocity().getX(), j_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object);
- indexToRemove = j;
- j_object.detach();
+ indexToRemove = j;
+ j_object.detach();
+ }
i_object.resolveCollisions(j_object);
}
- if (i_object.equals(my_side4) && myPeer.getPeerInDirection
- (j_object.getVelocity().getX(), j_object.getVelocity().getZ()) != null) {
- System.out.println("Hit Side 4" + i_object.getPosition());
- myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ if (i_object.equals(my_side4)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+
+ System.out.println("Hit Side 4" + i_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(j_object.getVelocity().getX(), j_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object);
- indexToRemove = j;
- j_object.detach();
+ indexToRemove = j;
+ j_object.detach();
+ }
i_object.resolveCollisions(j_object);
}
//if 'j' side and a neighbor exists, transmit i object to that node
- if (j_object.equals(my_side1) && myPeer.getPeerInDirection
- (i_object.getVelocity().getX(), i_object.getVelocity().getZ()) != null) {
- System.out.println("Hit Side 1" + j_object.getPosition());
- myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ if (j_object.equals(my_side1)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+
+ System.out.println("Hit Side 1" + j_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(i_object.getVelocity().getX(), i_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object);
- indexToRemove = i;
- i_object.detach();
+ indexToRemove = i;
+ i_object.detach();
+ }
j_object.resolveCollisions(i_object);
}
- if (j_object.equals(my_side2) && myPeer.getPeerInDirection
- (i_object.getVelocity().getX(), i_object.getVelocity().getZ()) != null) {
- System.out.println("Hit Side 2" + i_object.getPosition());
- myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ if (j_object.equals(my_side2)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+
+ System.out.println("Hit Side 2" + i_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(i_object.getVelocity().getX(), i_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object);
- indexToRemove = i;
- i_object.detach();
+ indexToRemove = i;
+ i_object.detach();
+ }
j_object.resolveCollisions(i_object);
}
- if (j_object.equals(my_side3) && myPeer.getPeerInDirection
- (i_object.getVelocity().getX(), i_object.getVelocity().getZ()) != null) {
- System.out.println("Hit Side 3" + j_object.getPosition());
- myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ if (j_object.equals(my_side3)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+
+ System.out.println("Hit Side 3" + j_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(i_object.getVelocity().getX(), i_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object);
- indexToRemove = i;
- i_object.detach();
+ indexToRemove = i;
+ i_object.detach();
+ }
j_object.resolveCollisions(i_object);
}
- if (j_object.equals(my_side4) && myPeer.getPeerInDirection
- (i_object.getVelocity().getX(), i_object.getVelocity().getZ()) != null) {
- System.out.println("Hit Side 4" + j_object.getPosition());
- myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
+ if (j_object.equals(my_side4)) {
+ int test = myPeer.getPeerSize();
+ if(test > 0) {
+
+ System.out.println("Hit Side 4" + j_object.getPosition());
+ PeerInformation info = myPeer.getPeerInDirection(i_object.getVelocity().getX(), i_object.getVelocity().getZ());
+ System.out.println("PeerInfo: " + info);
+
+ myPeer.sendPayloadToPeer(myPeer.getPeerInDirection
(i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object);
- indexToRemove = i;
- i_object.detach();
+ indexToRemove = i;
+ i_object.detach();
+ }
j_object.resolveCollisions(i_object);
}
} else {