1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
private void doLoadGame(String Nom) {
final Cursor oldCursor = primaryScene.getCursor();
primaryScene.setCursor(Cursor.WAIT);
final Stage dialStage = new Stage();
final Service<Void> loadGameService = new Service<Void>() {
@Override
protected Task<Void> createTask() {
return new Task<Void>() {
@Override
protected Void call() throws Exception {
updateMessage("Lecture");
FileInputStream fSvg = new FileInputStream(Nom);
ObjectInputStream svgBat = new ObjectInputStream(fSvg);
scenario = (Jeu) svgBat.readObject();
final int nb = scenario.getNbVehicule() + 2;
updateMessage("Graphismes");
updateProgress(1, nb);
prepareScenario();
updateMessage("Carte");
fondDeCarte = new Visu(scenario.getLeTerrain(), scenario.getFeux());
vueCarte.setImage(fondDeCarte.getImage());
updateMessage("Calcul des mouvements");
int fig = 0;
Pion unite = scenario.getPion(fig++);
while (unite != null) {
updateProgress(fig + 2, nb);
if (!unite.estAlaBase())
affiche(unite);
if (unite instanceof Vehicule) {
((Vehicule) unite).majCarc(paramJeu);
if (!unite.estAlaBase())
doCalcNouvGraphePour((Vehicule) unite, unite.getX(), unite.getY());
}
unite = scenario.getPion(fig++);
}
return null;
}
};
}
};
loadGameService.setOnSucceeded((WorkerStateEvent event) -> {
primaryScene.setCursor(oldCursor);
centreEnXY(0, 0);
changeZoom(1);
corrigeLocation(0, 0);
jgeCtrl.MAJ();
jgeCtrl.razMessage();
jgeCtrl.setUniteEnMain("", "", null);
cmdCtrl.setMiniCarte(fondDeCarte.getImage());
cmdCtrl.enableAll(true);
cmdCtrl.MAJCmd();
dialStage.close();
});
FXMLLoader loader = new FXMLLoader();
URL url = MainFF.class.getResource("view/DialAttente.fxml");
loader.setLocation(url);
try {
AnchorPane dial = (AnchorPane) loader.load();
dialStage.initModality(Modality.NONE);
dialStage.initOwner(primaryStage);
Scene scene = new Scene(dial);
dialStage.setScene(scene);
DialAttenteController dialCtrl = loader.getController();
dialCtrl.setDialStage(dialStage, "Charger");
dialCtrl.getProg().progressProperty().bind(loadGameService.progressProperty());
dialCtrl.getTache().textProperty().bind(loadGameService.messageProperty());
dialStage.show();
loadGameService.start();
} catch (IOException e) {
e.printStackTrace();
}
} |
Partager