summaryrefslogtreecommitdiff
path: root/src/tesseract/objects/remote/RemoteObjectMenu.java
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2011-03-17 06:17:12 +0000
committerJesse Morgan <jesse@jesterpm.net>2011-03-17 06:17:12 +0000
commita1ff4ed304654dc15674539556ab23457c2c22cd (patch)
tree221612f0be91c6d04d9263d7716b53fa4ad5a948 /src/tesseract/objects/remote/RemoteObjectMenu.java
parent191bccc3d1dfb7ca728df47ae75cfb12fcaee183 (diff)
Remote Control and Fixed the tank.
Diffstat (limited to 'src/tesseract/objects/remote/RemoteObjectMenu.java')
-rw-r--r--src/tesseract/objects/remote/RemoteObjectMenu.java24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/tesseract/objects/remote/RemoteObjectMenu.java b/src/tesseract/objects/remote/RemoteObjectMenu.java
index bb076d1..610c433 100644
--- a/src/tesseract/objects/remote/RemoteObjectMenu.java
+++ b/src/tesseract/objects/remote/RemoteObjectMenu.java
@@ -3,6 +3,10 @@ package tesseract.objects.remote;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.net.UnknownHostException;
import java.util.ArrayList;
import javax.swing.JCheckBoxMenuItem;
@@ -21,12 +25,25 @@ public class RemoteObjectMenu extends JMenu {
private World myWorld;
+ private RemoteObjectCommunicator myCommunicator;
+
+ private SocketAddress myHome;
+
public RemoteObjectMenu(final World theWorld) {
super("RC Objects");
// Added by Steve: Fixes viewing menu problem with Canvas3D on both my windows machines
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
myWorld = theWorld;
myControlledObjects = new ArrayList<RemoteObject>();
+ myCommunicator = new RemoteObjectCommunicator();
+ new Thread(myCommunicator).start();
+
+ try {
+ myHome = new InetSocketAddress(InetAddress.getLocalHost(), myCommunicator.getPort());
+
+ } catch (UnknownHostException e) {
+ System.err.println(e);
+ }
// Objects that can be added
add(new TankMenuItem(this));
@@ -56,13 +73,18 @@ public class RemoteObjectMenu extends JMenu {
myWorld.addObject(theObject);
myControlledObjects.add(theObject);
+ theObject.setHome(myHome);
item.setSelected(true);
add(item);
}
public void sendKeyToObjects(final KeyEvent e) {
for (RemoteObject o : myControlledObjects) {
- o.sendKeyEvent(e);
+ if (!myCommunicator.sendKeyToObject(o.getId(), e)) {
+ System.out.println("Send failed to " + o.getId());
+ //myControlledObjects.remove(o);
+ // TODO : Remove from menu.
+ }
}
}
}