/* * Roughly Enough Items by Danielshe. * Licensed under the MIT License. */ package me.shedaniel.rei.api; import com.google.common.collect.Lists; import me.shedaniel.rei.server.ContainerInfo; import net.minecraft.container.Container; import net.minecraft.item.ItemStack; import java.util.ArrayList; import java.util.Collections; import java.util.List; public interface TransferRecipeDisplay extends RecipeDisplay { int getWidth(); int getHeight(); default List> getOrganisedInput(ContainerInfo containerInfo, Container container) { List> list = Lists.newArrayListWithCapacity(containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container)); for (int i = 0; i < containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container); i++) { list.add(Lists.newArrayList()); } return list; } default List> getOrganisedInputEntries(ContainerInfo containerInfo, Container container) { List> input = getOrganisedInput(containerInfo, container); if (input.isEmpty()) return Collections.emptyList(); List> list = new ArrayList<>(); for (List stacks : input) { List entries = new ArrayList<>(); for (ItemStack stack : stacks) { entries.add(EntryStack.create(stack)); } list.add(entries); } return list; } }