Forráskód Böngészése

6x faster craftable combinding filter

Unknown 5 éve
szülő
commit
44c1f9aa01

+ 46 - 0
src/main/java/me/shedaniel/rei/api/Renderer.java

@@ -31,6 +31,26 @@ public abstract class Renderer extends DrawableHelper {
         };
     }
     
+    /**
+     * Gets an item stack renderer by an item stack supplier
+     *
+     * @param supplier the supplier for getting the item stack
+     * @return the item stack renderer
+     */
+    public static ItemStackRenderer fromItemStackSupplierNoCounts(Supplier<ItemStack> supplier) {
+        return new ItemStackRenderer() {
+            @Override
+            public ItemStack getItemStack() {
+                return supplier.get();
+            }
+            
+            @Override
+            protected boolean renderCounts() {
+                return false;
+            }
+        };
+    }
+    
     /**
      * Gets an item stack renderer by an item stack
      *
@@ -41,6 +61,16 @@ public abstract class Renderer extends DrawableHelper {
         return fromItemStackSupplier(() -> stack);
     }
     
+    /**
+     * Gets an item stack renderer by an item stack
+     *
+     * @param stack the item stack to be displayed
+     * @return the item stack renderer
+     */
+    public static ItemStackRenderer fromItemStackNoCounts(ItemStack stack) {
+        return fromItemStackSupplierNoCounts(() -> stack);
+    }
+    
     /**
      * Gets an empty renderer
      *
@@ -72,6 +102,22 @@ public abstract class Renderer extends DrawableHelper {
         };
     }
     
+    public static ItemStackRenderer fromItemStacksNoCounts(List<ItemStack> stacks) {
+        return new ItemStackRenderer() {
+            @Override
+            public ItemStack getItemStack() {
+                if (stacks.isEmpty())
+                    return ItemStack.EMPTY;
+                return stacks.get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacks.size()) / 1f));
+            }
+            
+            @Override
+            protected boolean renderCounts() {
+                return false;
+            }
+        };
+    }
+    
     /**
      * Gets the current blit offset
      *

+ 1 - 1
src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java

@@ -299,7 +299,7 @@ public class RecipeViewingScreen extends Screen {
             List<String> list = Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("text.rei.working_station"));
             xx += (innerWidth - 1) * 18;
             for (List<ItemStack> workingStation : workingStations) {
-                preWidgets.add(new SlotWidget(xx, yy, workingStation, true, true, true) {
+                preWidgets.add(new SlotWidget(xx, yy, Renderer.fromItemStacks(workingStation), true, true, true) {
                     @Override
                     protected List<String> getExtraToolTips(ItemStack stack) {
                         return list;

+ 1 - 1
src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java

@@ -107,7 +107,7 @@ public class VillagerRecipeViewingScreen extends Screen {
             int index = 0;
             List<String> list = Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("text.rei.working_station"));
             for (List<ItemStack> workingStation : workingStations) {
-                widgets.add(new SlotWidget(xx, yy, workingStation, true, true, true) {
+                widgets.add(new SlotWidget(xx, yy, Renderer.fromItemStacks(workingStation), true, true, true) {
                     @Override
                     protected List<String> getExtraToolTips(ItemStack stack) {
                         return list;

+ 1 - 1
src/main/java/me/shedaniel/rei/gui/renderers/EmptyRenderer.java

@@ -17,7 +17,7 @@ public class EmptyRenderer extends Renderer {
     
     @Override
     public void render(int x, int y, double mouseX, double mouseY, float delta) {
-
+    
     }
     
 }

+ 5 - 1
src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java

@@ -38,7 +38,7 @@ public abstract class ItemStackRenderer extends Renderer {
         GlStateManager.enableRescaleNormal();
         GlStateManager.enableDepthTest();
         itemRenderer.renderGuiItem(getItemStack(), l, i1);
-        itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1);
+        itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1, renderCounts() ? null : "");
         itemRenderer.zOffset = 0.0F;
         this.blitOffset = 0;
         if (drawTooltip && mouseX >= x - 8 && mouseX <= x + 8 && mouseY >= y - 6 && mouseY <= y + 10)
@@ -50,6 +50,10 @@ public abstract class ItemStackRenderer extends Renderer {
         ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltip(itemStack)));
     }
     
+    protected boolean renderCounts() {
+        return true;
+    }
+    
     protected List<String> getTooltip(ItemStack itemStack) {
         final String modString = ClientHelper.getInstance().getFormattedModFromItem(itemStack.getItem());
         List<String> toolTip = Lists.newArrayList(ItemListOverlay.tryGetItemStackToolTip(itemStack, true));

+ 12 - 6
src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java

@@ -11,6 +11,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.ClientHelper;
 import me.shedaniel.rei.api.DisplayHelper;
 import me.shedaniel.rei.api.RecipeHelper;
+import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.client.ScreenHelper;
 import me.shedaniel.rei.client.SearchArgument;
 import me.shedaniel.rei.gui.config.ItemCheatingMode;
@@ -176,7 +177,7 @@ public class ItemListOverlay extends Widget {
                 j++;
                 if (j > currentDisplayed.size())
                     break;
-                widgets.add(new SlotWidget(x, y, Collections.singletonList(currentDisplayed.get(j - 1)), false, true, true) {
+                widgets.add(new SlotWidget(x, y, Renderer.fromItemStackNoCounts(currentDisplayed.get(j - 1)), false, true, true) {
                     @Override
                     protected void queueTooltip(ItemStack itemStack, float delta) {
                         ClientPlayerEntity player = minecraft.player;
@@ -286,13 +287,18 @@ public class ItemListOverlay extends Widget {
         });
         List<ItemStack> stacks = Collections.emptyList();
         if (lastSearchArgument.isEmpty())
-            stacks = Collections.unmodifiableList(os);
+            stacks = os;
         else
-            stacks = Collections.unmodifiableList(os.stream().filter(itemStack -> filterItem(itemStack, lastSearchArgument)).collect(Collectors.toList()));
+            stacks = os.stream().filter(itemStack -> filterItem(itemStack, lastSearchArgument)).collect(Collectors.toList());
         if (!RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() || stacks.isEmpty() || inventoryItems.isEmpty())
-            return stacks;
-        List<ItemStack> workingItems = Lists.newArrayList(RecipeHelper.getInstance().findCraftableByItems(inventoryItems));
-        return stacks.stream().filter(itemStack -> workingItems.stream().anyMatch(stack -> stack.isItemEqualIgnoreDamage(itemStack))).collect(Collectors.toList());
+            return Collections.unmodifiableList(stacks);
+        List<ItemStack> workingItems = RecipeHelper.getInstance().findCraftableByItems(inventoryItems);
+        List<ItemStack> newList = Lists.newArrayList();
+        for (ItemStack workingItem : workingItems) {
+            if (stacks.stream().anyMatch(i -> i.isItemEqualIgnoreDamage(workingItem)))
+                newList.add(workingItem);
+        }
+        return newList;
     }
     
     public List<SearchArgument[]> getLastSearchArgument() {

+ 8 - 10
src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java

@@ -18,8 +18,10 @@ import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
 import java.awt.*;
+import java.util.Collections;
+import java.util.LinkedList;
 import java.util.List;
-import java.util.*;
+import java.util.Locale;
 import java.util.stream.Collectors;
 
 public class SlotWidget extends WidgetWithBounds {
@@ -30,12 +32,12 @@ public class SlotWidget extends WidgetWithBounds {
     private List<Renderer> renderers = new LinkedList<>();
     private boolean drawBackground, showToolTips, clickToMoreRecipes, drawHighlightedBackground;
     
-    public SlotWidget(int x, int y, ItemStack itemStack, boolean drawBackground, boolean showToolTips) {
-        this(x, y, Collections.singletonList(itemStack), drawBackground, showToolTips);
+    public SlotWidget(int x, int y, Renderer renderer, boolean drawBackground, boolean showToolTips) {
+        this(x, y, Collections.singletonList(renderer), drawBackground, showToolTips);
     }
     
-    public SlotWidget(int x, int y, Collection<ItemStack> itemList, boolean drawBackground, boolean showToolTips) {
-        this(x, y, itemList.stream().map(Renderer::fromItemStack).collect(Collectors.toList()), drawBackground, showToolTips);
+    public SlotWidget(int x, int y, Renderer renderer, boolean drawBackground, boolean showToolTips, boolean clickToMoreRecipes) {
+        this(x, y, Collections.singletonList(renderer), drawBackground, showToolTips, clickToMoreRecipes);
     }
     
     public SlotWidget(int x, int y, List<Renderer> renderers, boolean drawBackground, boolean showToolTips) {
@@ -48,7 +50,7 @@ public class SlotWidget extends WidgetWithBounds {
         this.drawHighlightedBackground = true;
     }
     
-    public SlotWidget(int x, int y, List<ItemStack> itemList, boolean drawBackground, boolean showToolTips, boolean clickToMoreRecipes) {
+    public SlotWidget(int x, int y, List<Renderer> itemList, boolean drawBackground, boolean showToolTips, boolean clickToMoreRecipes) {
         this(x, y, itemList, drawBackground, showToolTips);
         this.clickToMoreRecipes = clickToMoreRecipes;
     }
@@ -164,10 +166,6 @@ public class SlotWidget extends WidgetWithBounds {
         return Collections.emptyList();
     }
     
-    protected String getItemCountOverlay(ItemStack currentStack) {
-        return "";
-    }
-    
     public ItemStack getCurrentItemStack() {
         if (getCurrentRenderer() instanceof ItemStackRenderer)
             return ((ItemStackRenderer) getCurrentRenderer()).getItemStack();

+ 3 - 3
src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java

@@ -70,14 +70,14 @@ public class DefaultBlastingCategory implements RecipeCategory<DefaultBlastingDi
             }
         }));
         List<List<ItemStack>> input = recipeDisplay.getInput();
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true));
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplay.getFuel(), true, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, Renderer.fromItemStacks(input.get(0)), true, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, Renderer.fromItemStacks(recipeDisplay.getFuel()), true, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
             }
         });
-        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplay.getOutput(), false, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, Renderer.fromItemStacks(recipeDisplay.getOutput()), false, true, true));
         return widgets;
     }
     

+ 6 - 6
src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java

@@ -62,32 +62,32 @@ public class DefaultBrewingCategory implements RecipeCategory<DefaultBrewingDisp
                 blit(startPoint.x + 44, startPoint.y + 28, 103, 163, width, 4);
             }
         }));
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, Arrays.asList(new ItemStack(Items.BLAZE_POWDER)), false, true, true));
-        widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 1, recipeDisplay.getInput().get(0), false, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, Renderer.fromItemStack(new ItemStack(Items.BLAZE_POWDER)), false, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 1, Renderer.fromItemStacks(recipeDisplay.getInput().get(0)), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.input"));
             }
         });
-        widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 1, recipeDisplay.getInput().get(1), false, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 1, Renderer.fromItemStacks(recipeDisplay.getInput().get(1)), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.reactant"));
             }
         });
-        widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 35, recipeDisplay.getOutput(0), false, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 35, Renderer.fromItemStacks(recipeDisplay.getOutput(0)), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
             }
         });
-        widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 42, recipeDisplay.getOutput(1), false, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 42, Renderer.fromItemStacks(recipeDisplay.getOutput(1)), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
             }
         });
-        widgets.add(new SlotWidget(startPoint.x + 86, startPoint.y + 35, recipeDisplay.getOutput(2), false, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 86, startPoint.y + 35, Renderer.fromItemStacks(recipeDisplay.getOutput(2)), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java

@@ -64,8 +64,8 @@ public class DefaultCampfireCategory implements RecipeCategory<DefaultCampfireDi
                 MinecraftClient.getInstance().textRenderer.draw(text, bounds.x + bounds.width - length - 5, startPoint.y + 54 - 8, ScreenHelper.isDarkModeEnabled() ? 0xFFBBBBBB : 0xFF404040);
             }
         }));
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 11, recipeDisplaySupplier.get().getInput().get(0), true, true, true));
-        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 11, Renderer.fromItemStacks(recipeDisplaySupplier.get().getInput().get(0)), true, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));
         return widgets;
     }
     

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java

@@ -78,7 +78,7 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti
         int i = 0;
         for (int y = 0; y < 6; y++)
             for (int x = 0; x < 8; x++) {
-                widgets.add(new SlotWidget((int) bounds.getCenterX() - 72 + x * 18, bounds.y + y * 18, stacks.size() > i ? Arrays.asList(stacks.get(i).asItem().getStackForRender()) : Lists.newArrayList(), true, true, true) {
+                widgets.add(new SlotWidget((int) bounds.getCenterX() - 72 + x * 18, bounds.y + y * 18, stacks.size() > i ? Renderer.fromItemStack(stacks.get(i).asItem().getStackForRender()) : Renderer.empty(), true, true, true) {
                     @Override
                     protected List<String> getExtraToolTips(ItemStack stack) {
                         final List<String>[] thing = new List[]{null};
@@ -93,7 +93,7 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti
                 });
                 i++;
             }
-        widgets.add(new SlotWidget((int) startingPoint.x + 34, startingPoint.y + 5, recipeDisplaySupplier.get().getOutput(), false, true, true));
+        widgets.add(new SlotWidget((int) startingPoint.x + 34, startingPoint.y + 5, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));
         return widgets;
     }
     

+ 22 - 32
src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java

@@ -18,7 +18,6 @@ import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 
 import java.awt.*;
@@ -29,6 +28,27 @@ import java.util.function.Supplier;
 
 public class DefaultCraftingCategory implements RecipeCategory<DefaultCraftingDisplay> {
     
+    public static int getSlotWithSize(DefaultCraftingDisplay recipeDisplay, int num) {
+        if (recipeDisplay.getWidth() == 1) {
+            if (num == 1)
+                return 3;
+            if (num == 2)
+                return 6;
+        }
+        
+        if (recipeDisplay.getWidth() == 2) {
+            if (num == 2)
+                return 3;
+            if (num == 3)
+                return 4;
+            if (num == 4)
+                return 6;
+            if (num == 5)
+                return 7;
+        }
+        return num;
+    }
+    
     @Override
     public Identifier getIdentifier() {
         return DefaultPlugin.CRAFTING;
@@ -70,38 +90,8 @@ public class DefaultCraftingCategory implements RecipeCategory<DefaultCraftingDi
                 slots.get(i).setItemList(input.get(i));
         }
         widgets.addAll(slots);
-        widgets.add(new SlotWidget(startPoint.x + 95, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true) {
-            @Override
-            protected String getItemCountOverlay(ItemStack currentStack) {
-                if (currentStack.getCount() == 1)
-                    return "";
-                if (currentStack.getCount() < 1)
-                    return Formatting.RED.toString() + currentStack.getCount();
-                return currentStack.getCount() + "";
-            }
-        });
+        widgets.add(new SlotWidget(startPoint.x + 95, startPoint.y + 19, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));
         return widgets;
     }
     
-    public static int getSlotWithSize(DefaultCraftingDisplay recipeDisplay, int num) {
-        if (recipeDisplay.getWidth() == 1) {
-            if (num == 1)
-                return 3;
-            if (num == 2)
-                return 6;
-        }
-        
-        if (recipeDisplay.getWidth() == 2) {
-            if (num == 2)
-                return 3;
-            if (num == 3)
-                return 4;
-            if (num == 4)
-                return 6;
-            if (num == 5)
-                return 7;
-        }
-        return num;
-    }
-    
 }

+ 3 - 3
src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java

@@ -69,14 +69,14 @@ public class DefaultSmeltingCategory implements RecipeCategory<DefaultSmeltingDi
             }
         }));
         List<List<ItemStack>> input = recipeDisplaySupplier.get().getInput();
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true));
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, Renderer.fromItemStacks(input.get(0)), true, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, Renderer.fromItemStacks(recipeDisplaySupplier.get().getFuel()), true, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
             }
         });
-        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));
         return widgets;
     }
     

+ 3 - 3
src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java

@@ -69,14 +69,14 @@ public class DefaultSmokingCategory implements RecipeCategory<DefaultSmokingDisp
             }
         }));
         List<List<ItemStack>> input = recipeDisplaySupplier.get().getInput();
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true));
-        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) {
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, Renderer.fromItemStacks(input.get(0)), true, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, Renderer.fromItemStacks(recipeDisplaySupplier.get().getFuel()), true, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
                 return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
             }
         });
-        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));
         return widgets;
     }
     

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/stonecutting/DefaultStoneCuttingCategory.java

@@ -55,8 +55,8 @@ public class DefaultStoneCuttingCategory implements RecipeCategory<DefaultStoneC
                 blit(startPoint.x, startPoint.y, 0, 221, 82, 26);
             }
         }));
-        widgets.add(new SlotWidget(startPoint.x + 4, startPoint.y + 5, recipeDisplaySupplier.get().getInput().get(0), true, true, true));
-        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 5, recipeDisplaySupplier.get().getOutput(), false, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 4, startPoint.y + 5, Renderer.fromItemStacks(recipeDisplaySupplier.get().getInput().get(0)), true, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 5, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));
         return widgets;
     }
     

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/stripping/DefaultStrippingCategory.java

@@ -55,8 +55,8 @@ public class DefaultStrippingCategory implements RecipeCategory<DefaultStripping
                 blit(startPoint.x, startPoint.y, 0, 221, 82, 26);
             }
         }));
-        widgets.add(new SlotWidget(startPoint.x + 4, startPoint.y + 5, recipeDisplaySupplier.get().getInput().get(0), true, true, true));
-        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 5, recipeDisplaySupplier.get().getOutput(), false, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 4, startPoint.y + 5, Renderer.fromItemStacks(recipeDisplaySupplier.get().getInput().get(0)), true, true, true));
+        widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 5, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));
         return widgets;
     }
     

+ 0 - 1
src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java

@@ -21,7 +21,6 @@ import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 public class InputSlotCrafter<C extends Inventory> {