VanillaSmokerRecipe.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package me.shedaniel.plugin.smoker;
  2. import me.shedaniel.api.IRecipe;
  3. import net.minecraft.block.entity.SmokerBlockEntity;
  4. import net.minecraft.item.Item;
  5. import net.minecraft.item.ItemStack;
  6. import net.minecraft.recipe.Ingredient;
  7. import net.minecraft.recipe.smelting.SmokingRecipe;
  8. import java.util.*;
  9. import java.util.stream.Collectors;
  10. public class VanillaSmokerRecipe implements IRecipe<ItemStack> {
  11. private final SmokingRecipe recipe;
  12. @Override
  13. public String getId() {
  14. return "smoker";
  15. }
  16. public VanillaSmokerRecipe(SmokingRecipe recipe) {
  17. this.recipe = recipe;
  18. }
  19. @Override
  20. public List<ItemStack> getOutput() {
  21. List<ItemStack> output = new LinkedList<>();
  22. output.add(recipe.getOutput().copy());
  23. return output;
  24. }
  25. @Override
  26. public List<List<ItemStack>> getInput() {
  27. List<List<ItemStack>> input = new LinkedList<>();
  28. for(Ingredient ingredient : recipe.getPreviewInputs()) {
  29. List<ItemStack> ingredients = Arrays.asList(ingredient.getStackArray());
  30. input.add(ingredients);
  31. }
  32. input.add(SmokerBlockEntity.createBurnableMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
  33. return input;
  34. }
  35. @Override
  36. public List<List<ItemStack>> getRecipeRequiredInput() {
  37. List<List<ItemStack>> input = new LinkedList<>();
  38. for(Ingredient ingredient : recipe.getPreviewInputs())
  39. Collections.addAll(input, new LinkedList<>(Arrays.asList(ingredient.getStackArray())));
  40. return input;
  41. }
  42. public SmokingRecipe getRecipe() {
  43. return recipe;
  44. }
  45. }