SHARE
TWEET

MultiplayerController2

a guest Jun 19th, 2017 50 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package fxml_controller;
  2.  
  3. import java.io.IOException;
  4. import java.net.URL;
  5. import java.util.ResourceBundle;
  6.  
  7. import game.GameEventhandler;
  8. import game.GameMaster;
  9. import image.IMGhandler;
  10. import javafx.animation.AnimationTimer;
  11. import javafx.beans.binding.BooleanBinding;
  12. import javafx.concurrent.Service;
  13. import javafx.concurrent.Task;
  14. import javafx.concurrent.WorkerStateEvent;
  15. import javafx.event.ActionEvent;
  16. import javafx.event.EventHandler;
  17. import javafx.fxml.FXML;
  18. import javafx.fxml.FXMLLoader;
  19. import javafx.fxml.Initializable;
  20. import javafx.geometry.Pos;
  21. import javafx.scene.Parent;
  22. import javafx.scene.Scene;
  23. import javafx.scene.control.Button;
  24. import javafx.scene.control.ProgressBar;
  25. import javafx.scene.control.TextField;
  26. import javafx.scene.layout.AnchorPane;
  27. import javafx.scene.layout.VBox;
  28. import javafx.scene.text.Text;
  29. import javafx.stage.Modality;
  30. import javafx.stage.Stage;
  31. import javafx.stage.StageStyle;
  32. import start_MEMORY.Start;
  33.  
  34. public class MultiplayerMenu2Controller implements Initializable {
  35.    
  36.     @FXML
  37.     VBox textFieldArea;
  38.     @FXML
  39.     Text errorTxt;
  40.     static int players = Start.getGamemode();
  41.    
  42.    
  43.     TextField newField1 = new TextField();
  44.     TextField newField2 = new TextField();
  45.     TextField newField3 = new TextField();
  46.     TextField newField4 = new TextField();
  47.    
  48.    
  49.     Stage popupload;
  50.     FXMLLoader loader = new FXMLLoader();
  51.     @FXML
  52.     private Button singleplayer;
  53.     @FXML
  54.     private AnchorPane AnchorPane;
  55.    
  56.     private void AddTextFields() { 
  57.  
  58.         if (players >= 2) {
  59.             textFieldArea.getChildren().add(newField1);
  60.             textFieldArea.getChildren().add(newField2);
  61.         }
  62.         if (players >= 3) {
  63.             textFieldArea.getChildren().add(newField3);
  64.         }
  65.         if (players == 4) {
  66.              textFieldArea.getChildren().add(newField4);
  67.         }
  68.     }
  69.    
  70.     @FXML
  71.     private void checkNames (ActionEvent event) {
  72.         //Exception only String?
  73.         boolean canWeStart = false;
  74.         if (players >= 2) {
  75.             if (!newField1.getText().isEmpty() && !newField2.getText().isEmpty()) {
  76.                 canWeStart = true;
  77.                 GameMaster.setNames(newField1.getText());
  78.                 GameMaster.setNames(newField2.getText());
  79.             }
  80.             else
  81.                 canWeStart = false;
  82.         }
  83.         if (players >= 3) {
  84.             if (!newField3.getText().isEmpty()) {
  85.                 canWeStart = true;
  86.                 GameMaster.setNames(newField3.getText());
  87.             }
  88.             else
  89.                 canWeStart = false;
  90.         }
  91.         if (players == 4) {
  92.             if (!newField4.getText().isEmpty()) {
  93.                 canWeStart = true;
  94.                 GameMaster.setNames(newField4.getText());
  95.             }
  96.             else
  97.                 canWeStart = false;
  98.         }
  99.         if (canWeStart == true) {
  100.             //call method init_game()
  101.             init_game();
  102.             canWeStart = true;
  103.         }
  104.         else
  105.             errorTxt.setVisible(true);
  106.     }
  107.     //Copied from MenuController - doesn't work yet
  108.     private void init_game() {
  109.         GameEventhandler.getTimer().stop();
  110.         GameEventhandler.getTimer().reset();
  111.         ProgressBar progressBar = new ProgressBar(0);
  112.         progressBar.setPrefSize(400, 40);
  113.         Service<Void> sv = new Service<Void>() {
  114.             @Override
  115.             protected Task<Void> createTask() {
  116.                 return IMGhandler.initialize(Start.getJhdl().getModel().getInfo().getCardcount());
  117.             }
  118.         };
  119.         AnimationTimer anitim = new AnimationTimer() {
  120.             @Override
  121.             public void handle(long now) {
  122.                 progressBar.setProgress(sv.getProgress());
  123.                 if (progressBar.getProgress() == 1) {
  124.                     this.stop();
  125.                     loader.setLocation(getClass().getResource("/fxml/UIGame/UIGame.fxml"));
  126.                     try {
  127.                         Parent root = loader.load();
  128.                         AnchorPane.getScene().setRoot(root);
  129.                     } catch (IOException e) {
  130.                         // TODO Auto-generated catch block
  131.                         e.printStackTrace();
  132.                     }
  133.                 }
  134.             }
  135.         };
  136.         if (popupload == null) {
  137.             popupload = new Stage();
  138.             popupload.setWidth(400);
  139.             popupload.setHeight(100);
  140.             popupload.centerOnScreen();
  141.             popupload.initStyle(StageStyle.UTILITY);
  142.             popupload.initModality(Modality.NONE);
  143.             popupload.initOwner(AnchorPane.getScene().getWindow());
  144.             VBox dialogVbox = new VBox(20);
  145.             dialogVbox.getChildren().add(new Text("Loading your game..."));
  146.             dialogVbox.getChildren().add(progressBar);
  147.             dialogVbox.setAlignment(Pos.CENTER);
  148.             Scene dialogScene = new Scene(dialogVbox, 300, 200);
  149.             popupload.setScene(dialogScene);
  150.             anitim.start();
  151.             sv.start();
  152.             sv.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
  153.                 @Override
  154.                 public void handle(WorkerStateEvent event) {
  155.                     popupload.hide();
  156.                     anitim.stop();
  157.                     sv.reset();
  158.                 }
  159.             });
  160.             popupload.showAndWait();
  161.         } else {
  162.             anitim.start();
  163.             sv.start();
  164.             sv.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
  165.                 @Override
  166.                 public void handle(WorkerStateEvent event) {
  167.                     popupload.hide();
  168.                     anitim.stop();
  169.                     sv.reset();
  170.                 }
  171.             });
  172.             popupload.showAndWait();
  173.         }
  174.     }
  175.  
  176.    
  177.     @Override
  178.     public void initialize(URL location, ResourceBundle resources) {
  179.             AddTextFields();
  180.     }
  181. }
RAW Paste Data
Top