From 0e6bc2859d6ee7a437503fc30f7bea20e322c26f Mon Sep 17 00:00:00 2001 From: melizzzz <152108637+melizzzz@users.noreply.github.com> Date: Sat, 23 Nov 2024 23:12:02 +0100 Subject: [PATCH] nuage icones --- src/main/java/controller/Controller.java | 11 ++++ src/main/java/model/Road.java | 54 +++++++++++++++++++ .../java/model/firefighterscenario/Cloud.java | 6 +++ src/main/java/view/FirefighterGrid.java | 19 ++++++- src/main/java/view/ViewElement.java | 14 +++++ 5 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 src/main/java/model/Road.java diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 1cf8965..f7fe40d 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 0000000..c28771e --- /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 3a587b5..4e5e708 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 ecc8129..67dc61c 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 5043644..3059a47 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; + } } -- GitLab