Browse Source

Updated on Cloth, support for 1.15

Danielshe 5 năm trước cách đây
mục cha
commit
422527dc57
29 tập tin đã thay đổi với 115 bổ sung114 xóa
  1. 3 3
      gradle.properties
  2. 0 1
      src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
  3. 0 1
      src/main/java/me/shedaniel/rei/api/ConfigObject.java
  4. 10 10
      src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
  5. 2 2
      src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
  6. 20 17
      src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java
  7. 6 6
      src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
  8. 5 5
      src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
  9. 5 5
      src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
  10. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java
  11. 3 3
      src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
  12. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/RecipeArrowWidget.java
  13. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java
  14. 3 3
      src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java
  15. 3 3
      src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
  16. 7 7
      src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java
  17. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
  18. 7 7
      src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java
  19. 2 2
      src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java
  20. 4 4
      src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java
  21. 2 2
      src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java
  22. 2 2
      src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java
  23. 2 2
      src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java
  24. 4 4
      src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
  25. 4 4
      src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java
  26. 4 4
      src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java
  27. 2 2
      src/main/java/me/shedaniel/rei/plugin/stonecutting/DefaultStoneCuttingCategory.java
  28. 2 2
      src/main/java/me/shedaniel/rei/plugin/stripping/DefaultStrippingCategory.java
  29. 5 5
      src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java

+ 3 - 3
gradle.properties

@@ -1,9 +1,9 @@
-mod_version=3.0-pre
+mod_version=3.1-pre
 minecraft_version=1.14.3
 yarn_version=1.14.3+build.1
 fabricloader_version=0.4.8+build.155
 jankson_version=1.1.0
-cloth_events_version=0.4.0
-cloth_config_version=1.0.0
+cloth_events_version=0.5.1
+cloth_config_version=1.1.1
 modmenu_version=1.7.9+build.118
 fabric_api=0.3.0+build.198

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

@@ -7,7 +7,6 @@ package me.shedaniel.rei;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import me.shedaniel.cloth.api.ClientUtils;
 import me.shedaniel.cloth.hooks.ClothClientHooks;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.api.*;

+ 0 - 1
src/main/java/me/shedaniel/rei/api/ConfigObject.java

@@ -10,7 +10,6 @@ import me.shedaniel.rei.gui.config.ItemListOrdering;
 import me.shedaniel.rei.gui.config.RecipeScreenType;
 import me.shedaniel.rei.gui.config.SearchFieldLocation;
 import me.zeroeightsix.fiber.tree.ConfigNode;
-import me.zeroeightsix.fiber.tree.ConfigValue;
 
 public interface ConfigObject {
     

+ 10 - 10
src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java

@@ -6,9 +6,9 @@
 package me.shedaniel.rei.gui;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.ClientHelper;
@@ -144,7 +144,7 @@ public class ContainerScreenOverlay extends Widget {
                         fill(getBounds().x, getBounds().y, getBounds().x + 20, getBounds().y + 20, 1476440063);
                 }
                 MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 blit(getBounds().x + 3, getBounds().y + 3, 0, 0, 14, 14);
             }
             
@@ -204,7 +204,7 @@ public class ContainerScreenOverlay extends Widget {
                         super.render(mouseX, mouseY, delta);
                         GuiLighting.disable();
                         MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
-                        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                         blit(getBounds().x + 3, getBounds().y + 3, weather.getId() * 14, 14, 14, 14);
                     }
                     
