Advertisement
Guest User

MultiplayerController2

a guest
Jun 19th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.77 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement