package me.shedaniel.plugin.furnace; import me.shedaniel.api.IRecipe; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipe; import net.minecraft.item.crafting.Ingredient; import net.minecraft.tileentity.TileEntityFurnace; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; public class VanillaFurnaceRecipe implements IRecipe { private final FurnaceRecipe recipe; @Override public String getId() { return "furnace"; } public VanillaFurnaceRecipe(FurnaceRecipe recipe) { this.recipe = recipe; } @Override public List getOutput() { List output = new LinkedList<>(); output.add(recipe.getRecipeOutput().copy()); return output; } @Override public List> getInput() { List> input = new LinkedList<>(); for(Ingredient ingredient : recipe.getIngredients()) { List ingredients = Arrays.asList(ingredient.getMatchingStacks()); input.add(ingredients); } input.add(TileEntityFurnace.getBurnTimes().keySet().stream().map(Item::getDefaultInstance).collect(Collectors.toList())); return input; } @Override public List> getRecipeRequiredInput() { List> input = new LinkedList<>(); for(Ingredient ingredient : recipe.getIngredients()) Collections.addAll(input, new LinkedList<>(Arrays.asList(ingredient.getMatchingStacks()))); return input; } public FurnaceRecipe getRecipe() { return recipe; } }