DefaultShapelessDisplay.java 1.5 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 net.minecraft.item.ItemStack;
  8. import net.minecraft.recipe.ShapelessRecipe;
  9. import java.util.Collections;
  10. import java.util.List;
  11. import java.util.Optional;
  12. import java.util.stream.Collectors;
  13. public class DefaultShapelessDisplay implements DefaultCraftingDisplay {
  14. private ShapelessRecipe display;
  15. private List<List<ItemStack>> input;
  16. private List<ItemStack> output;
  17. public DefaultShapelessDisplay(ShapelessRecipe recipe) {
  18. this.display = recipe;
  19. this.input = Lists.newArrayList(recipe.getPreviewInputs().stream().map(i -> Lists.newArrayList(i.getStackArray())).collect(Collectors.toList()));
  20. this.output = Collections.singletonList(recipe.getOutput());
  21. }
  22. @Override
  23. public Optional<ShapelessRecipe> getRecipe() {
  24. return Optional.ofNullable(display);
  25. }
  26. @Override
  27. public List<List<ItemStack>> getInput() {
  28. return input;
  29. }
  30. @Override
  31. public List<ItemStack> getOutput() {
  32. return output;
  33. }
  34. @Override
  35. public List<List<ItemStack>> getRequiredItems() {
  36. return input;
  37. }
  38. @Override
  39. public int getWidth() {
  40. if (display.getPreviewInputs().size() > 4)
  41. return 3;
  42. return 2;
  43. }
  44. @Override
  45. public int getHeight() {
  46. if (display.getPreviewInputs().size() > 4)
  47. return 3;
  48. return 2;
  49. }
  50. }