diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index f7fe40da220c708d6755564753dd2bee98c2b208..2a95d8e59d7e0363aa347c8e73e49d185ab84f55 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -94,12 +94,8 @@ public class Controller { private ViewElement getViewElement(Square square) { if (!square.getEntities().isEmpty()) { for (Entity entity : square.getEntities()) { - if (entity instanceof Cloud) { - return new ViewElement(((Cloud) entity).getImage()); - }else{ - } - // Ajoutez ici des cas similaires pour d'autres entités comme Fire, FireFighter, etc. + return new ViewElement(entity.getImage()); } } return new ViewElement(square.getViewColor()); diff --git a/src/main/java/model/EmptySquare.java b/src/main/java/model/EmptySquare.java index a196fe418145e94a1cf48bca393158abe603cf95..975706e2c5dfbf1f42004fbef489e4c429367223 100644 --- a/src/main/java/model/EmptySquare.java +++ b/src/main/java/model/EmptySquare.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import javafx.scene.paint.Color; +import model.firefighterscenario.Cloud; import util.Position; public class EmptySquare implements Entity { @@ -12,6 +13,15 @@ public class EmptySquare implements Entity { private final Color viewColor = Color.WHITE; private int age; private final int priotity = -1; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/img.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public EmptySquare(Position p) { this.position = p; @@ -61,4 +71,9 @@ public class EmptySquare implements Entity { public int getPriority(){ return this.priotity; } + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } } diff --git a/src/main/java/model/Entity.java b/src/main/java/model/Entity.java index 3270ae89da793de0e332c5802f70d4f60b88c933..dc29e8ea087302ed9c1b850367f25bdd66db85a8 100644 --- a/src/main/java/model/Entity.java +++ b/src/main/java/model/Entity.java @@ -1,5 +1,5 @@ package model; - +import javafx.scene.image.Image; import java.util.List; import javafx.scene.paint.Color; @@ -21,4 +21,5 @@ public interface Entity { public void incrementAge(); public Color getViewColor(); public int getPriority(); + public Image getImage(); } diff --git a/src/main/java/model/Road.java b/src/main/java/model/Road.java index c28771eaf19432a91f32d2b8f4d2daedd4af870c..b8b73256b9b2a55794cdb395b3b29258b1a1e207 100644 --- a/src/main/java/model/Road.java +++ b/src/main/java/model/Road.java @@ -1,17 +1,31 @@ -package model; +package model.firefighterscenario; + +import java.util.List; import javafx.scene.paint.Color; +import model.Board; +import model.Entity; +import model.Square; import util.Position; -import java.util.List; - public class Road implements Entity{ private int age; + private final int PRIORITY = 0; + private final Color VIEW_COLOR = Color.BLACK; private Position position; - private final Color viewColor = Color.GREY; - private final int priority = 0; + private static javafx.scene.image.Image cloudImage; + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/route.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } + public Road(Position position){ + this.position = position; + } @Override public List<Position> nextTurn(Board<Square> board) { return List.of(); @@ -19,36 +33,42 @@ public class Road implements Entity{ @Override public Position getPosition() { - return null; + return this.position; } @Override public void setPosition(Position p) { - + this.position = p; } @Override public int getAge() { - return 0; + return age; } @Override public void setAge(int age) { - + this.age = age; } @Override public void incrementAge() { - + this.age = age + 1; } @Override public Color getViewColor() { - return null; + return this.VIEW_COLOR; } @Override public int getPriority() { - return 0; + return this.PRIORITY; + } + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; } + } diff --git a/src/main/java/model/firefighterscenario/AirTanker.java b/src/main/java/model/firefighterscenario/AirTanker.java index a80fdb66bfae4e2c565b1406f12c8afe4e7bda70..cd50470f5f9274378d412aad3a987a08992cc929 100644 --- a/src/main/java/model/firefighterscenario/AirTanker.java +++ b/src/main/java/model/firefighterscenario/AirTanker.java @@ -18,6 +18,15 @@ public class AirTanker implements Entity{ private int age; private Position position; private int priority = 3; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/avion.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public AirTanker(Position position, Board<Square> b, int age) { this.age = age; @@ -163,5 +172,8 @@ public class AirTanker implements Entity{ return Objects.hash(position, age); } - + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } } diff --git a/src/main/java/model/firefighterscenario/Cloud.java b/src/main/java/model/firefighterscenario/Cloud.java index 194c5d6d434148aaa95f4f4ce17bf057dbb7d08c..61d6c87ccb81b7f708f8acdf28b2dd7959ece951 100644 --- a/src/main/java/model/firefighterscenario/Cloud.java +++ b/src/main/java/model/firefighterscenario/Cloud.java @@ -21,7 +21,7 @@ public class Cloud implements Entity{ static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/nuage.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/nuage.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } @@ -115,7 +115,7 @@ public class Cloud implements Entity{ return this.priority; } - + @Override public javafx.scene.image.Image getImage() { return cloudImage; } diff --git a/src/main/java/model/firefighterscenario/Fire.java b/src/main/java/model/firefighterscenario/Fire.java index 0d79d7a5a8a0de817dac0f192711f547627a6a4a..4a991e7330466284371872ecf819bb6bd31ce1db 100644 --- a/src/main/java/model/firefighterscenario/Fire.java +++ b/src/main/java/model/firefighterscenario/Fire.java @@ -18,6 +18,15 @@ public class Fire implements Entity { private final Color viewColor = Color.RED; private int age; private final int priority = 1; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/flamme.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Fire(Position position) { this.position = position; @@ -132,4 +141,9 @@ public class Fire implements Entity { return Objects.hash(position, age); } + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } + } diff --git a/src/main/java/model/firefighterscenario/FireFighter.java b/src/main/java/model/firefighterscenario/FireFighter.java index 8adfeba28784f7462854258e4315bd6d0129ae07..4b20790a8db498e4612b0e1a859fae3b146769e8 100644 --- a/src/main/java/model/firefighterscenario/FireFighter.java +++ b/src/main/java/model/firefighterscenario/FireFighter.java @@ -19,6 +19,15 @@ public class FireFighter implements Entity { private final Color viewColor = Color.BLUE; private final int priority = 1; protected List<Position> lastThreePosition; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/sapeur-pompier.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public FireFighter(Position position, Board<Square> b) { this.position = position; @@ -220,4 +229,8 @@ public class FireFighter implements Entity { } public int getPriority(){ return this.priority;} + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } } diff --git a/src/main/java/model/firefighterscenario/FireFighterScenario.java b/src/main/java/model/firefighterscenario/FireFighterScenario.java index b112887f3df3c0ad55b93be1683ddf5a7b8f9201..450dee5ff682cbbc09959634812baaab67019256 100644 --- a/src/main/java/model/firefighterscenario/FireFighterScenario.java +++ b/src/main/java/model/firefighterscenario/FireFighterScenario.java @@ -26,6 +26,7 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> private Map<EntityFactory, Integer> initialMap; + public FireFighterScenario(int columns, int rows) { this.matrix = new Matrix<Square>(columns, rows); initScenario(matrix); diff --git a/src/main/java/model/firefighterscenario/MotorizedFireFighter.java b/src/main/java/model/firefighterscenario/MotorizedFireFighter.java index 3564d384fe27f81e247b438324e3cbf86b5b6767..0fbab0ccf9cd7ee6cc12010e0837d152f5403bcf 100644 --- a/src/main/java/model/firefighterscenario/MotorizedFireFighter.java +++ b/src/main/java/model/firefighterscenario/MotorizedFireFighter.java @@ -11,6 +11,16 @@ import util.PositionUtil; public class MotorizedFireFighter extends FireFighter { private final Color viewColor = Color.CYAN; + private static javafx.scene.image.Image cloudImage; + + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/camion.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public MotorizedFireFighter(Position position, Board<Square> b) { super(position, b); @@ -109,4 +119,8 @@ public class MotorizedFireFighter extends FireFighter { lastThreePosition.add(this.getPosition()); } + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } } \ No newline at end of file diff --git a/src/main/java/model/firefighterscenario/Mountain.java b/src/main/java/model/firefighterscenario/Mountain.java index e229c30a0f9d35af7e80c7c8e28a8da1bcf72db4..16971eb06268ee19ac77f06227e97e5c4f311c3b 100644 --- a/src/main/java/model/firefighterscenario/Mountain.java +++ b/src/main/java/model/firefighterscenario/Mountain.java @@ -13,6 +13,15 @@ public class Mountain implements Entity{ Position position; private int age; private final Color viewColor = Color.CHOCOLATE; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/montagne.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Mountain(Position p ){ this.position = p; @@ -64,4 +73,9 @@ public class Mountain implements Entity{ public int getPriority() { return this.priority; } + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } } diff --git a/src/main/java/model/firefighterscenario/Road.java b/src/main/java/model/firefighterscenario/Road.java deleted file mode 100644 index fa90dc7d64b4995d5271810209395ab11c45547c..0000000000000000000000000000000000000000 --- a/src/main/java/model/firefighterscenario/Road.java +++ /dev/null @@ -1,60 +0,0 @@ -package model.firefighterscenario; - -import java.util.List; - -import javafx.scene.paint.Color; -import model.Board; -import model.Entity; -import model.Square; -import util.Position; - -public class Road implements Entity{ - private int age; - private final int PRIORITY = 0; - private final Color VIEW_COLOR = Color.BLACK; - private Position position; - - public Road(Position position){ - this.position = position; - } - @Override - public List<Position> nextTurn(Board<Square> board) { - return List.of(); - } - - @Override - public Position getPosition() { - return this.position; - } - - @Override - public void setPosition(Position p) { - this.position = p; - } - - @Override - public int getAge() { - return age; - } - - @Override - public void setAge(int age) { - this.age = age; - } - - @Override - public void incrementAge() { - this.age = age + 1; - } - - @Override - public Color getViewColor() { - return this.VIEW_COLOR; - } - - @Override - public int getPriority() { - return this.PRIORITY; - } - -} diff --git a/src/main/java/model/firefighterscenario/Rockery.java b/src/main/java/model/firefighterscenario/Rockery.java index 9b64db33ec04539cdbc3d5bd428992455292d7f9..405625564bbe8b5892c522ff2ce8ce15b4185905 100644 --- a/src/main/java/model/firefighterscenario/Rockery.java +++ b/src/main/java/model/firefighterscenario/Rockery.java @@ -14,6 +14,16 @@ public class Rockery implements Entity{ private int age; private int burn; private final Color viewColor = Color.LIMEGREEN; + private static javafx.scene.image.Image cloudImage; + + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/rochers.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Rockery(Position p ){ this.position = p; @@ -78,4 +88,9 @@ public class Rockery implements Entity{ public void resetBurn() { this.burn = 0; } + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } } diff --git a/src/main/resources/icons/avion.png b/src/main/resources/view/icons/avion.png similarity index 100% rename from src/main/resources/icons/avion.png rename to src/main/resources/view/icons/avion.png diff --git a/src/main/resources/view/icons/camion.png b/src/main/resources/view/icons/camion.png new file mode 100644 index 0000000000000000000000000000000000000000..c9eaf6adb1f1bfd2b96590d67d9279750df0f2a9 Binary files /dev/null and b/src/main/resources/view/icons/camion.png differ diff --git a/src/main/resources/icons/flamme.png b/src/main/resources/view/icons/flamme.png similarity index 100% rename from src/main/resources/icons/flamme.png rename to src/main/resources/view/icons/flamme.png diff --git a/src/main/resources/view/icons/img.png b/src/main/resources/view/icons/img.png new file mode 100644 index 0000000000000000000000000000000000000000..f765539c06aafd59b0c2fc1a09fc389f9996410c Binary files /dev/null and b/src/main/resources/view/icons/img.png differ diff --git a/src/main/resources/icons/montagne.png b/src/main/resources/view/icons/montagne.png similarity index 100% rename from src/main/resources/icons/montagne.png rename to src/main/resources/view/icons/montagne.png diff --git a/src/main/resources/icons/nuage.png b/src/main/resources/view/icons/nuage.png similarity index 100% rename from src/main/resources/icons/nuage.png rename to src/main/resources/view/icons/nuage.png diff --git a/src/main/resources/icons/rochers.png b/src/main/resources/view/icons/rochers.png similarity index 100% rename from src/main/resources/icons/rochers.png rename to src/main/resources/view/icons/rochers.png diff --git a/src/main/resources/view/icons/route.png b/src/main/resources/view/icons/route.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3ba6dc051837260312bc0d168c2a9952788a32 Binary files /dev/null and b/src/main/resources/view/icons/route.png differ diff --git a/src/main/resources/icons/sapeur-pompier.png b/src/main/resources/view/icons/sapeur-pompier.png similarity index 100% rename from src/main/resources/icons/sapeur-pompier.png rename to src/main/resources/view/icons/sapeur-pompier.png diff --git a/src/main/resources/view/nuage.png b/src/main/resources/view/nuage.png deleted file mode 100644 index e45c590998a918927786f558c1ac301cd92a025b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/view/nuage.png and /dev/null differ