DefaultSmokingDisplay.java 1.7 KB

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