DefaultShapelessDisplay.java 1.5 KB

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