diff options
author | Steve <steveb9@u.washington.edu> | 2011-03-06 11:06:48 +0000 |
---|---|---|
committer | Steve <steveb9@u.washington.edu> | 2011-03-06 11:06:48 +0000 |
commit | 8713db044a45f768b00beb73611143110fe426b3 (patch) | |
tree | 13392a17f6dfe90c31b86b45eac300b8d7e5d45f /src | |
parent | 63aa793e17cca81061dd9f4540e58f741771a65f (diff) |
Added size check of peers to fix Exception when no network
Diffstat (limited to 'src')
-rw-r--r-- | src/common/Peer.java | 4 | ||||
-rw-r--r-- | src/tesseract/World.java | 154 |
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 { |