diff options
Diffstat (limited to 'src/tesseract')
-rw-r--r-- | src/tesseract/objects/blimp/Blimp.java | 15 | ||||
-rw-r--r-- | src/tesseract/objects/remote/RemoteObject.java | 10 | ||||
-rw-r--r-- | src/tesseract/objects/tank/Tank.java | 6 |
3 files changed, 20 insertions, 11 deletions
diff --git a/src/tesseract/objects/blimp/Blimp.java b/src/tesseract/objects/blimp/Blimp.java index bdc62d0..517bf89 100644 --- a/src/tesseract/objects/blimp/Blimp.java +++ b/src/tesseract/objects/blimp/Blimp.java @@ -1,6 +1,9 @@ package tesseract.objects.blimp;
import java.awt.event.KeyEvent;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import javax.media.j3d.Appearance;
import javax.media.j3d.ColoringAttributes;
@@ -45,7 +48,8 @@ public class Blimp extends RemoteObject { private final int MAX_TURN = 32;
private final float MAX_SPEED = .3f;
private Vector3f[] vectors;
- private TransformGroup my_blimp;
+
+ transient private TransformGroup my_blimp;
/**
* Use to scale all object together
@@ -457,5 +461,14 @@ public class Blimp extends RemoteObject { super.updateState(duration);
}
+ private void readObject(ObjectInputStream in)
+ throws IOException, ClassNotFoundException {
+ in.defaultReadObject();
+
+ // Find those pesky references
+ my_blimp = (TransformGroup) TG.getChild(0);
+ }
+
+
}
diff --git a/src/tesseract/objects/remote/RemoteObject.java b/src/tesseract/objects/remote/RemoteObject.java index 32f5a11..7ac1e72 100644 --- a/src/tesseract/objects/remote/RemoteObject.java +++ b/src/tesseract/objects/remote/RemoteObject.java @@ -8,6 +8,7 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.Socket; import java.net.SocketAddress; +import java.net.SocketException; import java.util.UUID; import javax.vecmath.Vector3f; @@ -126,9 +127,8 @@ public abstract class RemoteObject extends PhysicalObject { } - private void writeObject(ObjectOutputStream out) - throws IOException { - out.defaultWriteObject(); + public void detach() { + super.detach(); myListener.stop(); } @@ -148,7 +148,6 @@ public abstract class RemoteObject extends PhysicalObject { mySocket = new Socket(); try { - System.out.println("Connecting to " + myHome); mySocket.connect(myHome); // Send id @@ -168,6 +167,9 @@ public abstract class RemoteObject extends PhysicalObject { sendKeyEvent(event); + } catch (SocketException e) { + // Socket closed from transportation. + } catch (Exception e) { System.err.println("Could not read KeyEvent: " + e); break; diff --git a/src/tesseract/objects/tank/Tank.java b/src/tesseract/objects/tank/Tank.java index 4edcb82..50a0b10 100644 --- a/src/tesseract/objects/tank/Tank.java +++ b/src/tesseract/objects/tank/Tank.java @@ -329,12 +329,6 @@ public class Tank extends RemoteObject { super.updateState(duration);
}
-
- private void writeObject(ObjectOutputStream out)
- throws IOException {
- out.defaultWriteObject();
- }
-
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
|