package com.charpentierbalocchi.dorfjavatik.view;

import javax.swing.JPanel;

import com.charpentierbalocchi.dorfjavatik.model.Tuile;

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Dimension;

public class AffichageTuile extends JPanel {
    private Tuile tuile;

    public AffichageTuile(Tuile tuile) {
        this.tuile = tuile;
        setPreferredSize(new Dimension(100, 100)); // Taille préférée du panel pour afficher la tuile
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (tuile == null) {
            return;
        }

        // Divise le panel en quatre quadrants pour les biomes Nord, Sud, Est, Ouest
        int width = getWidth();
        int height = getHeight();
        drawBiome(g, tuile.getNord(), 0, 0, width / 2, height / 2);
        drawBiome(g, tuile.getSud(), 0, height / 2, width / 2, height / 2);
        drawBiome(g, tuile.getEst(), width / 2, 0, width / 2, height / 2);
        drawBiome(g, tuile.getOuest(), width / 2, height / 2, width / 2, height / 2);
    }

    // Dessine chaque biome dans le quadrant spécifié
    private void drawBiome(Graphics g, Tuile.Biome biome, int x, int y, int width, int height) {
        switch (biome) {
            case RIVIERE:
                g.setColor(Color.BLUE);
                break;
            case FORET:
                g.setColor(Color.GREEN);
                break;
            case CHAMP:
                g.setColor(Color.YELLOW);
                break;
            case VILLAGE:
                g.setColor(Color.RED);
                break;
            case MONTAGNE:
                g.setColor(Color.GRAY);
                break;
            default:
                g.setColor(Color.BLACK);
        }
        g.fillRect(x, y, width, height);
        g.setColor(Color.BLACK);
        g.drawRect(x, y, width, height); // Dessine un contour pour chaque zone
    }
}
