DefaultCampfireDisplay.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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.item.ItemStack;
  9. import net.minecraft.recipe.CampfireCookingRecipe;
  10. import net.minecraft.recipe.Ingredient;
  11. import net.minecraft.util.DefaultedList;
  12. import net.minecraft.util.Identifier;
  13. import java.util.Collections;
  14. import java.util.List;
  15. import java.util.Optional;
  16. public class DefaultCampfireDisplay implements RecipeDisplay<CampfireCookingRecipe> {
  17. private List<ItemStack> inputs, output;
  18. private int cookTime;
  19. private CampfireCookingRecipe display;
  20. public DefaultCampfireDisplay(CampfireCookingRecipe recipe) {
  21. this(recipe.getPreviewInputs(), recipe.getOutput(), recipe.getCookTime());
  22. this.display = recipe;
  23. }
  24. public DefaultCampfireDisplay(DefaultedList<Ingredient> ingredients, ItemStack output, int cookTime) {
  25. this.inputs = Lists.newArrayList();
  26. ingredients.stream().map(ingredient -> Lists.newArrayList(ingredient.getStackArray())).forEach(inputs::addAll);
  27. this.output = Collections.singletonList(output);
  28. this.cookTime = cookTime;
  29. }
  30. public int getCookTime() {
  31. return cookTime;
  32. }
  33. @Override
  34. public Optional<CampfireCookingRecipe> getRecipe() {
  35. return Optional.ofNullable(display);
  36. }
  37. @Override
  38. public List<List<ItemStack>> getInput() {
  39. return Collections.singletonList(inputs);
  40. }
  41. @Override
  42. public List<ItemStack> getOutput() {
  43. return this.output;
  44. }
  45. @Override
  46. public Identifier getRecipeCategory() {
  47. return DefaultPlugin.CAMPFIRE;
  48. }
  49. @Override
  50. public List<List<ItemStack>> getRequiredItems() {
  51. return getInput();
  52. }
  53. }