// WARNING: This file is auto-generated and any changes to it will be overwritten
import java.util.*;
import greenfoot.*;

/**
 * 
 */
public class Sammler extends Actor
{
    private int speed = 2;
    /* Vorarbeit: Legen Sie ein Attribut apfelliste:ArrayList<Apfel> an*/

    /**
     * Vorarbeit: Schreiben Sie in der Klasse Apfel Getter und Setter fuer die Attribute gewicht und istMonsterapfel.
     * Aktivieren Sie anschließend in der MyWorld-Klasse die auskommentierte Zeile monsterapfel.setMonsterapfel ...
     */
    public void act()
    {
        String taste = Greenfoot.getKey();
        if (Greenfoot.isKeyDown("left")) {
            this.setLocation(this.getX() - this.speed, this.getY());
        }
        if (Greenfoot.isKeyDown("right")) {
            this.setLocation(this.getX() + this.speed, this.getY());
        }
        if (Greenfoot.isKeyDown("up")) {
            this.setLocation(this.getX(), this.getY() - this.speed);
        }
        if (Greenfoot.isKeyDown("down")) {
            this.setLocation(this.getX(), this.getY() + this.speed);
        }
        if (this.isTouching(Apfel.class)) {
            /* Aufgabe 1:*/
            this.apfelEinladen();
        }
        /* Aufgabe 2:*/
        this.pruefeAutoAufUeberladung();
        if ("l".equals(taste)) {
            /* Aufgabe 3:*/
            this.listeAllerAepfelAusgeben();
        }
        if ("a".equals(taste)) {
            System.out.println("asdfdafs");
            /* Aufgabe 4*/
            this.einenApfelAusladen();
        }
        if ("e".equals(taste)) {
            /* Aufgabe 5*/
            this.einenGeladenenApfelEssen();
        }
        /* Aufgabe 6 - NUR die Methode alleAepfelEingesammelt():boolean ergaenzen, damit die folgende Abfrage funktioniert.*/
        if (this.alleAepfelEingesammelt() == true) {
            Label l =  new  Label();
            GreenfootImage g =  new  GreenfootImage("ALLE ÄPFEL EINGESAMMELT!\nSPIEL ZUENDE", 50, Color.RED, Color.WHITE);
            l.setImage(g);
            this.getWorld().addObject(l, 400, 300);
            Greenfoot.stop();
        }
        /* Aufgabe 7:*/
        /* Sie überprüfen an mehreren Stellen, ob die Liste leer ist. Das ist redundant. Schreiben Sie ganz unten in die Klasse eine Methode istListeLeer():boolean und setzen Sie sie an den entsprechenden Stellen ein.*/
    }

    /**
     * Aufgabe 1 - Der Apfel, den das Sammler-Objekt gerade berührt, wird der Liste apfelliste hinzugefügt und von der Welt entfernt.
     * Ergänzungsaufgabe:
     * Erweitern Sie die Methode so, dass zuerst überprüft wird, ob das berührte Apfelobjekt ein Monsterapfel ist. Wenn das der Fall ist, wird dieses Objekt an die erste Stelle der Liste gesetzt (also an Position 0). Das machen Sie mit add(indexwert:int, objekt:Object) - der Rest der Liste verschiebt sich dann nach hinten.
     */
    public void apfelEinladen()
    {
        /* An dieser Position geben Sie  die Meldung "Auto enthält x Äpfel! ...." aus*/
        int xPos = 300;
        int yPos = this.getWorld().getHeight() - 80;
        this.getWorld().showText("Hier könnte eine Meldung stehen", xPos, yPos);
    }

    /**
     * Aufgabe 2: Wenn das Auto mehr als 10 Äpfel enthält, wird der 11. Apfel ausgeladen (d.h aus der Liste entfernt und wieder auf die Welt gesetzt). Bitte entsprechende Meldungen ausgeben.
     * 
     * Schritt-für-Schritt-Vorgehen:
     * Überprüfen Sie, ob das Auto mehr als 10 Äpfel enthält. Wenn das der Fall ist...
     * - Ausgabe "Auto enthält x Äpfel!" (statt x natürlich die Anzahl der geladenen Äpfel ausgeben)
     * - Den 11. Apfel auf die Welt setzen und aus der Liste entfernen.
     * - Ausgabe: "Ein Apfel wurde entfernt, es sind noch x Äpfel geladen."
     */
    public void pruefeAutoAufUeberladung()
    {
        /* An dieser Position geben Sie  die Meldung "Auto enthält x Äpfel! ...." aus*/
        int xPos = 300;
        int yPos = 50;
        /* An dieser Position geben Sie  die Meldung "Ein Apfel wurde entfernt ..." aus*/
        int xPos1 = 300;
        int yPos1 = 80;
        /* Und jetzt geht's los:*/
        if (1 == 1) {
        }
    }

    /**
     * Aufgabe 3 - Geben Sie eine Liste aller geladener Äpfel aus (Indexnummer und Gewicht anzeigen), also im Format
     * "Apfel 3 : 312 Gramm". Machen Sie das auf der Konsole
     * Ergänzen Sie die Methode so, dass zuerst überprüft wird, ob die Liste überhaupt Objekte enthält. Wenn sie keine Objekte enthält, wird eine entsprechende Ausgabe vorgenommen ("Keine Äpfel im Auto!")
     */
    public void listeAllerAepfelAusgeben()
    {
    }

    /**
     * Aufgabe 4: Überprüfen Sie, ob sich ein Apfel in der Liste befindet. Falls ja, setzen Sie den zuletzt eingeladenen Apfel auf die Welt und entfernen ihn aus der Liste. Ausgabe: "Apfel mit Index x wurde ausgeladen - noch y Äpfel im Auto."
     */
    public void einenApfelAusladen()
    {
        /* An dieser Position geben Sie  die Meldung "Auto mit Index ..." aus*/
        int xPos = 300;
        int yPos = this.getWorld().getHeight() - 80;
        /* ...*/
        this.getWorld().showText("Hier könnte eine Meldung stehen", xPos, yPos);
    }

    /**
     * Aufgabe 5: Der User gibt eine Indexnummer ein, der Apfel mit dieser Indexnummer wird aus der Liste entfernt.
     * Schritt-für-Schritt:
     * - Überprüfen Sie, ob ein Apfel mit der angegebenen Indexnummer in der Liste ist. Evtl. Ausgabe einer Fehlermeldung. (Sie brauchen NICHT zu überprüfen, ob der User eine Zahl eingeben hat oder nicht.)
     * - Entfernen Sie den Apfel mit der gewünschten Indexnummer aus der Liste und geben Sie eine Erfolgsmeldung aus. Achtung: Indexnummer muss in einen int-Wert umgewandelt werden!
     */
    public void einenGeladenenApfelEssen()
    {
        /* An dieser Position geben Sie  die Meldung aus*/
        int xPos = 300;
        int yPos = this.getWorld().getHeight() - 80;
        /* */
        String apfelIndexnummer = Greenfoot.ask("Welchen Apfel wollen Sie ausladen? Indexnummer eingeben:");
    }

    /**
     * Aufgabe 6: Überprüfen Sie, ob die World-Liste getObjects(Apfel.class) leer ist. Wenn ja, wird true zurückgegeben, wenn nein - false.
     */
    public boolean alleAepfelEingesammelt()
    {
        return false;
    }
}
