CraftingContainerInfoWrapper.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * Roughly Enough Items by Danielshe.
  3. * Licensed under the MIT License.
  4. */
  5. package me.shedaniel.rei.plugin.containers;
  6. import me.shedaniel.rei.server.ContainerInfo;
  7. import me.shedaniel.rei.server.RecipeFinder;
  8. import net.minecraft.container.Container;
  9. import net.minecraft.container.CraftingContainer;
  10. import net.minecraft.item.ItemStack;
  11. public class CraftingContainerInfoWrapper<T extends CraftingContainer<?>> implements ContainerInfo<T> {
  12. private Class<? extends CraftingContainer<?>> containerClass;
  13. public <T extends CraftingContainer<?>> CraftingContainerInfoWrapper(Class<T> containerClass) {
  14. this.containerClass = containerClass;
  15. }
  16. public static <T extends CraftingContainer<?>> ContainerInfo<T> create(Class<T> containerClass) {
  17. return new CraftingContainerInfoWrapper<T>(containerClass);
  18. }
  19. @Override
  20. public Class<? extends Container> getContainerClass() {
  21. return containerClass;
  22. }
  23. @Override
  24. public int getCraftingResultSlotIndex(T container) {
  25. return container.getCraftingResultSlotIndex();
  26. }
  27. @Override
  28. public int getCraftingWidth(T container) {
  29. return container.getCraftingWidth();
  30. }
  31. @Override
  32. public int getCraftingHeight(T container) {
  33. return container.getCraftingHeight();
  34. }
  35. @Override
  36. public void clearCraftingSlots(T container) {
  37. container.clearCraftingSlots();
  38. }
  39. @Override
  40. public void populateRecipeFinder(T container, RecipeFinder var1) {
  41. container.populateRecipeFinder(new net.minecraft.recipe.RecipeFinder() {
  42. @Override
  43. public void addNormalItem(ItemStack itemStack_1) {
  44. var1.addNormalItem(itemStack_1);
  45. }
  46. });
  47. }
  48. }