/* * 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.ItemStack; import net.minecraft.recipe.AbstractCookingRecipe; import net.minecraft.recipe.CampfireCookingRecipe; import net.minecraft.recipe.Ingredient; import net.minecraft.util.DefaultedList; import net.minecraft.util.Identifier; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; public class DefaultCampfireDisplay implements RecipeDisplay { private List> inputs; private List output; private int cookTime; private CampfireCookingRecipe display; public DefaultCampfireDisplay(CampfireCookingRecipe recipe) { this(recipe.getPreviewInputs(), recipe.getOutput(), recipe.getCookTime()); this.display = recipe; } public DefaultCampfireDisplay(DefaultedList ingredients, ItemStack output, int cookTime) { this.inputs = ingredients.stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList()); this.output = Collections.singletonList(output); this.cookTime = cookTime; } public int getCookTime() { return cookTime; } @Override public Optional getRecipeLocation() { return Optional.ofNullable(display).map(AbstractCookingRecipe::getId); } @Override public List> getInput() { return inputs; } @Override public List getOutput() { return this.output; } @Override public Identifier getRecipeCategory() { return DefaultPlugin.CAMPFIRE; } @Override public List> getRequiredItems() { return getInput(); } }