DefaultSmeltingDisplay.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package me.shedaniel.rei.plugin;
  2. import com.google.common.collect.Lists;
  3. import me.shedaniel.rei.api.RecipeDisplay;
  4. import net.minecraft.block.entity.FurnaceBlockEntity;
  5. import net.minecraft.item.Item;
  6. import net.minecraft.item.ItemStack;
  7. import net.minecraft.recipe.cooking.SmeltingRecipe;
  8. import net.minecraft.util.Identifier;
  9. import java.util.Arrays;
  10. import java.util.List;
  11. import java.util.Optional;
  12. import java.util.stream.Collectors;
  13. public class DefaultSmeltingDisplay implements RecipeDisplay<SmeltingRecipe> {
  14. private SmeltingRecipe display;
  15. private List<List<ItemStack>> input;
  16. private List<ItemStack> output;
  17. public DefaultSmeltingDisplay(SmeltingRecipe recipe) {
  18. this.display = recipe;
  19. List<ItemStack> fuel = Lists.newArrayList();
  20. this.input = Lists.newArrayList();
  21. fuel.addAll(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
  22. recipe.getPreviewInputs().forEach(ingredient -> {
  23. input.add(Arrays.asList(ingredient.getStackArray()));
  24. });
  25. input.add(fuel);
  26. this.output = Arrays.asList(recipe.getOutput());
  27. }
  28. @Override
  29. public Optional<SmeltingRecipe> getRecipe() {
  30. return Optional.ofNullable(display);
  31. }
  32. @Override
  33. public List<List<ItemStack>> getInput() {
  34. return input;
  35. }
  36. public List<ItemStack> getFuel() {
  37. return input.get(1);
  38. }
  39. @Override
  40. public List<ItemStack> getOutput() {
  41. return output;
  42. }
  43. @Override
  44. public Identifier getRecipeCategory() {
  45. return DefaultPlugin.SMELTING;
  46. }
  47. @Override
  48. public List<List<ItemStack>> getRequiredItems() {
  49. return input;
  50. }
  51. }