private void loadPreferences(ISettingsManager robocodeProperties) { getEnableSoundCheckBox().setSelected(robocodeProperties.getOptionsSoundEnableSound()); getEnableGunshotCheckBox().setSelected(robocodeProperties.getOptionsSoundEnableGunshot()); getEnableBulletHitCheckBox().setSelected(robocodeProperties.getOptionsSoundEnableBulletHit()); getEnableRobotDeathCheckBox().setSelected(robocodeProperties.getOptionsSoundEnableRobotDeath()); getEnableRobotCollisionCheckBox() .setSelected(robocodeProperties.getOptionsSoundEnableRobotCollision()); getEnableWallCollisionCheckBox() .setSelected(robocodeProperties.getOptionsSoundEnableWallCollision()); getEnableMixerVolumeCheckBox() .setSelected(robocodeProperties.getOptionsSoundEnableMixerVolume()); getEnableMixerPanCheckBox().setSelected(robocodeProperties.getOptionsSoundEnableMixerPan()); setMixerCompoBox(robocodeProperties.getOptionsSoundMixer()); }
public void storePreferences() { ISettingsManager props = properties; props.setOptionsRenderingAntialiasing(optionsRenderingAntialiasingComboBox.getSelectedIndex()); props.setOptionsRenderingTextAntialiasing( optionsRenderingTextAntialiasingComboBox.getSelectedIndex()); props.setOptionsRenderingMethod(optionsRenderingMethodComboBox.getSelectedIndex()); props.setOptionsRenderingNoBuffers(optionsRenderingNoBuffersComboBox.getSelectedIndex() + 1); props.setOptionsRenderingBufferImages(optionsRenderingBufferImagesCheckBox.isSelected()); props.setOptionsRenderingForceBulletColor( optionsRenderingForceBulletColorCheckBox.isSelected()); properties.saveProperties(); }
public RankingDialog( IWindowManager windowManager, ISettingsManager settingsManager, MenuBar menu) { super(settingsManager.getOptionsCommonDontHideRankings() ? null : windowManager, false); initialize(); this.windowManager = windowManager; battleObserver = new BattleObserver(); timerTask = new Timer(1000 / 2, new TimerTask()); snapshot = new AtomicReference<ITurnSnapshot>(); lastRows = 0; tableModel = new BattleRankingTableModel(); this.menu = menu; setTitle("Ranking"); }
private void loadPreferences(ISettingsManager props) { getOptionsRenderingAntialiasingComboBox() .setSelectedIndex(props.getOptionsRenderingAntialiasing()); getOptionsRenderingTextAntialiasingComboBox() .setSelectedIndex(props.getOptionsRenderingTextAntialiasing()); getOptionsRenderingMethodComboBox().setSelectedIndex(props.getOptionsRenderingMethod()); getOptionsRenderingNoBuffersComboBox() .setSelectedIndex(props.getOptionsRenderingNoBuffers() - 1); getOptionsRenderingBufferImagesCheckBox().setSelected(props.getOptionsRenderingBufferImages()); getOptionsRenderingForceBulletColorCheckBox() .setSelected(props.getOptionsRenderingForceBulletColor()); }
public void loadSetup(String[] args) { final String nosecMessage = "Robocode is running without a security manager.\n" + "Robots have full access to your system.\n" + "You should only run robots which you trust!"; final String exMessage = "Robocode is running in experimental mode.\n" + "Robots have access to their IRobotPeer interfaces.\n" + "You should only run robots which you trust!"; if (RobocodeProperties.isSecurityOff()) { Logger.logWarning(nosecMessage); } if (System.getProperty("EXPERIMENTAL", "false").equals("true")) { Logger.logWarning(exMessage); } setup.tps = properties.getOptionsBattleDesiredTPS(); // Disable canonical file path cache under Windows as it causes trouble when returning // paths with differently-capitalized file names. if (System.getProperty("os.name").toLowerCase().startsWith("windows ")) { System.setProperty("sun.io.useCanonCaches", "false"); } // Initialize the system property so the AWT does not use headless mode meaning that the // GUI (Awt and Swing) is enabled per default when running starting Robocode. // It might be set to true later, if the -nodisplay option is set (in the setEnableGUI method). // Read more about headless mode here: // http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/ System.setProperty("java.awt.headless", "false"); for (int i = 0; i < args.length; i++) { String currentArg = args[i]; if (currentArg.equalsIgnoreCase("-cwd") && (i < args.length + 1)) { changeDirectory(args[i + 1]); i++; } else if (currentArg.equalsIgnoreCase("-battle") && (i < args.length + 1)) { setup.battleFilename = args[i + 1]; i++; } else if (currentArg.equalsIgnoreCase("-record") && (i < args.length + 1)) { setup.recordFilename = args[i + 1]; i++; } else if (currentArg.equalsIgnoreCase("-recordXML") && (i < args.length + 1)) { setup.recordXmlFilename = args[i + 1]; i++; } else if (currentArg.equalsIgnoreCase("-replay") && (i < args.length + 1)) { setup.replayFilename = args[i + 1]; i++; } else if (currentArg.equalsIgnoreCase("-results") && (i < args.length + 1)) { setup.resultsFilename = args[i + 1]; i++; } else if (currentArg.equalsIgnoreCase("-tps") && (i < args.length + 1)) { setup.tps = Integer.parseInt(args[i + 1]); if (setup.tps < 1) { Logger.logError("tps must be > 0"); System.exit(8); } i++; } else if (currentArg.equalsIgnoreCase("-minimize")) { setup.minimize = true; } else if (currentArg.equalsIgnoreCase("-nodisplay")) { if (windowManager != null) { windowManager.setEnableGUI(false); } if (soundManager != null) { soundManager.setEnableSound(false); } setup.tps = 10000; // set TPS to maximum } else if (currentArg.equalsIgnoreCase("-nosound")) { if (soundManager != null) { soundManager.setEnableSound(false); } } else if (currentArg.equals("-?") || currentArg.equalsIgnoreCase("-help")) { printUsage(); System.exit(0); } else { Logger.logError("Not understood: " + currentArg); printUsage(); System.exit(8); } } File robotsDir = FileUtil.getRobotsDir(); if (robotsDir == null) { System.err.println("No valid robot directory is specified"); System.exit(8); } else if (!(robotsDir.exists() && robotsDir.isDirectory())) { System.err.println('\'' + robotsDir.getAbsolutePath() + "' is not a valid robot directory"); System.exit(8); } // The Default Toolkit must be set as soon as we know if we are going to use headless mode or // not. // That is if the toolkit must be headless or not (GUI on/off). If we are running in headless // mode // from this point, a HeadlessException will be thrown if we access a AWT/Swing component. // Read more about headless mode here: // http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/ Toolkit.getDefaultToolkit(); }
public void run() { Thread.setDefaultUncaughtExceptionHandler( new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable t) { t.printStackTrace(); } }); try { hostManager.initSecurity(); // Set the Look and Feel (LAF) if (windowManager != null && windowManager.isGUIEnabled()) { windowManager.init(); } properties.setOptionsBattleDesiredTPS(setup.tps); battleManager.addListener(battleObserver); if (windowManager != null && windowManager.isGUIEnabled()) { if (!setup.minimize && setup.battleFilename == null && soundManager != null) { soundManager.playThemeMusic(); windowManager.showSplashScreen(); } windowManager.showRobocodeFrame(true, setup.minimize); windowManager.showBarCodeScanDialog(true); // Play the intro battle if a battle file is not specified and this is the first time // Robocode is being run if (setup.battleFilename == null && versionManager.isLastRunVersionChanged()) { properties.saveProperties(); windowManager.runIntroBattle(); } } final boolean enableCLIRecording = (setup.recordFilename != null || setup.recordXmlFilename != null); // Note: At this point the GUI should be opened (if enabled) before starting the battle from a // battle file if (setup.battleFilename != null) { if (setup.replayFilename != null) { System.err.println( "You cannot run both a battle and replay a battle record in the same time."); System.exit(8); } setup.exitOnComplete = true; battleManager.setBattleFilename(setup.battleFilename); if (new File(battleManager.getBattleFilename()).exists()) { battleManager.startNewBattle( battleManager.loadBattleProperties(), false, enableCLIRecording); } else { System.err.println( "The specified battle file '" + setup.battleFilename + "' was not found"); System.exit(8); } } else if (setup.replayFilename != null) { setup.exitOnComplete = true; if (setup.replayFilename.toLowerCase().endsWith("xml.zip")) { recordManager.loadRecord(setup.replayFilename, BattleRecordFormat.XML_ZIP); } else { recordManager.loadRecord(setup.replayFilename, BattleRecordFormat.BINARY_ZIP); } if (new File(setup.replayFilename).exists()) { battleManager.replay(); } else { System.err.println( "The specified battle record file '" + setup.replayFilename + "' was not found"); System.exit(8); } } } catch (Throwable e) { Logger.logError(e); } }
public void storePreferences() { ISettingsManager props = properties; props.setOptionsSoundEnableSound(getEnableSoundCheckBox().isSelected()); props.setOptionsSoundEnableGunshot(getEnableGunshotCheckBox().isSelected()); props.setOptionsSoundEnableBulletHit(getEnableBulletHitCheckBox().isSelected()); props.setOptionsSoundEnableRobotDeath(getEnableRobotDeathCheckBox().isSelected()); props.setOptionsSoundEnableRobotCollision(getEnableRobotCollisionCheckBox().isSelected()); props.setOptionsSoundEnableWallCollision(getEnableWallCollisionCheckBox().isSelected()); props.setOptionsSoundEnableMixerVolume(getEnableMixerVolumeCheckBox().isSelected()); props.setOptionsSoundEnableMixerPan(getEnableMixerPanCheckBox().isSelected()); String mixerClassName = null; Mixer.Info mixerInfo = (Mixer.Info) getMixerComboBox().getSelectedItem(); if (mixerInfo != null) { Mixer mixer = AudioSystem.getMixer((Mixer.Info) getMixerComboBox().getSelectedItem()); if (mixer != null) { mixerClassName = mixer.getClass().getSimpleName(); } } if (mixerClassName != null) { props.setOptionsSoundMixer(mixerClassName); } properties.saveProperties(); }