package mezz.jei.api.gui;
import javax.annotation.Nonnull;
import java.util.Collection;
import java.util.List;
import net.minecraft.item.ItemStack;
/**
* IGuiItemStackGroup displays ItemStacks in a gui.
*
* If multiple ItemStacks are set, they will be displayed in rotation.
* ItemStacks with subtypes and wildcard metadata will be displayed as multiple ItemStacks.
*/
public interface IGuiItemStackGroup extends IGuiIngredientGroup<ItemStack> {
/**
* Initialize the itemStack at slotIndex.
*
* @param slotIndex the slot index of this itemStack
* @param input whether this slot is an input. Used for the recipe-fill feature.
* @param xPosition x position of the slot relative to the recipe background
* @param yPosition y position of the slot relative to the recipe background
*/
void init(int slotIndex, boolean input, int xPosition, int yPosition);
/**
* Takes a list of ingredients from IRecipeWrapper getInputs or getOutputs
*/
void setFromRecipe(int slotIndex, @Nonnull List ingredients);
/**
* Takes an Object from IRecipeWrapper getInputs or getOutputs
*/
void setFromRecipe(int slotIndex, @Nonnull Object ingredients);
@Override
void set(int slotIndex, @Nonnull Collection<ItemStack> itemStacks);
@Override
void set(int slotIndex, @Nonnull ItemStack itemStack);
@Override
void addTooltipCallback(@Nonnull ITooltipCallback<ItemStack> tooltipCallback);
}