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