package app; import java.io.IOException; import java.net.URL; import controller.Controller; import javafx.application.Platform; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class SimulatorApplication extends javafx.application.Application { private static final String VIEW_RESOURCE_PATH = "/view/view.fxml"; private static final String APP_NAME = "Firefighter simulator"; public static final int ROW_COUNT = 40; public static final int COLUMN_COUNT = 40; public static final int BOX_WIDTH = 25; public static final int BOX_HEIGHT = 25; public static final int INITIAL_FIRE_COUNT = 8; public static final int INITIAL_FIREFIGHTER_COUNT = 12; public static final int INITIAL_MOTORIZED_FIREFIGHTER_COUNT = 8; public static final int INITIAL_CLOUD_COUNT = 8; public static final int INITIAL_MOUNTAIN_COUNT= 6; public static final int INITIAL_ROCKERTY_COUNT= 3; public static final int TURNS_FOR_SPAWNING_AIRTANKER = 10; public static final int PAPER_COUNT = 10; public static final int ROCK_COUNT = 10; public static final int CISOR_COUNT = 10; public static final int DOCTOR_COUNT = 10; public static final int PATIENT_COUNT = 70; public static final int VIRUS_COUNT = 6; public static String[] arguments; private Stage primaryStage; private Parent view; private void initializePrimaryStage(Stage primaryStage) { this.primaryStage = primaryStage; this.primaryStage.setTitle(APP_NAME); this.primaryStage.setOnCloseRequest(event -> Platform.exit()); this.primaryStage.setResizable(true); this.primaryStage.sizeToScene(); } @Override public void start(@SuppressWarnings("exports") Stage primaryStage) throws IOException { initializePrimaryStage(primaryStage); initializeView(); showScene(); } private void initializeView() throws IOException { FXMLLoader loader = new FXMLLoader(); URL location = SimulatorApplication.class.getResource(VIEW_RESOURCE_PATH); loader.setLocation(location); view = loader.load(); Controller controller = loader.getController(); if(SimulatorApplication.arguments == null){ SimulatorApplication.arguments = new String[1]; SimulatorApplication.arguments[0] = "firefighter"; System.out.println("No argument were provided, starting firefighter"); } switch(SimulatorApplication.arguments[0]){ case "pfc": controller.initializePfc(); break; case "firefighter": controller.initializeFireFighter(); break; case "doctor": controller.initializeDoctor(); break; } } private void showScene() { Scene scene = new Scene(view); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { arguments = args; launch(args); } }