DefaultBrewingDisplay.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package me.shedaniel.rei.plugin;
  2. import me.shedaniel.rei.api.IRecipeDisplay;
  3. import net.minecraft.block.Blocks;
  4. import net.minecraft.item.ItemStack;
  5. import net.minecraft.item.Items;
  6. import net.minecraft.recipe.Ingredient;
  7. import net.minecraft.recipe.Recipe;
  8. import net.minecraft.util.Identifier;
  9. import java.util.ArrayList;
  10. import java.util.Arrays;
  11. import java.util.List;
  12. import java.util.Optional;
  13. public class DefaultBrewingDisplay implements IRecipeDisplay {
  14. private ItemStack input, output;
  15. private Ingredient reactant;
  16. public DefaultBrewingDisplay(ItemStack input, Ingredient reactant, ItemStack output) {
  17. this.input = input;
  18. this.reactant = reactant;
  19. this.output = output;
  20. }
  21. @Override
  22. public Optional<Recipe> getRecipe() {
  23. return Optional.empty();
  24. }
  25. @Override
  26. public List<List<ItemStack>> getInput() {
  27. return Arrays.asList(Arrays.asList(input), Arrays.asList(reactant.getStackArray()));
  28. }
  29. @Override
  30. public List<ItemStack> getOutput() {
  31. return Arrays.asList(output);
  32. }
  33. @Override
  34. public Identifier getRecipeCategory() {
  35. return DefaultPlugin.BREWING;
  36. }
  37. public List<ItemStack> getOutput(int slot) {
  38. List<ItemStack> stack = new ArrayList<>();
  39. for(int i = 0; i < slot * 2; i++)
  40. stack.add(new ItemStack(Blocks.AIR));
  41. for(int i = 0; i < 6 - slot * 2; i++)
  42. stack.addAll(getOutput());
  43. return stack;
  44. }
  45. @Override
  46. public List<List<ItemStack>> getRequiredItems() {
  47. return Arrays.asList(Arrays.asList(new ItemStack(Items.AIR)));
  48. }
  49. }