Skip to content
Snippets Groups Projects
SimulatorApplication.java 2.82 KiB
Newer Older
  • Learn to ignore specific revisions
  • LABOUREL Arnaud's avatar
    LABOUREL Arnaud committed
    package app;
    
    import java.io.IOException;
    import java.net.URL;
    
    
    LABOUREL Arnaud's avatar
    LABOUREL Arnaud committed
    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 {
    
    LABOUREL Arnaud's avatar
    LABOUREL Arnaud committed
      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;
    
    Yanis O's avatar
    Yanis O committed
      public static final int INITIAL_FIRE_COUNT = 8;
    
      public static final int INITIAL_FIREFIGHTER_COUNT = 12;
    
    Yanis O's avatar
    Yanis O committed
      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;
    
    Yanis O's avatar
    Yanis O committed
      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;
    
    Yanis OUALAN's avatar
    Yanis OUALAN committed
    
    
      private void initializePrimaryStage(Stage primaryStage) {
        this.primaryStage = primaryStage;
        this.primaryStage.setTitle(APP_NAME);
        this.primaryStage.setOnCloseRequest(event -> Platform.exit());
    
    COUETOUX Basile's avatar
    COUETOUX Basile committed
        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();
    
          case "firefighter":
            controller.initializeFireFighter();
    
          case "doctor":
            controller.initializeDoctor();
    
      }
    
      private void showScene() {
        Scene scene = new Scene(view);
        primaryStage.setScene(scene);
        primaryStage.show();
      }
    
    
      public static void main(String[] args) {