@@ -383,7 +383,7 @@ public class ContainerScreenOverlay extends Widget {
             }
             blitOffset = 0;
         }
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         GuiLighting.disable();
         this.renderWidgets(mouseX, mouseY, delta);
         if (MinecraftClient.getInstance().currentScreen instanceof AbstractContainerScreen && RoughlyEnoughItemsCore.getConfigManager().getConfig().areClickableRecipeArrowsEnabled()) {
@@ -425,9 +425,9 @@ public class ContainerScreenOverlay extends Widget {
         int width = lines.stream().map(font::getStringWidth).max(Integer::compareTo).get();
         int height = lines.size() <= 1 ? 8 : lines.size() * 10;
         ScreenHelper.drawHoveringWidget(mouseX, mouseY, (x, y, aFloat) -> {
-            GlStateManager.disableRescaleNormal();
+            RenderHelper.disableRescaleNormal();
             GuiLighting.disable();
-            GlStateManager.disableLighting();
+            RenderHelper.disableLighting();
             this.blitOffset = 1000;
             this.fillGradient(x - 3, y - 4, x + width + 3, y - 3, -267386864, -267386864);
             this.fillGradient(x - 3, y + height + 3, x + width + 3, y + height + 4, -267386864, -267386864);
@@ -440,15 +440,15 @@ public class ContainerScreenOverlay extends Widget {
             this.fillGradient(x - 3, y + height + 2, x + width + 3, y + height + 3, 1344798847, 1344798847);
             int currentY = y;
             for (int lineIndex = 0; lineIndex < lines.size(); lineIndex++) {
-                GlStateManager.disableDepthTest();
+                RenderHelper.disableDepthTest();
                 font.drawWithShadow(lines.get(lineIndex), x, currentY, -1);
-                GlStateManager.enableDepthTest();
+                RenderHelper.enableDepthTest();
                 currentY += lineIndex == 0 ? 12 : 10;
             }
             this.blitOffset = 0;
-            GlStateManager.enableLighting();
+            RenderHelper.enableLighting();
             GuiLighting.enable();
-            GlStateManager.enableRescaleNormal();
+            RenderHelper.enableRescaleNormal();
         }, width, height, 0);
     }
     

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

@@ -6,8 +6,8 @@
 package me.shedaniel.rei.gui;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.*;
@@ -391,7 +391,7 @@ public class RecipeViewingScreen extends Screen {
             GuiLighting.disable();
             widget.render(mouseX, mouseY, delta);
         });
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         GuiLighting.disable();
         tabs.stream().filter(TabWidget::isSelected).forEach(tabWidget -> tabWidget.render(mouseX, mouseY, delta));
         GuiLighting.disable();

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

@@ -7,10 +7,10 @@ package me.shedaniel.rei.gui;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.mojang.blaze3d.platform.GlStateManager;
 import com.zeitheron.hammercore.client.utils.Scissors;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.*;
@@ -33,7 +33,10 @@ import net.minecraft.text.TranslatableText;
 import net.minecraft.util.Formatting;
 import net.minecraft.util.math.MathHelper;
 
-import java.util.*;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 public class VillagerRecipeViewingScreen extends Screen {
@@ -143,18 +146,18 @@ public class VillagerRecipeViewingScreen extends Screen {
                     selectedRecipeIndex = finalIndex;
                     VillagerRecipeViewingScreen.this.init();
                 }
-    
+                
                 @Override
                 public boolean isHovered(int mouseX, int mouseY) {
                     return (isMouseOver(mouseX, mouseY) && scrollListBounds.contains(mouseX, mouseY)) || focused;
                 }
-    
+                
                 @Override
                 protected int getTextureId(boolean boolean_1) {
                     enabled = selectedRecipeIndex != finalIndex;
                     return super.getTextureId(boolean_1);
                 }
-    
+                
                 @Override
                 public boolean mouseClicked(double mouseX, double mouseY, int button) {
                     if ((isMouseOver(mouseX, mouseY) && scrollListBounds.contains(mouseX, mouseY)) && enabled && button == 0) {
@@ -225,7 +228,7 @@ public class VillagerRecipeViewingScreen extends Screen {
             
             @Override
             public void render(int mouseX, int mouseY, float delta) {
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 font.draw((isHovered(mouseX, mouseY) ? Formatting.UNDERLINE.toString() : "") + text, x - font.getStringWidth(text) / 2, y, getDefaultColor());
                 if (clickable && getTooltips().isPresent())
                     if (!focused && containsMouse(mouseX, mouseY))
@@ -338,7 +341,7 @@ public class VillagerRecipeViewingScreen extends Screen {
         });
         GuiLighting.disable();
         ScreenHelper.getLastOverlay().render(mouseX, mouseY, delta);
-        GlStateManager.pushMatrix();
+        RenderHelper.pushMatrix();
         Scissors.begin();
         Scissors.scissor(0, scrollListBounds.y + 1, width, scrollListBounds.height - 2);
         for (int i = 0; i < buttonWidgets.size(); i++) {
@@ -369,11 +372,11 @@ public class VillagerRecipeViewingScreen extends Screen {
                 minY = this.scrollListBounds.y + 1;
             double scrollbarPositionMinX = scrollListBounds.getMaxX() - 6, scrollbarPositionMaxX = scrollListBounds.getMaxX() - 2;
             GuiLighting.disable();
-            GlStateManager.disableTexture();
-            GlStateManager.enableBlend();
-            GlStateManager.disableAlphaTest();
-            GlStateManager.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
-            GlStateManager.shadeModel(7425);
+            RenderHelper.disableTexture();
+            RenderHelper.enableBlend();
+            RenderHelper.disableAlphaTest();
+            RenderHelper.blendFuncSeparate(770, 771, 1, 0);
+            RenderHelper.shadeModel(7425);
             buffer.begin(7, VertexFormats.POSITION_COLOR);
             float b = ScreenHelper.isDarkModeEnabled() ? 0.37f : 1f;
             buffer.vertex(scrollbarPositionMinX, minY + scrollBarHeight, 1000D).color(b, b, b, scrollBarAlpha).next();
@@ -381,13 +384,13 @@ public class VillagerRecipeViewingScreen extends Screen {
             buffer.vertex(scrollbarPositionMaxX, minY, 1000D).color(b, b, b, scrollBarAlpha).next();
             buffer.vertex(scrollbarPositionMinX, minY, 1000D).color(b, b, b, scrollBarAlpha).next();
             tessellator.draw();
-            GlStateManager.shadeModel(7424);
-            GlStateManager.disableBlend();
-            GlStateManager.enableAlphaTest();
-            GlStateManager.enableTexture();
+            RenderHelper.shadeModel(7424);
+            RenderHelper.disableBlend();
+            RenderHelper.enableAlphaTest();
+            RenderHelper.enableTexture();
         }
         Scissors.end();
-        GlStateManager.popMatrix();
+        RenderHelper.popMatrix();
         ScreenHelper.getLastOverlay().lateRender(mouseX, mouseY, delta);
     }
     

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

@@ -6,7 +6,7 @@
 package me.shedaniel.rei.gui.renderers;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.ClientHelper;
 import me.shedaniel.rei.api.Renderer;
@@ -30,14 +30,14 @@ public abstract class ItemStackRenderer extends Renderer {
     @Override
     public void render(int x, int y, double mouseX, double mouseY, float delta) {
         int l = x - 8, i1 = y - 6;
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
         itemRenderer.zOffset = blitOffset;
         GuiLighting.enableForItems();
-        GlStateManager.colorMask(true, true, true, true);
-        GlStateManager.enableLighting();
-        GlStateManager.enableRescaleNormal();
-        GlStateManager.enableDepthTest();
+        RenderHelper.colorMask(true, true, true, true);
+        RenderHelper.enableLighting();
+        RenderHelper.enableRescaleNormal();
+        RenderHelper.enableDepthTest();
         itemRenderer.renderGuiItem(getItemStack(), l, i1);
         itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1, renderCounts() ? null : "");
         itemRenderer.zOffset = 0.0F;

+ 5 - 5
src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java

@@ -5,10 +5,10 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import it.unimi.dsi.fastutil.ints.IntList;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.*;
 import me.shedaniel.rei.impl.ScreenHelper;
 import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
@@ -94,11 +94,11 @@ public class AutoCraftingButtonWidget extends ButtonWidget {
         errorTooltip = error;
         int x = getBounds().x, y = getBounds().y, width = getBounds().width, height = getBounds().height;
         minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? BUTTON_LOCATION_DARK : BUTTON_LOCATION);
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         int textureOffset = this.getTextureId(isHovered(mouseX, mouseY));
-        GlStateManager.enableBlend();
-        GlStateManager.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
-        GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
+        RenderHelper.enableBlend();
+        RenderHelper.blendFuncSeparate(770, 771, 1, 0);
+        RenderHelper.blendFunc(770, 771);
         //Four Corners
         blit(x, y, 0, textureOffset * 80, 4, 4);
         blit(x + width - 4, y, 252, textureOffset * 80, 4, 4);

+ 5 - 5
src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java

@@ -5,9 +5,9 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.impl.ScreenHelper;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.sound.PositionedSoundInstance;
@@ -66,11 +66,11 @@ public abstract class ButtonWidget extends WidgetWithBounds {
     public void render(int mouseX, int mouseY, float delta) {
         int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;
         minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? BUTTON_LOCATION_DARK : BUTTON_LOCATION);
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         int textureOffset = this.getTextureId(isHovered(mouseX, mouseY));
-        GlStateManager.enableBlend();
-        GlStateManager.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
-        GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
+        RenderHelper.enableBlend();
+        RenderHelper.blendFuncSeparate(770, 771, 1, 0);
+        RenderHelper.blendFunc(770, 771);
         //Four Corners
         blit(x, y, 0, textureOffset * 80, 4, 4);
         blit(x + width - 4, y, 252, textureOffset * 80, 4, 4);

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java

@@ -5,8 +5,8 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import net.minecraft.block.Blocks;
 import net.minecraft.client.MinecraftClient;
@@ -42,7 +42,7 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget {
         this.itemRenderer.zOffset = 0.0F;
         GuiLighting.disable();
         MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         int color = RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? 939579655 : 956235776;
         this.blitOffset += 10f;
         this.fillGradient(getBounds().x, getBounds().y, getBounds().x + getBounds().width, getBounds().y + getBounds().height, color, color);

+ 3 - 3
src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java

@@ -6,10 +6,10 @@
 package me.shedaniel.rei.gui.widget;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
 import com.zeitheron.hammercore.client.utils.Scissors;
 import me.shedaniel.clothconfig2.api.RunSixtyTimesEverySec;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.*;
@@ -242,7 +242,7 @@ public class EntryListWidget extends Widget {
     @Override
     public void render(int int_1, int int_2, float float_1) {
         GuiLighting.disable();
-        GlStateManager.pushMatrix();
+        RenderHelper.pushMatrix();
         boolean widgetScrolled = RoughlyEnoughItemsCore.getConfigManager().getConfig().isEntryListWidgetScrolled();
         if (!widgetScrolled)
             scroll = 0;
@@ -263,7 +263,7 @@ public class EntryListWidget extends Widget {
         });
         if (widgetScrolled)
             Scissors.end();
-        GlStateManager.popMatrix();
+        RenderHelper.popMatrix();
         ClientPlayerEntity player = minecraft.player;
         if (rectangle.contains(PointHelper.fromMouse()) && ClientHelper.getInstance().isCheating() && !player.inventory.getCursorStack().isEmpty() && RoughlyEnoughItemsCore.hasPermissionToUsePackets())
             ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate("text.rei.delete_items")));

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/RecipeArrowWidget.java

@@ -5,8 +5,8 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.plugin.DefaultPlugin;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
@@ -34,7 +34,7 @@ public class RecipeArrowWidget extends WidgetWithBounds {
     
     @Override
     public void render(int mouseX, int mouseY, float delta) {
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         GuiLighting.disable();
         MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
         blit(x, y, 106, 91, 24, 17);

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java

@@ -5,8 +5,8 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.gui.config.RecipeScreenType;
 import me.shedaniel.rei.impl.ScreenHelper;
@@ -53,7 +53,7 @@ public class RecipeBaseWidget extends WidgetWithBounds {
     public void render(int mouseX, int mouseY, float delta) {
         if (!isRendering())
             return;
-        GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         GuiLighting.disable();
         minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? CHEST_GUI_TEXTURE_DARK : CHEST_GUI_TEXTURE);
         int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;

+ 3 - 3
src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java

@@ -6,9 +6,9 @@
 package me.shedaniel.rei.gui.widget;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.ConfigManager;
 import me.shedaniel.rei.gui.RecipeViewingScreen;
@@ -147,9 +147,9 @@ public class RecipeChoosePageWidget extends DraggableWidget {
     public void render(int i, int i1, float v) {
         widgets.forEach(widget -> {
             GuiLighting.disable();
-            GlStateManager.translatef(0, 0, 800);
+            RenderHelper.translatef(0, 0, 800);
             widget.render(i, i1, v);
-            GlStateManager.translatef(0, 0, -800);
+            RenderHelper.translatef(0, 0, -800);
         });
     }
     

+ 3 - 3
src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java

@@ -5,7 +5,7 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.gui.ContainerScreenOverlay;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.GuiLighting;
@@ -28,11 +28,11 @@ public class SearchFieldWidget extends TextFieldWidget {
     
     public void laterRender(int int_1, int int_2, float float_1) {
         GuiLighting.disable();
-        GlStateManager.disableDepthTest();
+        RenderHelper.disableDepthTest();
         setEditableColor(ContainerScreenOverlay.getEntryListWidget().children().isEmpty() && !getText().isEmpty() ? 16733525 : isSearching ? -1313241 : 14737632);
         setSuggestion(!isFocused() && getText().isEmpty() ? I18n.translate("text.rei.search.field.suggestion") : null);
         super.render(int_1, int_2, float_1);
-        GlStateManager.enableDepthTest();
+        RenderHelper.enableDepthTest();
     }
     
     @Override

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

@@ -6,8 +6,8 @@
 package me.shedaniel.rei.gui.widget;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.ClientHelper;
@@ -137,16 +137,16 @@ public class SlotWidget extends WidgetWithBounds {
             renderer.render(x + 8, y + 6, mouseX, mouseY, delta);
         }
         if (drawHighlightedBackground && highlighted) {
-            GlStateManager.disableLighting();
-            GlStateManager.disableDepthTest();
-            GlStateManager.colorMask(true, true, true, false);
+            RenderHelper.disableLighting();
+            RenderHelper.disableDepthTest();
+            RenderHelper.colorMask(true, true, true, false);
             int color = darkTheme ? -1877929711 : -2130706433;
             blitOffset = 300;
             fillGradient(x, y, x + 16, y + 16, color, color);
             blitOffset = 0;
-            GlStateManager.colorMask(true, true, true, true);
-            GlStateManager.enableLighting();
-            GlStateManager.enableDepthTest();
+            RenderHelper.colorMask(true, true, true, true);
+            RenderHelper.enableLighting();
+            RenderHelper.enableDepthTest();
         }
     }
     

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java

@@ -5,8 +5,8 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.ClientHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
@@ -72,7 +72,7 @@ public class TabWidget extends WidgetWithBounds {
     @Override
     public void render(int mouseX, int mouseY, float delta) {
         if (shown) {
-            GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+            RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
             GuiLighting.disable();
             minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? CHEST_GUI_TEXTURE_DARK : CHEST_GUI_TEXTURE);
             this.blit(bounds.x, bounds.y + 2, selected ? 28 : 0, 192, 28, (selected ? 30 : 27));

+ 7 - 7
src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java

@@ -6,8 +6,8 @@
 package me.shedaniel.rei.gui.widget;
 
 import com.google.common.base.Predicates;
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import net.minecraft.SharedConstants;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.render.BufferBuilder;
@@ -478,18 +478,18 @@ public class TextFieldWidget extends WidgetWithBounds implements Tickable {
         
         Tessellator tessellator_1 = Tessellator.getInstance();
         BufferBuilder bufferBuilder_1 = tessellator_1.getBufferBuilder();
-        GlStateManager.color4f(0.0F, 0.0F, 255.0F, 255.0F);
-        GlStateManager.disableTexture();
-        GlStateManager.enableColorLogicOp();
-        GlStateManager.logicOp(GlStateManager.LogicOp.OR_REVERSE);
+        RenderHelper.color4f(0.0F, 0.0F, 255.0F, 255.0F);
+        RenderHelper.disableTexture();
+        RenderHelper.enableColorLogicOp();
+        RenderHelper.logicOp(5387);
         bufferBuilder_1.begin(7, VertexFormats.POSITION);
         bufferBuilder_1.vertex((double) int_1, (double) int_4, blitOffset + 50d).next();
         bufferBuilder_1.vertex((double) int_3, (double) int_4, blitOffset + 50d).next();
         bufferBuilder_1.vertex((double) int_3, (double) int_2, blitOffset + 50d).next();
         bufferBuilder_1.vertex((double) int_1, (double) int_2, blitOffset + 50d).next();
         tessellator_1.draw();
-        GlStateManager.disableColorLogicOp();
-        GlStateManager.enableTexture();
+        RenderHelper.disableColorLogicOp();
+        RenderHelper.enableTexture();
     }
     
     public int getMaxLength() {

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java

@@ -43,12 +43,12 @@ public class DefaultCategoryHandler implements AutoTransferHandler {
             return Result.createNotApplicable();
         if (recipe.getHeight() > containerInfo.getCraftingHeight(container) || recipe.getWidth() > containerInfo.getCraftingWidth(container))
             return Result.createFailed(I18n.translate("error.rei.transfer.too_small", containerInfo.getCraftingWidth(container), containerInfo.getCraftingHeight(container)));
-        if (!canUseMovePackets())
-            return Result.createFailed("error.rei.not.on.server");
         List<List<ItemStack>> input = recipe.getOrganisedInput(containerInfo, container);
         IntList intList = hasItems(input);
         if (!intList.isEmpty())
             return Result.createFailed("error.rei.not.enough.materials", intList);
+        if (!canUseMovePackets())
+            return Result.createFailed("error.rei.not.on.server");
         if (!context.isActuallyCrafting())
             return Result.createSuccessful();
         

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

@@ -5,10 +5,10 @@
 
 package me.shedaniel.rei.plugin.blasting;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import it.unimi.dsi.fastutil.ints.IntList;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.api.TransferRecipeCategory;
 import me.shedaniel.rei.gui.renderers.RecipeRenderer;
@@ -63,7 +63,7 @@ public class DefaultBlastingCategory implements TransferRecipeCategory<DefaultBl
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 54, 82, 54);
@@ -87,11 +87,11 @@ public class DefaultBlastingCategory implements TransferRecipeCategory<DefaultBl
     @Override
     public void renderRedSlots(List<Widget> widgets, Rectangle bounds, DefaultBlastingDisplay display, IntList redSlots) {
         Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27);
-        GlStateManager.translatef(0, 0, 400);
+        RenderHelper.translatef(0, 0, 400);
         if (redSlots.contains(0)) {
             DrawableHelper.fill(startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 822018048);
         }
-        GlStateManager.translatef(0, 0, -400);
+        RenderHelper.translatef(0, 0, -400);
     }
     
 }

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

@@ -5,9 +5,9 @@
 
 package me.shedaniel.rei.plugin.brewing;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
@@ -55,7 +55,7 @@ public class DefaultBrewingCategory implements RecipeCategory<DefaultBrewingDisp
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 108, 103, 59);

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

@@ -5,9 +5,9 @@
 
 package me.shedaniel.rei.plugin.campfire;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.gui.widget.RecipeArrowWidget;
@@ -53,7 +53,7 @@ public class DefaultCampfireCategory implements RecipeCategory<DefaultCampfireDi
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 167, 82, 54);

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

@@ -6,9 +6,9 @@
 package me.shedaniel.rei.plugin.composting;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.gui.renderers.RecipeRenderer;
@@ -69,7 +69,7 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti
         widgets.add(new RecipeBaseWidget(bounds) {
             @Override
             public void render(int mouseX, int mouseY, float partialTicks) {
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 this.blit(startingPoint.x, startingPoint.y, 28, 221, 55, 26);

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

@@ -6,10 +6,10 @@
 package me.shedaniel.rei.plugin.crafting;
 
 import com.google.common.collect.Lists;
-import com.mojang.blaze3d.platform.GlStateManager;
 import it.unimi.dsi.fastutil.ints.IntList;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.api.TransferRecipeCategory;
 import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
@@ -74,7 +74,7 @@ public class DefaultCraftingCategory implements TransferRecipeCategory<DefaultCr
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 0, 116, 54);
@@ -100,13 +100,13 @@ public class DefaultCraftingCategory implements TransferRecipeCategory<DefaultCr
     @Override
     public void renderRedSlots(List<Widget> widgets, Rectangle bounds, DefaultCraftingDisplay display, IntList redSlots) {
         Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 27);
-        GlStateManager.translatef(0, 0, 400);
+        RenderHelper.translatef(0, 0, 400);
         for (Integer slot : redSlots) {
             int i = getSlotWithSize(display, slot);
             int x = i % 3;
             int y = (i - x) / 3;
             DrawableHelper.fill(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18, startPoint.x + 1 + x * 18 + 16, startPoint.y + 1 + y * 18 + 16, 822018048);
         }
-        GlStateManager.translatef(0, 0, -400);
+        RenderHelper.translatef(0, 0, -400);
     }
 }

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

@@ -5,10 +5,10 @@
 
 package me.shedaniel.rei.plugin.smelting;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import it.unimi.dsi.fastutil.ints.IntList;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.api.TransferRecipeCategory;
 import me.shedaniel.rei.gui.renderers.RecipeRenderer;
@@ -62,7 +62,7 @@ public class DefaultSmeltingCategory implements TransferRecipeCategory<DefaultSm
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 54, 82, 54);
@@ -86,11 +86,11 @@ public class DefaultSmeltingCategory implements TransferRecipeCategory<DefaultSm
     @Override
     public void renderRedSlots(List<Widget> widgets, Rectangle bounds, DefaultSmeltingDisplay display, IntList redSlots) {
         Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27);
-        GlStateManager.translatef(0, 0, 400);
+        RenderHelper.translatef(0, 0, 400);
         if (redSlots.contains(0)) {
             DrawableHelper.fill(startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 822018048);
         }
-        GlStateManager.translatef(0, 0, -400);
+        RenderHelper.translatef(0, 0, -400);
     }
     
 }

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

@@ -5,10 +5,10 @@
 
 package me.shedaniel.rei.plugin.smoking;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import it.unimi.dsi.fastutil.ints.IntList;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.api.TransferRecipeCategory;
 import me.shedaniel.rei.gui.renderers.RecipeRenderer;
@@ -62,7 +62,7 @@ public class DefaultSmokingCategory implements TransferRecipeCategory<DefaultSmo
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 54, 82, 54);
@@ -86,11 +86,11 @@ public class DefaultSmokingCategory implements TransferRecipeCategory<DefaultSmo
     @Override
     public void renderRedSlots(List<Widget> widgets, Rectangle bounds, DefaultSmokingDisplay display, IntList redSlots) {
         Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27);
-        GlStateManager.translatef(0, 0, 400);
+        RenderHelper.translatef(0, 0, 400);
         if (redSlots.contains(0)) {
             DrawableHelper.fill(startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 822018048);
         }
-        GlStateManager.translatef(0, 0, -400);
+        RenderHelper.translatef(0, 0, -400);
     }
     
 }

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

@@ -5,9 +5,9 @@
 
 package me.shedaniel.rei.plugin.stonecutting;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
@@ -50,7 +50,7 @@ public class DefaultStoneCuttingCategory implements RecipeCategory<DefaultStoneC
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 221, 82, 26);

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

@@ -5,9 +5,9 @@
 
 package me.shedaniel.rei.plugin.stripping;
 
-import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.compat.RenderHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
@@ -50,7 +50,7 @@ public class DefaultStrippingCategory implements RecipeCategory<DefaultStripping
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 GuiLighting.disable();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
                 blit(startPoint.x, startPoint.y, 0, 221, 82, 26);

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

@@ -104,9 +104,9 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
     }
     
     @SuppressWarnings("deprecation")
-    protected void fillInputSlots(RecipeFinder recipeFinder, DefaultedList<Ingredient> ingredients, boolean boolean_1) {
+    protected void fillInputSlots(RecipeFinder recipeFinder, DefaultedList<Ingredient> ingredients, boolean hasShift) {
         //        boolean boolean_2 = this.craftingContainer.matches(recipe_1);
-        boolean boolean_2 = true;
+        boolean boolean_2 = false;
         int int_1 = recipeFinder.countRecipeCrafts(ingredients, (IntList) null);
         int int_2;
         if (boolean_2) {
@@ -120,7 +120,7 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
             }
         }
         
-        int_2 = this.getAmountToFill(boolean_1, int_1, boolean_2);
+        int_2 = this.getAmountToFill(hasShift, int_1, boolean_2);
         IntList intList_1 = new IntArrayList();
         if (recipeFinder.findRecipe(ingredients, intList_1, int_2)) {
             int int_4 = int_2;
@@ -142,9 +142,9 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
         
     }
     
-    protected int getAmountToFill(boolean boolean_1, int int_1, boolean boolean_2) {
+    protected int getAmountToFill(boolean hasShift, int int_1, boolean boolean_2) {
         int int_2 = 1;
-        if (boolean_1) {
+        if (hasShift) {
             int_2 = int_1;
         } else if (boolean_2) {
             int_2 = 64;