package main.entities.player;

import main.items.Item;

/**
 * Container Klasse für das Inventar des Spielers,
 * eventuell später verallgemeinerbar für Truhen o.ä. je nach design dieser.
 */
public class PlayerInventory {
    private int coins;
    private Item[] items;
    private int currentItem;

    /**
     * Erstellt ein Player Inventar, welches einen Coin counter und ein Item Inventar enthält.
     * @param inventorySize Gibt die größe des Item inventars als int an.
     */
    public PlayerInventory(int inventorySize){
            items = new Item [inventorySize];
    }

    /**
     * Getter für den Coin counter
     * @return Gibt die Anzahl der Coins im Inventar als int zurück.
     */
    public int getCoins(){
        return coins;
    }

    /**
     * Getter für das Items im Inventar.
     * @return gibt ein Array mit allen Item Objekten zurück, die im Inventar enthalten sind.
     */
    public Item[] getItems(){
        return items;
    }

    /**
     * Ersetzt das jetzige Inventar um ein neues mit im Item-Array items angegebenen Items.
     * @param items Array mit Items die das Inventar ersetzen sollen.
     */
    public void setItems(Item[] items) {
        this.items = items;
    }

    /**
     * Setzt das gerade ausgewählte Item fest.
     * @param currentItem int gibt an welcher Index des Item Arrays ausgewählt werden soll.
     */
    public void setCurrentItem(int currentItem) {
        this.currentItem = currentItem;
    }

    /**
     * Methode zum Hinzufügen von Items.
     * @param newItem Das Item, dass hinzugefügt werden soll.
     * @return gibt zurück ob das Item hinzugefügt wurde, d.h. true wenn hinzugefügt und false wenn nicht hinzugefügt.
     */
    public boolean addItem(Item newItem){
        for(int i =0;i< items.length;i++) {
            if (items[i] == null) {
                items[i] = newItem;
                return true;
            }
        }
        return false;
    }





}
