package com.example.happy_bird;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;

public class Pipe extends SpielObjekt {

    private java.awt.Image lowerPipe;
    // private java.awt.Image lowerPipe = new java.awt.Image("file:src/main/resources/com/example/happy_bird/pics/PipeUnten.png", 86, 300, false, false);
    private int xWert = 0, yWert = 0;

    public Pipe(int xWert, int yWert) {
        super(xWert, yWert);
        lowerPipe = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("com/example/happy_bird/"));
        //scale lowerPipe(initialWidth, initialHeight)
    }

    public void scaleTopPipe(int width, int height) {
        lowerPipe = lowerPipe.getScaledInstance(width, height, Image.SCALE_SMOOTH);
    }

    public Image getPipe() {
        return getPipe();
    }

    /**
     * Method um die Breite des BottomPipe-Objekts zu erhalten
     * @return int
     */
    public int getWidth(int width) {
        return lowerPipe.getWidth(null);
    }
    /**
     * Methode um die Höhe des BottomPipe-Objekts zu erhalten
     * @return int
     */
    public int getHeight(int height) {
        return lowerPipe.getHeight(null);
    }

    /**
     * Methode zum Festlegen der x-Position des BottomPipe-Objekts
     * @param x
     */
    public void setX(int x) {
        xWert = x;
    }

    /**
     * Methode zum Abrufen der x-Position des BottomPipe-Objekts
     * @return int
     */
    public int getX() {
        return xWert;
    }

    /**
     * Methode zum Festlegen der y-Position des BottomPipe-Objekts
     * @param y
     */
    public void setY(int y) {
        yWert = y;
    }

    /**
     * Methode zum Abrufen der y-Position des BottomPipe-Objekts
     * @return int
     */
    public int getY() {
        return yWert;
    }

    /**
     * Methode zum Erfassen eines Rechtecks, das das Bild des BottomPipe umreißt
     * @return Rechteck, das die Position des BottomPipe auf dem Bildschirm umreißt
     */
    public Rectangle getRectangle() {
        return (new Rectangle(xWert, yWert, lowerPipe.getWidth(null), lowerPipe.getHeight(null)));
    }

    /**
     * Methode zum Erfassen eines BufferedImage, das das Bildobjekt der TopPipe darstellt
     * @return TopPipe's BufferedImage-Objekt
     */
    public BufferedImage getBI() {
        BufferedImage bi = new BufferedImage(lowerPipe.getWidth(null), lowerPipe.getHeight(null), BufferedImage.TYPE_INT_ARGB);
        Graphics g = bi.getGraphics();
        g.drawImage(lowerPipe, 0, 0, null);
        g.dispose();
        return bi;
    }


    @Override
    public void tick() {

    }

    @Override
    public void render(Graphics2D g, ImageObserver obs) {

    }
}
