private int getIntFromColor(final Color COLOR) { String hex = COLOR.toString(); StringBuilder intValue = new StringBuilder(10); intValue.append(hex.substring(8, 10)); intValue.append(hex.substring(2, 8)); // System.out.println((int) (Long.parseLong(intValue.toString(), 16) - 0x100000000l)); return (int) Long.parseLong(intValue.toString(), 16); }
@FXML private void playerSetup(ActionEvent e) throws NullPointerException { Stage newStage = new Stage(); // try { if (e.getSource() == nextButton2) { String name = playerName.getText(); String race = raceChoice.getSelectionModel().getSelectedItem().toString(); if (race.length() > 8) { race = race.toUpperCase().substring(0, race.indexOf(" ")); } else { race = race.toUpperCase(); } Player.Race r = Player.Race.valueOf(race); Color color = colorPick.getValue(); // creating Player Player p = new Player(name, r, color.toString()); players[count - 1] = p; if (players[players.length - 1] != null) { // when players array is full, begins game turns Turns gameTurns = new Turns(players); } if (name.equals("")) { // check if player entered a name Launcher.primaryStage.setScene(Launcher.errorMessage); Launcher.primaryStage.setTitle("Enter name!"); } else if (playerColors.contains(color)) { Launcher.primaryStage.setScene(Launcher.errorMessage); Launcher.primaryStage.setTitle("Choose new color!"); } else { playerColors.add(color); if (count == 1) { // if only one player config screen has been shown go to player 2 Launcher.primaryStage.setTitle("Player 2 Configuration"); Launcher.primaryStage.toFront(); playerName.clear(); raceChoice.getSelectionModel().clearSelection(); colorPick.setValue(Color.WHITE); count += 1; } else if (count == 2) { if (count == numPlayer) { // if user selected only 2 players then show game screen Launcher.primaryStage.hide(); try { gameRoot = FXMLLoader.load(getClass().getResource("UIFiles/MainMap.fxml")); gameScene = new Scene(gameRoot); Parent startWindow = FXMLLoader.load(getClass().getResource("UIFiles/playerStart.fxml")); startScene = new Scene(startWindow); } catch (Exception e1) { e1.printStackTrace(); } newStage.setScene(gameScene); newStage.setTitle("Game Screen"); newStage.show(); GameController.beginTurn(); // creates land array landPlots = new Land[9][5]; // 5 rows, 9 columns, col = i, row = j int count = 0; for (int i = 0; i < landPlots.length; i++) { for (int j = 0; j < landPlots[0].length; j++) { Land newLand = new Land(i, j); newLand.setType(landTypes[count]); landPlots[i][j] = newLand; count++; } } } else { // if user selected more than 2 players, go on to player 3 config Launcher.primaryStage.setTitle("Player 3 Configuration"); Launcher.primaryStage.toFront(); playerName.clear(); raceChoice.getSelectionModel().clearSelection(); colorPick.setValue(Color.WHITE); count += 1; } } else if (count == 3) { if (count == numPlayer) { Launcher.primaryStage.hide(); try { gameRoot = FXMLLoader.load(getClass().getResource("UIFiles/MainMap.fxml")); gameScene = new Scene(gameRoot); Parent startWindow = FXMLLoader.load(getClass().getResource("UIFiles/playerStart.fxml")); startScene = new Scene(startWindow); } catch (Exception e1) { e1.printStackTrace(); } newStage.setScene(gameScene); newStage.setTitle("Game Screen"); newStage.show(); GameController.beginTurn(); // creates land array landPlots = new Land[9][5]; // 5 rows, 9 columns, col = i, row = j int count = 0; for (int i = 0; i < landPlots.length; i++) { for (int j = 0; j < landPlots[0].length; j++) { Land newLand = new Land(i, j); newLand.setType(landTypes[count]); landPlots[i][j] = newLand; count++; } } } else { Launcher.primaryStage.setTitle("Player 4 Configuration"); Launcher.primaryStage.toFront(); playerName.clear(); raceChoice.getSelectionModel().clearSelection(); colorPick.setValue(Color.WHITE); count += 1; } } else if (count == 4) { Launcher.primaryStage.hide(); try { gameRoot = FXMLLoader.load(getClass().getResource("UIFiles/MainMap.fxml")); gameScene = new Scene(gameRoot); Parent startWindow = FXMLLoader.load(getClass().getResource("UIFiles/playerStart.fxml")); startScene = new Scene(startWindow); } catch (Exception e1) { e1.printStackTrace(); } newStage.setScene(gameScene); newStage.setTitle("Game Screen"); newStage.show(); GameController.beginTurn(); // creates land array landPlots = new Land[9][5]; // 5 rows, 9 columns, col = i, row = j int count = 0; for (int i = 0; i < landPlots.length; i++) { for (int j = 0; j < landPlots[0].length; j++) { Land newLand = new Land(i, j); newLand.setType(landTypes[count]); landPlots[i][j] = newLand; count++; } } } } } else if (e.getSource() == backButton) { playerName.clear(); raceChoice.getSelectionModel().clearSelection(); colorPick.setValue(Color.WHITE); Launcher.primaryStage.setScene(Launcher.rootScene); Launcher.primaryStage.setTitle("M.U.L.E. Game Setup"); } /*} catch (NullPointerException error) { Launcher.primaryStage.setScene(Launcher.errorMessage); Launcher.primaryStage.setTitle("Error!"); }*/ }
public static String colorToHex(Color color) { String hex = color.toString(); return "#" + hex.substring(2, hex.length() - 2); }
/** * @param axis Axis name to wich the new series belongs * @param cs Series Coinfiguration */ @Override public final void addSeries(String axis, SimpleSeriesConfiguration cs) { for (int i = 0; i < axes.size(); i++) { if (axes.get(i).getName().equals(axis)) { String strColor; javafx.scene.paint.Color color; int indice = seriesList.size(); if (cs.getColor() == null) { color = getColor(indice); } else { color = cs.getColor(); } strColor = color.toString(); XYSeriesCollection dataset = datasetList.get(i); Series series = new Series( cs.getName(), "color: " + strColor + ";width: " + String.valueOf(cs.getLineWidth()) + ";shape: " + cs.getShapeName() + ";", i, dataset.getSeriesCount()); dataset.addSeries(series); XYItemRenderer renderer = plot.getRenderer(i); renderer.setSeriesPaint(dataset.getSeriesCount() - 1, scene2awtColor(color)); SeriesShape simb = new SeriesShape( cs.getShapeName(), javafx.scene.paint.Color.web(strColor.replace("#", "0x"))); if (cs.getLineWidth() > 0) { ((XYLineAndShapeRenderer) renderer) .setSeriesLinesVisible(dataset.getSeriesCount() - 1, true); renderer.setSeriesStroke( dataset.getSeriesCount() - 1, new BasicStroke(cs.getLineWidth())); } else { ((XYLineAndShapeRenderer) renderer) .setSeriesLinesVisible(dataset.getSeriesCount() - 1, false); } if (cs.getShapeName().equals("null")) { renderer.setSeriesShape(dataset.getSeriesCount() - 1, null); ((XYLineAndShapeRenderer) renderer) .setSeriesShapesVisible(dataset.getSeriesCount() - 1, false); } else { renderer.setSeriesShape(dataset.getSeriesCount() - 1, simb.getShapeAWT()); ((XYLineAndShapeRenderer) renderer) .setSeriesShapesVisible(dataset.getSeriesCount() - 1, true); if (cs.getShapeName().contains("empty")) { ((XYLineAndShapeRenderer) renderer) .setSeriesShapesFilled(dataset.getSeriesCount() - 1, false); } else { ((XYLineAndShapeRenderer) renderer) .setSeriesShapesFilled(dataset.getSeriesCount() - 1, true); } } if (i == 0) { plot.setRenderer(renderer); } else { plot.setRenderer(i, renderer); } seriesList.add(series); final LegendAxis le = getLegendAxis(axis); final Label label = new Label(cs.toString()); Platform.runLater( () -> { label.setStyle( "fondo: " + strChartBackgroundColor + ";-fx-background-color: fondo;-fx-text-fill: ladder(fondo, white 49%, black 50%);-fx-padding:5px;-fx-background-radius: 5;-fx-font-size: " + String.valueOf(fontSize) + "px"); }); label.setOnMouseClicked( (MouseEvent t) -> { if (t.getClickCount() == 2) { for (int i1 = 0; i1 < seriesList.size(); i1++) { if (seriesList.get(i1).getKey().toString().equals(label.getText())) { editSeries(seriesList.get(i1)); break; } } } }); label.setOnMouseExited( (MouseEvent t) -> { label.setStyle( label .getStyle() .replace("-fx-background-color: blue", "-fx-background-color: fondo")); }); label.setOnMouseEntered( (MouseEvent t) -> { label.setStyle( label .getStyle() .replace("-fx-background-color: fondo", "-fx-background-color: blue")); for (Node le1 : legendFrame.getChildren()) { if (le1 instanceof LegendAxis) { le1.setStyle("-fx-background-color:" + strBackgroundColor); ((LegendAxis) le1).selected = false; } } }); label.setStyle( "fondo: " + strChartBackgroundColor + ";-fx-text-fill: white;-fx-background-color: fondo;-fx-padding:5px;-fx-background-radius: 5;-fx-font-size: " + String.valueOf(fontSize) + "px"); le.getChildren().add(label); label.setGraphic(simb.getShapeGraphic()); break; } } }
public static final String toCSSColorString(final Color color) { return "#" + color.toString().substring(2, 8); }