/* * Roughly Enough Items by Danielshe. * Licensed under the MIT License. */ package me.shedaniel.rei.plugin; import me.shedaniel.rei.api.RecipeDisplay; import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; import net.minecraft.recipe.Recipe; import net.minecraft.util.Identifier; import java.util.*; import java.util.stream.Collectors; public class DefaultCompostingDisplay implements RecipeDisplay { private List order, allItems; private Map inputMap; private ItemStack[] output; private int page; public DefaultCompostingDisplay(int page, List order, Map inputMap, List allItems, ItemStack[] output) { this.page = page; this.order = order; this.inputMap = inputMap; this.output = output; this.allItems = allItems; } public int getPage() { return page; } @Override public Optional getRecipe() { return Optional.empty(); } @Override public List> getInput() { List> lists = new ArrayList<>(); allItems.stream().forEachOrdered(itemProvider -> { lists.add(Arrays.asList(itemProvider.asItem().getDefaultStack())); }); return lists; } public Map getInputMap() { return inputMap; } @Override public List getOutput() { return Arrays.asList(output); } @Override public Identifier getRecipeCategory() { return DefaultPlugin.COMPOSTING; } @Override public List> getRequiredItems() { return Arrays.asList(new LinkedList<>(allItems.stream().map(ItemConvertible::asItem).map(Item::getDefaultStack).collect(Collectors.toList()))); } public List getItemsByOrder() { return order; } }