diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 1cf89653fbc8e469e235f1f8a9ba3fddc836b6b0..f7fe40da220c708d6755564753dd2bee98c2b208 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -20,6 +20,7 @@ import javafx.scene.control.ToggleGroup; import javafx.util.Duration; import javafx.util.Pair; import model.Board; +import model.Entity; import model.EntityFactory; import model.Square; import model.firefighterscenario.Cloud; @@ -91,6 +92,16 @@ 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(square.getViewColor()); } diff --git a/src/main/java/model/Road.java b/src/main/java/model/Road.java new file mode 100644 index 0000000000000000000000000000000000000000..c28771eaf19432a91f32d2b8f4d2daedd4af870c --- /dev/null +++ b/src/main/java/model/Road.java @@ -0,0 +1,54 @@ +package model; + +import javafx.scene.paint.Color; +import util.Position; + +import java.util.List; + +public class Road implements Entity{ + private int age; + private Position position; + private final Color viewColor = Color.GREY; + private final int priority = 0; + + + @Override + public List<Position> nextTurn(Board<Square> board) { + return List.of(); + } + + @Override + public Position getPosition() { + return null; + } + + @Override + public void setPosition(Position p) { + + } + + @Override + public int getAge() { + return 0; + } + + @Override + public void setAge(int age) { + + } + + @Override + public void incrementAge() { + + } + + @Override + public Color getViewColor() { + return null; + } + + @Override + public int getPriority() { + return 0; + } +} diff --git a/src/main/java/model/firefighterscenario/Cloud.java b/src/main/java/model/firefighterscenario/Cloud.java index 3a587b5594531ee34f995f4840a82fdfa3bdefcb..4e5e70807401a078d65a24b853719e1a9af93f9e 100644 --- a/src/main/java/model/firefighterscenario/Cloud.java +++ b/src/main/java/model/firefighterscenario/Cloud.java @@ -109,4 +109,10 @@ public class Cloud implements Entity{ } + public javafx.scene.image.Image getImage() { + return new javafx.scene.image.Image(getClass().getResource("/icons/img.png").toExternalForm()); + } + + + } diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/view/FirefighterGrid.java index ecc8129c023c3a84787bb12b7db4de3bbb7cde95..67dc61c1e91e6400eb639b23f86ef1f04ebf67eb 100644 --- a/src/main/java/view/FirefighterGrid.java +++ b/src/main/java/view/FirefighterGrid.java @@ -1,4 +1,5 @@ package view; +import javafx.scene.image.Image; import java.util.List; @@ -9,9 +10,25 @@ import util.Position; public class FirefighterGrid extends Canvas implements Grid<ViewElement>{ + //private void paintElementAtPosition(ViewElement element, Position position) { + // paintBox(position.x(), position.y(), element.getColor()); + //} + + private void paintElementAtPosition(ViewElement element, Position position) { - paintBox(position.x(), position.y(), element.getColor()); + // Efface la case pour éviter les superpositions + clearBox(position.x(), position.y()); + + // Vérifie si une image est définie dans l'élément + if (element.getImage() != null) { + Image image = element.getImage(); + getGraphicsContext2D().drawImage(image, position.y() * boxWidth, position.x() * boxHeight, boxWidth, boxHeight); + } else { + // Sinon, utilise une couleur + paintBox(position.x(), position.y(), element.getColor()); + } } + private int boxWidth; private int boxHeight; private int columnCount; diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index 5043644547213f648760eba9e4bb0693411e527b..3059a474eba08dc25e8e0e9cb8a186344a5c85c1 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/view/ViewElement.java @@ -1,15 +1,29 @@ package view; +import javafx.scene.image.Image; import javafx.scene.paint.Color; public class ViewElement { private final Color color; + private final Image image; + // Constructeur avec couleur uniquement public ViewElement(Color color) { this.color = color; + this.image = null; + } + + // Constructeur avec image + public ViewElement(Image image) { + this.color = null; + this.image = image; } public Color getColor() { return color; } + + public Image getImage() { + return image; + } }