diff --git a/build/resources/main/view/DarkTheme.css b/build/resources/main/view/DarkTheme.css index 46b78aaf90972dd435399466c9fd861ca73fc59f..7122e922d48c04aaa31064526ad32644dd927164 100644 --- a/build/resources/main/view/DarkTheme.css +++ b/build/resources/main/view/DarkTheme.css @@ -113,7 +113,7 @@ -fx-background-color: #3a3a3a; } -.button:pressed, .button:default:hover:pressed { +.button:default:hover:pressed { -fx-background-color: white; -fx-text-fill: #1d1d1d; } diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java index 6da0500df1c935db754b7df35e7a65c1e9e5cff5..2411a42152ad89d81cc8e56c5fe2482e245409ca 100644 --- a/src/main/java/app/SimulatorApplication.java +++ b/src/main/java/app/SimulatorApplication.java @@ -13,16 +13,24 @@ 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"; - private static final int ROW_COUNT = 40; - private static final int COLUMN_COUNT = 40; - private static final int BOX_WIDTH = 25; - private static final int BOX_HEIGHT = 25; + 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; + private Stage primaryStage; private Parent view; @@ -48,8 +56,20 @@ public class SimulatorApplication extends javafx.application.Application { loader.setLocation(location); view = loader.load(); Controller controller = loader.getController(); - controller.initialize(BOX_WIDTH, BOX_HEIGHT, COLUMN_COUNT, ROW_COUNT, - INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_MOTORIZED_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT, INITIAL_MOUNTAIN_COUNT, TURNS_FOR_SPAWNING_AIRTANKER); + if(SimulatorMain.arguments == null){ + SimulatorMain.arguments = new String[1]; + SimulatorMain.arguments[0] = "firefighter"; + System.out.println("No argument were provided, starting firefighter"); + } + switch(SimulatorMain.arguments[0]){ + case "pfc": + controller.initializePfc(); + case "firefighter": + controller.initializeFireFighter(); + case "doctor": + controller.initializeDoctor(); + } + } private void showScene() { diff --git a/src/main/java/app/SimulatorMain.java b/src/main/java/app/SimulatorMain.java index f2e49f262ebec4136cf57d3b50fea3987b3b69fc..15019a64bcf6bccf90d99b2acd17dbb18e0a1c1c 100644 --- a/src/main/java/app/SimulatorMain.java +++ b/src/main/java/app/SimulatorMain.java @@ -1,7 +1,10 @@ package app; public class SimulatorMain { + public static String[] arguments; public static void main(String[] args){ SimulatorApplication.main(args); + arguments = args; + } } diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 71390712a6d8a1546e548cee9ca985896c1d081e..c65b0388bf1f1fe6a9bf2c29a8cf5cbcfd536d08 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -25,17 +25,10 @@ import model.Entity; import model.EntityFactory; import model.Model; import model.Square; -import model.firefighterscenario.Cloud; -import model.firefighterscenario.Fire; -import model.firefighterscenario.FireFighter; -import model.firefighterscenario.FireFighterScenario; -import model.firefighterscenario.MotorizedFireFighter; -import model.firefighterscenario.Mountain; -import model.firefighterscenario.Rockery; import util.Position; import view.Grid; import view.ViewElement; - +import app.SimulatorApplication; public class Controller { @@ -138,32 +131,61 @@ public class Controller { repaintGrid(); } - public void initialize(int squareWidth, int squareHeight, int columnCount, - int rowCount, int initialFireCount, int initialFirefighterCount, int initialMotorizedFirefightersCount, int initialcloudCount, int initialmountaincount, int turnsForSpawningAirTanker) { - grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); + public void initializeDoctor() { + int columnCount = SimulatorApplication.COLUMN_COUNT; + int rowCount = SimulatorApplication.ROW_COUNT; + int squareWidth = SimulatorApplication.BOX_WIDTH; + int squareHeight = SimulatorApplication.BOX_HEIGHT; + grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>(); - /* - entityCounts.put((pos, b) -> new Fire(pos), initialFireCount); - entityCounts.put((pos, b) -> new FireFighter(pos,b), initialFirefighterCount); - entityCounts.put((pos, b) -> new MotorizedFireFighter(pos, b), initialMotorizedFirefightersCount); - entityCounts.put((pos, b) -> new Cloud(pos, b), initialcloudCount); - entityCounts.put((pos, b) -> new Mountain(pos), initialmountaincount); - entityCounts.put((pos, b) -> new Rockery(pos), 3); - */ + + + entityCounts.put((pos, b) -> new model.doctorviruspatient.Patient(pos), SimulatorApplication.PATIENT_COUNT); + entityCounts.put((pos, b) -> new model.doctorviruspatient.Virus(pos), SimulatorApplication.VIRUS_COUNT); + entityCounts.put((pos, b) -> new model.doctorviruspatient.Doctor(pos), SimulatorApplication.DOCTOR_COUNT); - /* - entityCounts.put((pos, b) -> new Rock(pos), 10); - entityCounts.put((pos, b) -> new Cisor(pos), 10); - entityCounts.put((pos, b) -> new Paper(pos), 10); - */ + Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts); + this.setModel(model); + repaintGrid(); + } + public void initializePfc() { + int columnCount = SimulatorApplication.COLUMN_COUNT; + int rowCount = SimulatorApplication.ROW_COUNT; + int squareWidth = SimulatorApplication.BOX_WIDTH; + int squareHeight = SimulatorApplication.BOX_HEIGHT; + grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); + + Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>(); - entityCounts.put((pos, b) -> new model.doctorviruspatient.Patient(pos), 70); - entityCounts.put((pos, b) -> new model.doctorviruspatient.Virus(pos), 6); - entityCounts.put((pos, b) -> new model.doctorviruspatient.Doctor(pos), 3); + entityCounts.put((pos, b) -> new model.rockpapercisor.Rock(pos), SimulatorApplication.ROCK_COUNT); + entityCounts.put((pos, b) -> new model.rockpapercisor.Paper(pos), SimulatorApplication.PAPER_COUNT); + entityCounts.put((pos, b) -> new model.rockpapercisor.Cisor(pos), SimulatorApplication.CISOR_COUNT); + + Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts); + this.setModel(model); + repaintGrid(); + } + public void initializeFireFighter() { + int columnCount = SimulatorApplication.COLUMN_COUNT; + int rowCount = SimulatorApplication.ROW_COUNT; + int squareWidth = SimulatorApplication.BOX_WIDTH; + int squareHeight = SimulatorApplication.BOX_HEIGHT; + grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); + + Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>(); + + + entityCounts.put((pos, b) -> new model.firefighterscenario.Fire(pos), SimulatorApplication.INITIAL_FIRE_COUNT); + entityCounts.put((pos, b) -> new model.firefighterscenario.FireFighter(pos,b), SimulatorApplication.INITIAL_FIREFIGHTER_COUNT); + entityCounts.put((pos, b) -> new model.firefighterscenario.MotorizedFireFighter(pos, b), SimulatorApplication.INITIAL_MOTORIZED_FIREFIGHTER_COUNT); + entityCounts.put((pos, b) -> new model.firefighterscenario.Cloud(pos, b), SimulatorApplication.INITIAL_CLOUD_COUNT); + entityCounts.put((pos, b) -> new model.firefighterscenario.Mountain(pos), SimulatorApplication.INITIAL_MOUNTAIN_COUNT); + entityCounts.put((pos, b) -> new model.firefighterscenario.Rockery(pos), SimulatorApplication.INITIAL_ROCKERTY_COUNT); + - Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(columnCount, rowCount, entityCounts); + Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts); this.setModel(model); repaintGrid(); } diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 46b78aaf90972dd435399466c9fd861ca73fc59f..7122e922d48c04aaa31064526ad32644dd927164 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -113,7 +113,7 @@ -fx-background-color: #3a3a3a; } -.button:pressed, .button:default:hover:pressed { +.button:default:hover:pressed { -fx-background-color: white; -fx-text-fill: #1d1d1d; }