package enchcracker.swing;

import enchcracker.EnchCrackerWindow;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class ImagePanel extends JPanel {
    private BufferedImage[] backgroundImage;
    public int curImg;
    public ImagePanel(String img) {
        try {
            backgroundImage = new BufferedImage[] { ImageIO.read(EnchCrackerWindow.getFile(img+".png")) };
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(0);
        }
        setOpaque(false);
        setBackground(new Color(255,255,255,0));
    }
    public ImagePanel(String img, int c) {
        try {
            BufferedImage imgData = ImageIO.read(EnchCrackerWindow.getFile(img+".png"));
            int h = imgData.getHeight() / c;
            backgroundImage = new BufferedImage[c];
            for (int a = 0; a < c; a++) {
                backgroundImage[a] = new BufferedImage(imgData.getWidth(), h, BufferedImage.TYPE_INT_ARGB);
                backgroundImage[a].createGraphics().drawImage(imgData, 0, -h*a, null);
            }
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(0);
        }
        setOpaque(false);
        setBackground(new Color(255,255,255,0));
    }

    @Override
    public void paint(Graphics g) {
        g.drawImage(backgroundImage[curImg], 0, 0, null);
        super.paint(g);
    }

    @Override
    public Dimension getSize() {
        return new Dimension(backgroundImage[0].getWidth(), backgroundImage[0].getHeight());
    }

    @Override
    public Dimension getPreferredSize() {
        return getSize();
    }

    public int getImageCount() {
        return backgroundImage.length;
    }
}