DefaultSmokingDisplay.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * Roughly Enough Items by Danielshe.
  3. * Licensed under the MIT License.
  4. */
  5. package me.shedaniel.rei.plugin.smoking;
  6. import me.shedaniel.rei.api.RecipeDisplay;
  7. import me.shedaniel.rei.plugin.DefaultPlugin;
  8. import net.minecraft.block.entity.FurnaceBlockEntity;
  9. import net.minecraft.item.Item;
  10. import net.minecraft.item.ItemStack;
  11. import net.minecraft.recipe.AbstractCookingRecipe;
  12. import net.minecraft.recipe.SmokingRecipe;
  13. import net.minecraft.util.Identifier;
  14. import java.util.Arrays;
  15. import java.util.Collections;
  16. import java.util.List;
  17. import java.util.Optional;
  18. import java.util.stream.Collectors;
  19. public class DefaultSmokingDisplay implements RecipeDisplay {
  20. private SmokingRecipe display;
  21. private List<List<ItemStack>> input;
  22. private List<ItemStack> output;
  23. public DefaultSmokingDisplay(SmokingRecipe recipe) {
  24. this.display = recipe;
  25. this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
  26. this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
  27. this.output = Collections.singletonList(recipe.getOutput());
  28. }
  29. @Override
  30. public Optional<Identifier> getRecipeLocation() {
  31. return Optional.ofNullable(display).map(AbstractCookingRecipe::getId);
  32. }
  33. @Override
  34. public List<List<ItemStack>> getInput() {
  35. return input;
  36. }
  37. public List<ItemStack> getFuel() {
  38. return input.get(1);
  39. }
  40. @Override
  41. public List<ItemStack> getOutput() {
  42. return output;
  43. }
  44. @Override
  45. public Identifier getRecipeCategory() {
  46. return DefaultPlugin.SMOKING;
  47. }
  48. @Override
  49. public List<List<ItemStack>> getRequiredItems() {
  50. return input;
  51. }
  52. }