DefaultCraftingDisplay.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Roughly Enough Items by Danielshe.
  3. * Licensed under the MIT License.
  4. */
  5. package me.shedaniel.rei.plugin.crafting;
  6. import com.google.common.collect.Lists;
  7. import me.shedaniel.rei.api.EntryStack;
  8. import me.shedaniel.rei.api.TransferRecipeDisplay;
  9. import me.shedaniel.rei.plugin.DefaultPlugin;
  10. import me.shedaniel.rei.server.ContainerInfo;
  11. import net.minecraft.container.Container;
  12. import net.minecraft.recipe.Recipe;
  13. import net.minecraft.util.Identifier;
  14. import java.util.Collections;
  15. import java.util.List;
  16. import java.util.Optional;
  17. public interface DefaultCraftingDisplay extends TransferRecipeDisplay {
  18. @Override
  19. default Identifier getRecipeCategory() {
  20. return DefaultPlugin.CRAFTING;
  21. }
  22. @Override
  23. default public int getWidth() {
  24. return 2;
  25. }
  26. @Override
  27. default public int getHeight() {
  28. return 2;
  29. }
  30. Optional<Recipe<?>> getOptionalRecipe();
  31. @Override
  32. default List<List<EntryStack>> getOrganisedInputEntries(ContainerInfo<Container> containerInfo, Container container) {
  33. List<List<EntryStack>> list = Lists.newArrayListWithCapacity(containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container));
  34. for (int i = 0; i < containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container); i++) {
  35. list.add(Collections.emptyList());
  36. }
  37. for (int i = 0; i < getInputEntries().size(); i++) {
  38. List<EntryStack> stacks = getInputEntries().get(i);
  39. list.set(DefaultCraftingCategory.getSlotWithSize(this, i, containerInfo.getCraftingWidth(container)), stacks);
  40. }
  41. return list;
  42. }
  43. }