001 /* 002 * botMessagesPanel.java 003 * 004 * Created on February 19, 2002, 11:24 AM 005 */ 006 007 package edu.tamu.gamebots.humanbot; 008 import javax.swing.*; 009 import java.util.*; 010 011 /** 012 * 013 * @author rtr7684 014 */ 015 public class BotMessagesPanel extends javax.swing.JPanel { 016 017 Object[] values = {"RunTo", "TurnToRot", "TurnToLoc", "SetWalk", "Stop", "Jump", "Strafe", "Rotate", "Shoot", "ChangeWeapon", "StopShoot", "Say", "ArbitraryMessage"}; 018 HumanBot bot; 019 020 /** Creates new form botMessagesPanel */ 021 public BotMessagesPanel() { 022 initComponents(); 023 } 024 025 public BotMessagesPanel(HumanBot HumanBot){ 026 bot = HumanBot; 027 initComponents(); 028 } 029 030 /** This method is called from within the constructor to 031 * initialize the form. 032 * WARNING: Do NOT modify this code. The content of this method is 033 * always regenerated by the Form Editor. 034 */ 035 private void initComponents() {//GEN-BEGIN:initComponents 036 jPanel1 = new javax.swing.JPanel(); 037 jPanel2 = new javax.swing.JPanel(); 038 jLabel1 = new javax.swing.JLabel(); 039 actionTypeComboBox = new JComboBox(values); 040 jLabel2 = new javax.swing.JLabel(); 041 argumentsTextField = new javax.swing.JTextField(); 042 jPanel3 = new javax.swing.JPanel(); 043 instructionLabel = new javax.swing.JLabel(); 044 jButton1 = new javax.swing.JButton(); 045 046 setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.X_AXIS)); 047 048 jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS)); 049 050 jPanel2.setLayout(new java.awt.GridLayout(2, 2)); 051 052 jLabel1.setText("Action Type: "); 053 jPanel2.add(jLabel1); 054 055 actionTypeComboBox.addActionListener(new java.awt.event.ActionListener() { 056 public void actionPerformed(java.awt.event.ActionEvent evt) { 057 actionTypeComboBoxActionPerformed(evt); 058 } 059 }); 060 061 jPanel2.add(actionTypeComboBox); 062 063 jLabel2.setText("Comma delimited arguments: "); 064 jPanel2.add(jLabel2); 065 066 jPanel2.add(argumentsTextField); 067 068 jPanel1.add(jPanel2); 069 070 instructionLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); 071 instructionLabel.setText("RunTo takes either: String-objectID OR location doubles-x,y,z"); 072 jPanel3.add(instructionLabel); 073 074 jPanel1.add(jPanel3); 075 076 add(jPanel1); 077 078 jButton1.setText("Send"); 079 jButton1.setMaximumSize(new java.awt.Dimension(63, 600)); 080 jButton1.setMinimumSize(new java.awt.Dimension(81, 27)); 081 jButton1.addActionListener(new java.awt.event.ActionListener() { 082 public void actionPerformed(java.awt.event.ActionEvent evt) { 083 jButton1ActionPerformed(evt); 084 } 085 }); 086 087 add(jButton1); 088 089 }//GEN-END:initComponents 090 091 private void actionTypeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_actionTypeComboBoxActionPerformed 092 if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("RunTo")){ 093 argumentsTextField.setEditable(true); 094 instructionLabel.setText("RunTo takes either: String-objectID OR location doubles-x,y,z"); 095 } 096 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToRot")){ 097 argumentsTextField.setEditable(true); 098 instructionLabel.setText("Arguments(3): pitch,yaw,roll"); 099 } 100 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToLoc")){ 101 argumentsTextField.setEditable(true); 102 instructionLabel.setText("Arguments(3): x,y,z"); 103 } 104 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("SetWalk")){ 105 argumentsTextField.setEditable(true); 106 instructionLabel.setText("Arguments(1): True or False to walk or run, respectively"); 107 } 108 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Stop")){ 109 argumentsTextField.setText(""); 110 argumentsTextField.setEditable(false); 111 instructionLabel.setText("No Arguments"); 112 } 113 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Jump")){ 114 argumentsTextField.setText(""); 115 argumentsTextField.setEditable(false); 116 instructionLabel.setText("No Arguments"); 117 } 118 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Strafe")){ 119 argumentsTextField.setEditable(true); 120 instructionLabel.setText("Arguments(4): x,y,z(target),objectIDToface"); 121 } 122 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Rotate")){ 123 argumentsTextField.setEditable(true); 124 instructionLabel.setText("Arguments(1): amount"); 125 } 126 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Shoot")){ 127 argumentsTextField.setEditable(true); 128 instructionLabel.setText("No Arguments OR Arguments(5): x,y,z(target),targetID,boolean(altFire)"); 129 } 130 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ChangeWeapon")){ 131 argumentsTextField.setEditable(true); 132 instructionLabel.setText("Arguments(1): weaponID "); 133 } 134 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("StopShoot")){ 135 argumentsTextField.setText(""); 136 argumentsTextField.setEditable(false); 137 instructionLabel.setText("No Arguments"); 138 } 139 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ArbitraryMessage")){ 140 argumentsTextField.setText(""); 141 argumentsTextField.setEditable(true); 142 instructionLabel.setText("ArbitraryMessage"); 143 } 144 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Say")){ 145 argumentsTextField.setText(""); 146 argumentsTextField.setEditable(true); 147 instructionLabel.setText("Arguments(2) - Message, Global (True = said to both teams)"); 148 } 149 }//GEN-LAST:event_actionTypeComboBoxActionPerformed 150 151 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed 152 if(bot != null){ 153 StringTokenizer strtok = new StringTokenizer(argumentsTextField.getText(),","); 154 if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("RunTo")){ 155 if(strtok.countTokens() == 3){ 156 double x = Double.parseDouble(strtok.nextToken()); 157 double y = Double.parseDouble(strtok.nextToken()); 158 double z = Double.parseDouble(strtok.nextToken()); 159 bot.runTo(x,y,z); 160 } 161 else if(strtok.countTokens() == 1){ 162 String id = strtok.nextToken(); 163 bot.runTo(id); 164 } 165 } 166 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToRot")){ 167 if(strtok.countTokens() == 3){ 168 double pitch = Double.parseDouble(strtok.nextToken()); 169 double yaw = Double.parseDouble(strtok.nextToken()); 170 double roll = Double.parseDouble(strtok.nextToken()); 171 bot.turnTo(pitch,yaw,roll); 172 } 173 } 174 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToLoc")){ 175 if(strtok.countTokens() == 3){ 176 double x = Double.parseDouble(strtok.nextToken()); 177 double y = Double.parseDouble(strtok.nextToken()); 178 double z = Double.parseDouble(strtok.nextToken()); 179 bot.turnToLoc(x,y,z); 180 } 181 } 182 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("SetWalk")){ 183 if(strtok.countTokens() == 1){ 184 bot.setWalk(Boolean.getBoolean(strtok.nextToken())); 185 } 186 }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Stop")){ 187 bot.stop(); 188 }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Jump")){ 189 bot.jump(); 190 }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Strafe")){ 191 if(strtok.countTokens() == 4){ 192 double x = Double.parseDouble(strtok.nextToken()); 193 double y = Double.parseDouble(strtok.nextToken()); 194 double z = Double.parseDouble(strtok.nextToken()); 195 String targetID = strtok.nextToken(); 196 bot.strafe(x,y,z,targetID); 197 } 198 }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Rotate")){ 199 if(strtok.countTokens() == 1){ 200 bot.rotate(Double.parseDouble(strtok.nextToken())); 201 } 202 }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Shoot")){ 203 if(strtok.countTokens() == 5){ 204 double x = Double.parseDouble(strtok.nextToken()); 205 double y = Double.parseDouble(strtok.nextToken()); 206 double z = Double.parseDouble(strtok.nextToken()); 207 String targetID = strtok.nextToken(); 208 boolean altFire = Boolean.valueOf(strtok.nextToken().trim()).booleanValue(); 209 bot.shoot(x,y,z,targetID,altFire); 210 } 211 else if(strtok.countTokens() == 0){ 212 bot.shoot(); 213 } 214 }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ChangeWeapon")){ 215 if(strtok.countTokens() == 1){ 216 bot.changeWeapon(strtok.nextToken()); 217 } 218 }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("StopShoot")){ 219 bot.stopShoot(); 220 } 221 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ArbitraryMessage")){ 222 bot.getClient().sendMessage(argumentsTextField.getText()); 223 } 224 else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Say")){ 225 if(strtok.countTokens() == 2){ 226 bot.say(strtok.nextToken(), Boolean.valueOf(strtok.nextToken().trim()).booleanValue()); 227 } 228 } 229 } 230 }//GEN-LAST:event_jButton1ActionPerformed 231 232 233 // Variables declaration - do not modify//GEN-BEGIN:variables 234 private javax.swing.JPanel jPanel3; 235 private javax.swing.JPanel jPanel2; 236 private javax.swing.JPanel jPanel1; 237 private javax.swing.JButton jButton1; 238 private javax.swing.JTextField argumentsTextField; 239 private javax.swing.JComboBox actionTypeComboBox; 240 private javax.swing.JLabel jLabel2; 241 private javax.swing.JLabel jLabel1; 242 private javax.swing.JLabel instructionLabel; 243 // End of variables declaration//GEN-END:variables 244 245 }