Răsfoiți Sursa

Unstable REI Release for 19w38a/b

Danielshe 5 ani în urmă
părinte
comite
2067b903f5
43 a modificat fișierele cu 187 adăugiri și 196 ștergeri
  1. 9 1
      build.gradle
  2. 8 8
      gradle.properties
  3. 1 1
      src/main/java/com/zeitheron/hammercore/client/utils/Scissors.java
  4. 1 1
      src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
  5. 4 2
      src/main/java/me/shedaniel/rei/api/Renderer.java
  6. 16 16
      src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
  7. 5 5
      src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
  8. 13 13
      src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java
  9. 7 9
      src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
  10. 5 5
      src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java
  11. 8 8
      src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
  12. 5 5
      src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
  13. 6 5
      src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
  14. 5 5
      src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java
  15. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/DraggableWidget.java
  16. 12 12
      src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
  17. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/RecipeArrowWidget.java
  18. 2 10
      src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java
  19. 5 5
      src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java
  20. 4 4
      src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java
  21. 9 19
      src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java
  22. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
  23. 11 11
      src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java
  24. 1 1
      src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
  25. 1 1
      src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java
  26. 6 6
      src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
  27. 4 4
      src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java
  28. 2 2
      src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java
  29. 2 2
      src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java
  30. 1 1
      src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingDisplay.java
  31. 2 2
      src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java
  32. 1 1
      src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireDisplay.java
  33. 2 2
      src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java
  34. 4 4
      src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
  35. 1 1
      src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapedDisplay.java
  36. 1 1
      src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapelessDisplay.java
  37. 4 4
      src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java
  38. 2 2
      src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingDisplay.java
  39. 4 4
      src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java
  40. 2 2
      src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java
  41. 2 2
      src/main/java/me/shedaniel/rei/plugin/stonecutting/DefaultStoneCuttingCategory.java
  42. 1 1
      src/main/java/me/shedaniel/rei/plugin/stonecutting/DefaultStoneCuttingDisplay.java
  43. 2 2
      src/main/java/me/shedaniel/rei/plugin/stripping/DefaultStrippingCategory.java

+ 9 - 1
build.gradle

@@ -1,3 +1,5 @@
+import java.text.SimpleDateFormat
+
 plugins {
     id 'fabric-loom' version '0.2.5-SNAPSHOT'
     id 'maven-publish'
@@ -11,13 +13,19 @@ archivesBaseName = "RoughlyEnoughItems"
 group = "me.shedaniel"
 
 def ENV = System.getenv()
-version = project.mod_version + "+" + (ENV.BUILD_NUMBER ? ("build." + ENV.BUILD_NUMBER) : "local")
+version = (((String) project.mod_version).contains("unstable") ? (project.mod_version + "." + buildTime()) : project.mod_version) + "+" + (ENV.BUILD_NUMBER ? ("build." + ENV.BUILD_NUMBER) : "local")
 
 def includeDep = true
 
 minecraft {
 }
 
+static def buildTime() {
+    def df = new SimpleDateFormat("yyyyMMddHHmm")
+    df.setTimeZone(TimeZone.getTimeZone("UTC"))
+    return df.format(new Date())
+}
+
 license {
     header rootProject.file('HEADER')
     include '**/*.java'

+ 8 - 8
gradle.properties

@@ -1,10 +1,10 @@
-mod_version=3.1.5
-minecraft_version=1.14.4
-yarn_version=1.14.4+build.1
-fabricloader_version=0.6.1+build.164
+mod_version=3.1.5-unstable
+minecraft_version=19w38b
+yarn_version=19w38b+build.9
+fabricloader_version=0.6.2+build.166
 jankson_version=1.1.0
-cloth_events_version=0.6.0
-cloth_config_version=1.1.2
-modmenu_version=1.7.9+build.118
-fabric_api=0.3.2+build.218-1.14
+cloth_events_version=1.0.0-unstable.201909280702
+cloth_config_version=2.0.0-unstable.201909280635
+modmenu_version=1.7.13-unstable.19w38b+build.5
+fabric_api=0.3.3+build.235-1.15
 

+ 1 - 1
src/main/java/com/zeitheron/hammercore/client/utils/Scissors.java

@@ -27,7 +27,7 @@ public class Scissors {
      * @param height the height of the bounds
      */
     public static void scissor(int x, int y, int width, int height) {
-        Window window = MinecraftClient.getInstance().window;
+        Window window = MinecraftClient.getInstance().method_22683();
         
         int sw = window.getWidth();
         int sh = window.getHeight();

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

@@ -136,7 +136,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
         
         registerClothEvents();
         discoverPluginEntries();
-        FabricLoader.getInstance().getAllMods().stream().map(ModContainer::getMetadata).filter(metadata -> metadata.containsCustomElement("roughlyenoughitems:plugins")).forEach(modMetadata -> {
+        FabricLoader.getInstance().getAllMods().stream().map(ModContainer::getMetadata).filter(metadata -> metadata.containsCustomValue("roughlyenoughitems:plugins")).forEach(modMetadata -> {
             RoughlyEnoughItemsCore.LOGGER.error("[REI] REI plugin from " + modMetadata.getId() + " is not loaded because it is too old!");
         });
         

+ 4 - 2
src/main/java/me/shedaniel/rei/api/Renderer.java

@@ -159,8 +159,9 @@ public abstract class Renderer extends DrawableHelper {
      *
      * @return the blit offset
      */
+    @Override
     public int getBlitOffset() {
-        return this.blitOffset;
+        return super.getBlitOffset();
     }
     
     /**
@@ -168,8 +169,9 @@ public abstract class Renderer extends DrawableHelper {
      *
      * @param offset the new blit offset
      */
+    @Override
     public void setBlitOffset(int offset) {
-        this.blitOffset = offset;
+        super.setBlitOffset(offset);
     }
     
     /**

+ 16 - 16
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.systems.RenderSystem;
 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;
@@ -74,7 +74,7 @@ public class ContainerScreenOverlay extends Widget {
         this.shouldReInit = false;
         //Update Variables
         this.children().clear();
-        this.window = MinecraftClient.getInstance().window;
+        this.window = MinecraftClient.getInstance().method_22683();
         DisplayHelper.DisplayBoundsHandler boundsHandler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass());
         this.rectangle = RoughlyEnoughItemsCore.getConfigManager().getConfig().isLeftHandSidePanel() ? boundsHandler.getLeftBounds(MinecraftClient.getInstance().currentScreen) : boundsHandler.getRightBounds(MinecraftClient.getInstance().currentScreen);
         widgets.add(entryListWidget = new EntryListWidget(page));
@@ -145,7 +145,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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                 blit(getBounds().x + 3, getBounds().y + 3, 0, 0, 14, 14);
             }
             
@@ -205,7 +205,7 @@ public class ContainerScreenOverlay extends Widget {
                         super.render(mouseX, mouseY, delta);
                         GuiLighting.disable();
                         MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
-                        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
                         blit(getBounds().x + 3, getBounds().y + 3, weather.getId() * 14, 14, 14, 14);
                     }
                     
@@ -269,7 +269,7 @@ public class ContainerScreenOverlay extends Widget {
                 
                 @Override
                 public void lateRender(int mouseX, int mouseY, float delta) {
-                    blitOffset = 300;
+                    setBlitOffset(300);
                     super.lateRender(mouseX, mouseY, delta);
                 }
             });
@@ -374,7 +374,7 @@ public class ContainerScreenOverlay extends Widget {
         }
         if (SearchFieldWidget.isSearching) {
             GuiLighting.disable();
-            blitOffset = 200;
+            setBlitOffset(200);
             if (MinecraftClient.getInstance().currentScreen instanceof AbstractContainerScreen) {
                 ContainerScreenHooks hooks = (ContainerScreenHooks) MinecraftClient.getInstance().currentScreen;
                 int left = hooks.rei_getContainerLeft(), top = hooks.rei_getContainerTop();
@@ -382,9 +382,9 @@ public class ContainerScreenOverlay extends Widget {
                     if (!slot.hasStack() || !entryListWidget.filterEntry(Entry.create(slot.getStack()), entryListWidget.getLastSearchArgument()))
                         fillGradient(left + slot.xPosition, top + slot.yPosition, left + slot.xPosition + 16, top + slot.yPosition + 16, -601874400, -601874400);
             }
-            blitOffset = 0;
+            setBlitOffset(0);
         }
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.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()) {
@@ -426,10 +426,10 @@ 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) -> {
-            RenderHelper.disableRescaleNormal();
+            RenderSystem.disableRescaleNormal();
             GuiLighting.disable();
-            RenderHelper.disableLighting();
-            this.blitOffset = 1000;
+            RenderSystem.disableLighting();
+            setBlitOffset(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);
             this.fillGradient(x - 3, y - 3, x + width + 3, y + height + 3, -267386864, -267386864);
@@ -441,15 +441,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++) {
-                RenderHelper.disableDepthTest();
+                RenderSystem.disableDepthTest();
                 font.drawWithShadow(lines.get(lineIndex), x, currentY, -1);
-                RenderHelper.enableDepthTest();
+                RenderSystem.enableDepthTest();
                 currentY += lineIndex == 0 ? 12 : 10;
             }
-            this.blitOffset = 0;
-            RenderHelper.enableLighting();
+            setBlitOffset(0);
+            RenderSystem.enableLighting();
             GuiLighting.enable();
-            RenderHelper.enableRescaleNormal();
+            RenderSystem.enableRescaleNormal();
         }, width, height, 0);
     }
     

+ 5 - 5
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.systems.RenderSystem;
 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.*;
@@ -55,7 +55,7 @@ public class RecipeViewingScreen extends Screen {
         this.categoryPages = 0;
         this.preWidgets = Lists.newArrayList();
         this.widgets = Lists.newArrayList();
-        Window window = MinecraftClient.getInstance().window;
+        Window window = MinecraftClient.getInstance().method_22683();
         this.bounds = new Rectangle(window.getScaledWidth() / 2 - guiWidth / 2, window.getScaledHeight() / 2 - guiHeight / 2, 176, 186);
         this.categoriesMap = categoriesMap;
         this.categories = Lists.newArrayList();
@@ -386,16 +386,16 @@ public class RecipeViewingScreen extends Screen {
             GuiLighting.disable();
             widget.render(mouseX, mouseY, delta);
         });
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.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();
         ScreenHelper.getLastOverlay().render(mouseX, mouseY, delta);
         ScreenHelper.getLastOverlay().lateRender(mouseX, mouseY, delta);
         if (choosePageActivated) {
-            blitOffset = 500;
+            setBlitOffset(500);
             this.fillGradient(0, 0, this.width, this.height, -1072689136, -804253680);
-            blitOffset = 0;
+            setBlitOffset(0);
             recipeChoosePageWidget.render(mouseX, mouseY, delta);
         }
     }

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

@@ -10,7 +10,7 @@ import com.google.common.collect.Maps;
 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 com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.*;
@@ -223,7 +223,7 @@ public class VillagerRecipeViewingScreen extends Screen {
             
             @Override
             public void render(int mouseX, int mouseY, float delta) {
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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))
@@ -336,7 +336,7 @@ public class VillagerRecipeViewingScreen extends Screen {
         });
         GuiLighting.disable();
         ScreenHelper.getLastOverlay().render(mouseX, mouseY, delta);
-        RenderHelper.pushMatrix();
+        RenderSystem.pushMatrix();
         Scissors.begin();
         Scissors.scissor(0, scrollListBounds.y + 1, width, scrollListBounds.height - 2);
         for (int i = 0; i < buttonWidgets.size(); i++) {
@@ -368,11 +368,11 @@ public class VillagerRecipeViewingScreen extends Screen {
                 minY = this.scrollListBounds.y + 1;
             double scrollbarPositionMinX = scrollListBounds.getMaxX() - 6, scrollbarPositionMaxX = scrollListBounds.getMaxX() - 2;
             GuiLighting.disable();
-            RenderHelper.disableTexture();
-            RenderHelper.enableBlend();
-            RenderHelper.disableAlphaTest();
-            RenderHelper.blendFuncSeparate(770, 771, 1, 0);
-            RenderHelper.shadeModel(7425);
+            RenderSystem.disableTexture();
+            RenderSystem.enableBlend();
+            RenderSystem.disableAlphaTest();
+            RenderSystem.blendFuncSeparate(770, 771, 1, 0);
+            RenderSystem.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();
@@ -380,13 +380,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();
-            RenderHelper.shadeModel(7424);
-            RenderHelper.disableBlend();
-            RenderHelper.enableAlphaTest();
-            RenderHelper.enableTexture();
+            RenderSystem.shadeModel(7424);
+            RenderSystem.disableBlend();
+            RenderSystem.enableAlphaTest();
+            RenderSystem.enableTexture();
         }
         Scissors.end();
-        RenderHelper.popMatrix();
+        RenderSystem.popMatrix();
         ScreenHelper.getLastOverlay().lateRender(mouseX, mouseY, delta);
     }
     

+ 7 - 9
src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java

@@ -6,11 +6,10 @@
 package me.shedaniel.rei.gui.credits;
 
 import com.google.common.collect.Lists;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
 import me.shedaniel.rei.gui.credits.CreditsEntryListWidget.CreditsItem;
 import me.shedaniel.rei.impl.ScreenHelper;
 import net.fabricmc.loader.api.FabricLoader;
+import net.fabricmc.loader.api.metadata.CustomValue;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
 import net.minecraft.client.gui.widget.AbstractPressableButtonWidget;
@@ -18,7 +17,6 @@ import net.minecraft.client.resource.language.I18n;
 import net.minecraft.text.LiteralText;
 
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 public class CreditsScreen extends Screen {
@@ -50,13 +48,13 @@ public class CreditsScreen extends Screen {
         List<String> translators = Lists.newArrayList();
         FabricLoader.getInstance().getModContainer("roughlyenoughitems").ifPresent(rei -> {
             try {
-                if (rei.getMetadata().containsCustomElement("rei:translators")) {
-                    JsonObject jsonObject = rei.getMetadata().getCustomElement("rei:translators").getAsJsonObject();
-                    for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {
-                        JsonElement value = entry.getValue();
-                        String behind = value.isJsonArray() ? Lists.newArrayList(value.getAsJsonArray().iterator()).stream().map(json -> json.getAsString()).sorted(String::compareToIgnoreCase).collect(Collectors.joining(", ")) : value.getAsString();
+                if (rei.getMetadata().containsCustomValue("rei:translators")) {
+                    CustomValue.CvObject jsonObject = rei.getMetadata().getCustomValue("rei:translators").getAsObject();
+                    jsonObject.forEach(entry -> {
+                        CustomValue value = entry.getValue();
+                        String behind = value.getType() == CustomValue.CvType.ARRAY ? Lists.newArrayList(value.getAsArray().iterator()).stream().map(json -> json.getAsString()).sorted(String::compareToIgnoreCase).collect(Collectors.joining(", ")) : value.getAsString();
                         translators.add(String.format("  %s - %s", entry.getKey(), behind));
-                    }
+                    });
                 }
                 translators.sort(String::compareToIgnoreCase);
             } catch (Exception e) {

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

@@ -70,13 +70,13 @@ public abstract class FluidRenderer extends Renderer {
             Tessellator tess = Tessellator.getInstance();
             BufferBuilder bb = tess.getBufferBuilder();
             bb.begin(7, VertexFormats.POSITION_UV_COLOR);
-            bb.vertex(x + 16, y, blitOffset).texture(sprite.getMaxU(), sprite.getMinV()).color(r, g, b, a).next();
-            bb.vertex(x, y, blitOffset).texture(sprite.getMinU(), sprite.getMinV()).color(r, g, b, a).next();
-            bb.vertex(x, y + 16, blitOffset).texture(sprite.getMinU(), sprite.getMaxV()).color(r, g, b, a).next();
-            bb.vertex(x + 16, y + 16, blitOffset).texture(sprite.getMaxU(), sprite.getMaxV()).color(r, g, b, a).next();
+            bb.vertex(x + 16, y, getBlitOffset()).texture(sprite.getMaxU(), sprite.getMinV()).color(r, g, b, a).next();
+            bb.vertex(x, y, getBlitOffset()).texture(sprite.getMinU(), sprite.getMinV()).color(r, g, b, a).next();
+            bb.vertex(x, y + 16, getBlitOffset()).texture(sprite.getMinU(), sprite.getMaxV()).color(r, g, b, a).next();
+            bb.vertex(x + 16, y + 16, getBlitOffset()).texture(sprite.getMaxU(), sprite.getMaxV()).color(r, g, b, a).next();
             tess.draw();
         }
-        this.blitOffset = 0;
+        setBlitOffset(0);
     }
     
     @Nullable

+ 8 - 8
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 me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.ClientHelper;
 import me.shedaniel.rei.api.ItemStackRenderOverlayHook;
@@ -38,18 +38,18 @@ public abstract class ItemStackRenderer extends Renderer {
         int l = x - 8, i1 = y - 6;
         ItemStack stack = getItemStack();
         ((ItemStackRenderOverlayHook) (Object) stack).rei_setRenderOverlay(renderOverlay());
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
-        itemRenderer.zOffset = blitOffset;
+        itemRenderer.zOffset = getBlitOffset();
         GuiLighting.enableForItems();
-        RenderHelper.colorMask(true, true, true, true);
-        RenderHelper.enableLighting();
-        RenderHelper.enableRescaleNormal();
-        RenderHelper.enableDepthTest();
+        RenderSystem.colorMask(true, true, true, true);
+        RenderSystem.enableLighting();
+        RenderSystem.enableRescaleNormal();
+        RenderSystem.enableDepthTest();
         itemRenderer.renderGuiItem(stack, l, i1);
         itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, stack, l, i1, getCounts());
         itemRenderer.zOffset = 0.0F;
-        this.blitOffset = 0;
+        setBlitOffset(0);
     }
     
     /**

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

@@ -6,10 +6,10 @@
 package me.shedaniel.rei.gui.widget;
 
 import com.google.common.collect.Lists;
+import com.mojang.blaze3d.systems.RenderSystem;
 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;
@@ -112,11 +112,11 @@ public class AutoCraftingButtonWidget extends ButtonWidget {
         }
         int x = getBounds().x, y = getBounds().y, width = getBounds().width, height = getBounds().height;
         minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? BUTTON_LOCATION_DARK : BUTTON_LOCATION);
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         int textureOffset = this.getTextureId(isHovered(mouseX, mouseY));
-        RenderHelper.enableBlend();
-        RenderHelper.blendFuncSeparate(770, 771, 1, 0);
-        RenderHelper.blendFunc(770, 771);
+        RenderSystem.enableBlend();
+        RenderSystem.blendFuncSeparate(770, 771, 1, 0);
+        RenderSystem.blendFunc(770, 771);
         //Four Corners
         blit(x, y, 0, textureOffset * 80, 4, 4);
         blit(x + width - 4, y, 252, textureOffset * 80, 4, 4);

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

@@ -5,9 +5,10 @@
 
 package me.shedaniel.rei.gui.widget;
 
+import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.rei.impl.ScreenHelper;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.sound.PositionedSoundInstance;
@@ -66,11 +67,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);
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         int textureOffset = this.getTextureId(isHovered(mouseX, mouseY));
-        RenderHelper.enableBlend();
-        RenderHelper.blendFuncSeparate(770, 771, 1, 0);
-        RenderHelper.blendFunc(770, 771);
+        RenderSystem.enableBlend();
+        RenderSystem.blendFuncSeparate(770, 771, 1, 0);
+        RenderSystem.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/CraftableToggleButtonWidget.java

@@ -5,8 +5,8 @@
 
 package me.shedaniel.rei.gui.widget;
 
+import com.mojang.blaze3d.systems.RenderSystem;
 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;
@@ -37,16 +37,16 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget {
         super.render(mouseX, mouseY, delta);
         
         GuiLighting.enableForItems();
-        this.itemRenderer.zOffset = this.blitOffset;
+        this.itemRenderer.zOffset = getBlitOffset();
         this.itemRenderer.renderGuiItem(new ItemStack(Blocks.CRAFTING_TABLE), getBounds().x + 2, getBounds().y + 2);
         this.itemRenderer.zOffset = 0.0F;
         GuiLighting.disable();
         MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         int color = RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? 939579655 : 956235776;
-        this.blitOffset += 10f;
+        setBlitOffset(getBlitOffset() + 10);
         this.fillGradient(getBounds().x, getBounds().y, getBounds().x + getBounds().width, getBounds().y + getBounds().height, color, color);
-        this.blitOffset = 0;
+        setBlitOffset(0);
     }
     
     @Override

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

@@ -23,7 +23,7 @@ public abstract class DraggableWidget extends WidgetWithBounds {
     }
     
     public DraggableWidget() {
-        this(new Point(MinecraftClient.getInstance().window.getScaledWidth() / 2, MinecraftClient.getInstance().window.getScaledHeight() / 2));
+        this(new Point(MinecraftClient.getInstance().method_22683().getScaledWidth() / 2, MinecraftClient.getInstance().method_22683().getScaledHeight() / 2));
     }
     
     protected abstract void initWidgets(Point midPoint);
@@ -50,7 +50,7 @@ public abstract class DraggableWidget extends WidgetWithBounds {
                     dragged = true;
                 }
             } else {
-                Window window = minecraft.window;
+                Window window = minecraft.method_22683();
                 midPoint = processMidPoint(midPoint, mouse, startPoint, window, relateX, relateY);
                 updateWidgets(midPoint);
             }

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

@@ -9,7 +9,7 @@ import com.google.common.collect.Lists;
 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 com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.math.impl.PointHelper;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.*;
@@ -283,7 +283,7 @@ public class EntryListWidget extends Widget {
         }
         
         GuiLighting.disable();
-        RenderHelper.pushMatrix();
+        RenderSystem.pushMatrix();
         boolean widgetScrolled = RoughlyEnoughItemsCore.getConfigManager().getConfig().isEntryListWidgetScrolled();
         if (!widgetScrolled)
             scroll = 0;
@@ -314,11 +314,11 @@ public class EntryListWidget extends Widget {
                 int minY = (int) Math.min(Math.max((int) this.getScroll() * (rectangle.height - scrollBarHeight) / maxScroll + rectangle.y, rectangle.y), rectangle.getMaxY() - scrollBarHeight);
                 double scrollbarPositionMinX = rectangle.getMaxX() - 6, scrollbarPositionMaxX = rectangle.getMaxX() - 1;
                 GuiLighting.disable();
-                RenderHelper.disableTexture();
-                RenderHelper.enableBlend();
-                RenderHelper.disableAlphaTest();
-                RenderHelper.blendFuncSeparate(770, 771, 1, 0);
-                RenderHelper.shadeModel(7425);
+                RenderSystem.disableTexture();
+                RenderSystem.enableBlend();
+                RenderSystem.disableAlphaTest();
+                RenderSystem.blendFuncSeparate(770, 771, 1, 0);
+                RenderSystem.shadeModel(7425);
                 buffer.begin(7, VertexFormats.POSITION_COLOR);
                 float b = ScreenHelper.isDarkModeEnabled() ? 0.8f : 1f;
                 buffer.vertex(scrollbarPositionMinX, minY + scrollBarHeight, 1000D).color(b, b, b, scrollBarAlpha).next();
@@ -326,14 +326,14 @@ public class EntryListWidget extends Widget {
                 buffer.vertex(scrollbarPositionMaxX, minY, 1000D).color(b, b, b, scrollBarAlpha).next();
                 buffer.vertex(scrollbarPositionMinX, minY, 1000D).color(b, b, b, scrollBarAlpha).next();
                 tessellator.draw();
-                RenderHelper.shadeModel(7424);
-                RenderHelper.disableBlend();
-                RenderHelper.enableAlphaTest();
-                RenderHelper.enableTexture();
+                RenderSystem.shadeModel(7424);
+                RenderSystem.disableBlend();
+                RenderSystem.enableAlphaTest();
+                RenderSystem.enableTexture();
             }
             Scissors.end();
         }
-        RenderHelper.popMatrix();
+        RenderSystem.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

@@ -6,7 +6,7 @@
 package me.shedaniel.rei.gui.widget;
 
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 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) {
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.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 - 10
src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java

@@ -5,8 +5,8 @@
 
 package me.shedaniel.rei.gui.widget;
 
+import com.mojang.blaze3d.systems.RenderSystem;
 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;
@@ -27,14 +27,6 @@ public class RecipeBaseWidget extends WidgetWithBounds {
         this.bounds = bounds;
     }
     
-    public int getBlitOffset() {
-        return this.blitOffset;
-    }
-    
-    public void setBlitOffset(int offset) {
-        this.blitOffset = offset;
-    }
-    
     @Override
     public Rectangle getBounds() {
         return bounds;
@@ -53,7 +45,7 @@ public class RecipeBaseWidget extends WidgetWithBounds {
     public void render(int mouseX, int mouseY, float delta) {
         if (!isRendering())
             return;
-        RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+        RenderSystem.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;

+ 5 - 5
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.systems.RenderSystem;
 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;
@@ -46,7 +46,7 @@ public class RecipeChoosePageWidget extends DraggableWidget {
     }
     
     private static Point getPointFromConfig() {
-        Window window = MinecraftClient.getInstance().window;
+        Window window = MinecraftClient.getInstance().method_22683();
         ConfigObjectImpl.RelativePoint point = RoughlyEnoughItemsCore.getConfigManager().getConfig().getChoosePageDialogPoint();
         return new Point(point.getX(window.getScaledWidth()), point.getY(window.getScaledHeight()));
     }
@@ -147,9 +147,9 @@ public class RecipeChoosePageWidget extends DraggableWidget {
     public void render(int i, int i1, float v) {
         widgets.forEach(widget -> {
             GuiLighting.disable();
-            RenderHelper.translatef(0, 0, 800);
+            RenderSystem.translatef(0, 0, 800);
             widget.render(i, i1, v);
-            RenderHelper.translatef(0, 0, -800);
+            RenderSystem.translatef(0, 0, -800);
         });
     }
     
@@ -186,7 +186,7 @@ public class RecipeChoosePageWidget extends DraggableWidget {
     @Override
     public void onMouseReleaseMidPoint(Point midPoint) {
         ConfigManager configManager = RoughlyEnoughItemsCore.getConfigManager();
-        Window window = minecraft.window;
+        Window window = minecraft.method_22683();
         configManager.getConfig().setChoosePageDialogPoint(new ConfigObjectImpl.RelativePoint(midPoint.getX() / window.getScaledWidth(), midPoint.getY() / window.getScaledHeight()));
         try {
             configManager.saveConfig();

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

@@ -5,7 +5,7 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 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();
-        RenderHelper.disableDepthTest();
+        RenderSystem.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);
-        RenderHelper.enableDepthTest();
+        RenderSystem.enableDepthTest();
     }
     
     @Override
@@ -75,7 +75,7 @@ public class SearchFieldWidget extends TextFieldWidget {
     
     @Override
     public boolean charTyped(char char_1, int int_1) {
-        if (System.currentTimeMillis() - keybindFocusTime < 1000 && InputUtil.isKeyPressed(MinecraftClient.getInstance().window.getHandle(), keybindFocusKey)) {
+        if (System.currentTimeMillis() - keybindFocusTime < 1000 && InputUtil.isKeyPressed(MinecraftClient.getInstance().method_22683().getHandle(), keybindFocusKey)) {
             keybindFocusTime = -1;
             keybindFocusKey = -1;
             return true;

+ 9 - 19
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.systems.RenderSystem;
 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;
@@ -131,29 +131,19 @@ public class SlotWidget extends WidgetWithBounds {
             }
         }
         if (drawHighlightedBackground && highlighted) {
-            RenderHelper.disableLighting();
-            RenderHelper.disableDepthTest();
-            RenderHelper.colorMask(true, true, true, false);
+            RenderSystem.disableLighting();
+            RenderSystem.disableDepthTest();
+            RenderSystem.colorMask(true, true, true, false);
             int color = darkTheme ? -1877929711 : -2130706433;
-            blitOffset = 300;
+            setBlitOffset(300);
             fillGradient(x, y, x + 16, y + 16, color, color);
-            blitOffset = 0;
-            RenderHelper.colorMask(true, true, true, true);
-            RenderHelper.enableLighting();
-            RenderHelper.enableDepthTest();
+            setBlitOffset(0);
+            RenderSystem.colorMask(true, true, true, true);
+            RenderSystem.enableLighting();
+            RenderSystem.enableDepthTest();
         }
     }
     
-    @Deprecated
-    public int getBlitOffset() {
-        return this.blitOffset;
-    }
-    
-    @Deprecated
-    public void setBlitOffset(int offset) {
-        this.blitOffset = offset;
-    }
-    
     /**
      * @deprecated Not used anymore, see {@link Renderer#getQueuedTooltip(float)}
      */

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

@@ -6,7 +6,7 @@
 package me.shedaniel.rei.gui.widget;
 
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 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) {
-            RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+            RenderSystem.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));

+ 11 - 11
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.systems.RenderSystem;
 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();
-        RenderHelper.color4f(0.0F, 0.0F, 255.0F, 255.0F);
-        RenderHelper.disableTexture();
-        RenderHelper.enableColorLogicOp();
-        RenderHelper.logicOp(5387);
+        RenderSystem.color4f(0.0F, 0.0F, 255.0F, 255.0F);
+        RenderSystem.disableTexture();
+        RenderSystem.enableColorLogicOp();
+        RenderSystem.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();
+        bufferBuilder_1.vertex((double) int_1, (double) int_4, getBlitOffset() + 50d).next();
+        bufferBuilder_1.vertex((double) int_3, (double) int_4, getBlitOffset() + 50d).next();
+        bufferBuilder_1.vertex((double) int_3, (double) int_2, getBlitOffset() + 50d).next();
+        bufferBuilder_1.vertex((double) int_1, (double) int_2, getBlitOffset() + 50d).next();
         tessellator_1.draw();
-        RenderHelper.disableColorLogicOp();
-        RenderHelper.enableTexture();
+        RenderSystem.disableColorLogicOp();
+        RenderSystem.enableTexture();
     }
     
     public int getMaxLength() {

+ 1 - 1
src/main/java/me/shedaniel/rei/impl/ScreenHelper.java

@@ -93,7 +93,7 @@ public class ScreenHelper implements ClientModInitializer {
     }
     
     public static void drawHoveringWidget(int x, int y, TriConsumer<Integer, Integer, Float> consumer, int width, int height, float delta) {
-        Window window = MinecraftClient.getInstance().window;
+        Window window = MinecraftClient.getInstance().method_22683();
         drawHoveringWidget(window.getScaledWidth(), window.getScaledHeight(), x, y, consumer, width, height, delta);
     }
     

+ 1 - 1
src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java

@@ -53,7 +53,7 @@ public class MixinBrewingRecipeRegistry {
             rei_registerPotionType(potion_1);
         if (!REGISTERED_POTION_TYPES.contains(potion_2))
             rei_registerPotionType(potion_2);
-        SELF_POTION_TYPES.stream().map(Ingredient::getStackArray).forEach(itemStacks -> Arrays.stream(itemStacks).forEach(stack -> {
+        SELF_POTION_TYPES.stream().map(Ingredient::getMatchingStacksClient).forEach(itemStacks -> Arrays.stream(itemStacks).forEach(stack -> {
             DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtil.setPotion(stack.copy(), potion_1), Ingredient.ofItems(new ItemConvertible[]{item_1}), PotionUtil.setPotion(stack.copy(), potion_2)));
         }));
     }

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

@@ -201,13 +201,13 @@ public class DefaultPlugin implements REIPluginV0 {
             
             @Override
             public Rectangle getLeftBounds(AbstractContainerScreen<?> screen) {
-                return new Rectangle(2, 0, ScreenHelper.getLastContainerScreenHooks().rei_getContainerLeft() - 4, MinecraftClient.getInstance().window.getScaledHeight());
+                return new Rectangle(2, 0, ScreenHelper.getLastContainerScreenHooks().rei_getContainerLeft() - 4, MinecraftClient.getInstance().method_22683().getScaledHeight());
             }
             
             @Override
             public Rectangle getRightBounds(AbstractContainerScreen<?> screen) {
                 int startX = ScreenHelper.getLastContainerScreenHooks().rei_getContainerLeft() + ScreenHelper.getLastContainerScreenHooks().rei_getContainerWidth() + 2;
-                return new Rectangle(startX, 0, MinecraftClient.getInstance().window.getScaledWidth() - startX - 2, MinecraftClient.getInstance().window.getScaledHeight());
+                return new Rectangle(startX, 0, MinecraftClient.getInstance().method_22683().getScaledWidth() - startX - 2, MinecraftClient.getInstance().method_22683().getScaledHeight());
             }
             
             @Override
@@ -223,13 +223,13 @@ public class DefaultPlugin implements REIPluginV0 {
             
             @Override
             public Rectangle getLeftBounds(RecipeViewingScreen screen) {
-                return new Rectangle(2, 0, ((RecipeViewingScreen) screen).getBounds().x - 4, MinecraftClient.getInstance().window.getScaledHeight());
+                return new Rectangle(2, 0, ((RecipeViewingScreen) screen).getBounds().x - 4, MinecraftClient.getInstance().method_22683().getScaledHeight());
             }
             
             @Override
             public Rectangle getRightBounds(RecipeViewingScreen screen) {
                 int startX = ((RecipeViewingScreen) screen).getBounds().x + ((RecipeViewingScreen) screen).getBounds().width + 2;
-                return new Rectangle(startX, 0, MinecraftClient.getInstance().window.getScaledWidth() - startX - 2, MinecraftClient.getInstance().window.getScaledHeight());
+                return new Rectangle(startX, 0, MinecraftClient.getInstance().method_22683().getScaledWidth() - startX - 2, MinecraftClient.getInstance().method_22683().getScaledHeight());
             }
             
             @Override
@@ -245,13 +245,13 @@ public class DefaultPlugin implements REIPluginV0 {
             
             @Override
             public Rectangle getLeftBounds(VillagerRecipeViewingScreen screen) {
-                return new Rectangle(2, 0, ((VillagerRecipeViewingScreen) screen).bounds.x - 4, MinecraftClient.getInstance().window.getScaledHeight());
+                return new Rectangle(2, 0, ((VillagerRecipeViewingScreen) screen).bounds.x - 4, MinecraftClient.getInstance().method_22683().getScaledHeight());
             }
             
             @Override
             public Rectangle getRightBounds(VillagerRecipeViewingScreen screen) {
                 int startX = ((VillagerRecipeViewingScreen) screen).bounds.x + ((VillagerRecipeViewingScreen) screen).bounds.width + 2;
-                return new Rectangle(startX, 0, MinecraftClient.getInstance().window.getScaledWidth() - startX - 2, MinecraftClient.getInstance().window.getScaledHeight());
+                return new Rectangle(startX, 0, MinecraftClient.getInstance().method_22683().getScaledWidth() - startX - 2, MinecraftClient.getInstance().method_22683().getScaledHeight());
             }
             
             @Override

+ 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.systems.RenderSystem;
 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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);
@@ -82,11 +82,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);
-        RenderHelper.translatef(0, 0, 400);
+        RenderSystem.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);
         }
-        RenderHelper.translatef(0, 0, -400);
+        RenderSystem.translatef(0, 0, -400);
     }
     
 }

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java

@@ -30,7 +30,7 @@ public class DefaultBlastingDisplay implements TransferRecipeDisplay {
     
     public DefaultBlastingDisplay(BlastingRecipe recipe) {
         this.display = recipe;
-        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
         this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getStackForRender).collect(Collectors.toList()));
         this.output = Collections.singletonList(recipe.getOutput());
     }
@@ -80,6 +80,6 @@ public class DefaultBlastingDisplay implements TransferRecipeDisplay {
     
     @Override
     public List<List<ItemStack>> getOrganisedInput(ContainerInfo<Container> containerInfo, Container container) {
-        return display.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        return display.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
     }
 }

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

@@ -7,7 +7,7 @@ package me.shedaniel.rei.plugin.brewing;
 
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingDisplay.java

@@ -31,7 +31,7 @@ public class DefaultBrewingDisplay implements RecipeDisplay {
     
     @Override
     public List<List<ItemStack>> getInput() {
-        return Lists.newArrayList(Collections.singletonList(input), Arrays.asList(reactant.getStackArray()));
+        return Lists.newArrayList(Collections.singletonList(input), Arrays.asList(reactant.getMatchingStacksClient()));
     }
     
     @Override

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

@@ -7,7 +7,7 @@ package me.shedaniel.rei.plugin.campfire;
 
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireDisplay.java

@@ -33,7 +33,7 @@ public class DefaultCampfireDisplay implements RecipeDisplay {
     }
     
     public DefaultCampfireDisplay(DefaultedList<Ingredient> ingredients, ItemStack output, int cookTime) {
-        this.inputs = ingredients.stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        this.inputs = ingredients.stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
         this.output = Collections.singletonList(output);
         this.cookTime = cookTime;
     }

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

@@ -8,7 +8,7 @@ package me.shedaniel.rei.plugin.composting;
 import com.google.common.collect.Lists;
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.gui.renderers.RecipeRenderer;
@@ -70,7 +70,7 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti
         widgets.add(new RecipeBaseWidget(bounds) {
             @Override
             public void render(int mouseX, int mouseY, float partialTicks) {
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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

@@ -9,7 +9,7 @@ import com.google.common.collect.Lists;
 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 com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.api.TransferRecipeCategory;
 import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
@@ -65,7 +65,7 @@ public class DefaultCraftingCategory implements TransferRecipeCategory<DefaultCr
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 super.render(mouseX, mouseY, delta);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);
@@ -91,13 +91,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);
-        RenderHelper.translatef(0, 0, 400);
+        RenderSystem.translatef(0, 0, 400);
         for (Integer slot : redSlots) {
             int i = getSlotWithSize(display, slot, 3);
             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);
         }
-        RenderHelper.translatef(0, 0, -400);
+        RenderSystem.translatef(0, 0, -400);
     }
 }

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapedDisplay.java

@@ -24,7 +24,7 @@ public class DefaultShapedDisplay implements DefaultCraftingDisplay {
     
     public DefaultShapedDisplay(ShapedRecipe recipe) {
         this.display = recipe;
-        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
         this.output = Collections.singletonList(recipe.getOutput());
     }
     

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapelessDisplay.java

@@ -24,7 +24,7 @@ public class DefaultShapelessDisplay implements DefaultCraftingDisplay {
     
     public DefaultShapelessDisplay(ShapelessRecipe recipe) {
         this.display = recipe;
-        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
         this.output = Collections.singletonList(recipe.getOutput());
     }
     

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

@@ -8,7 +8,7 @@ package me.shedaniel.rei.plugin.smelting;
 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 com.mojang.blaze3d.systems.RenderSystem;
 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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);
@@ -81,11 +81,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);
-        RenderHelper.translatef(0, 0, 400);
+        RenderSystem.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);
         }
-        RenderHelper.translatef(0, 0, -400);
+        RenderSystem.translatef(0, 0, -400);
     }
     
 }

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingDisplay.java

@@ -30,7 +30,7 @@ public class DefaultSmeltingDisplay implements TransferRecipeDisplay {
     
     public DefaultSmeltingDisplay(SmeltingRecipe recipe) {
         this.display = recipe;
-        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
         this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getStackForRender).collect(Collectors.toList()));
         this.output = Collections.singletonList(recipe.getOutput());
     }
@@ -80,6 +80,6 @@ public class DefaultSmeltingDisplay implements TransferRecipeDisplay {
     
     @Override
     public List<List<ItemStack>> getOrganisedInput(ContainerInfo<Container> containerInfo, Container container) {
-        return display.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        return display.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
     }
 }

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

@@ -8,7 +8,7 @@ package me.shedaniel.rei.plugin.smoking;
 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 com.mojang.blaze3d.systems.RenderSystem;
 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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);
@@ -81,11 +81,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);
-        RenderHelper.translatef(0, 0, 400);
+        RenderSystem.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);
         }
-        RenderHelper.translatef(0, 0, -400);
+        RenderSystem.translatef(0, 0, -400);
     }
     
 }

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java

@@ -30,7 +30,7 @@ public class DefaultSmokingDisplay implements TransferRecipeDisplay {
     
     public DefaultSmokingDisplay(SmokingRecipe recipe) {
         this.display = recipe;
-        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
         this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getStackForRender).collect(Collectors.toList()));
         this.output = Collections.singletonList(recipe.getOutput());
     }
@@ -80,7 +80,7 @@ public class DefaultSmokingDisplay implements TransferRecipeDisplay {
     
     @Override
     public List<List<ItemStack>> getOrganisedInput(ContainerInfo<Container> containerInfo, Container container) {
-        return display.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        return display.getPreviewInputs().stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
     }
     
 }

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

@@ -7,7 +7,7 @@ package me.shedaniel.rei.plugin.stonecutting;
 
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/stonecutting/DefaultStoneCuttingDisplay.java

@@ -32,7 +32,7 @@ public class DefaultStoneCuttingDisplay implements RecipeDisplay {
     }
     
     public DefaultStoneCuttingDisplay(DefaultedList<Ingredient> ingredients, ItemStack output) {
-        this.inputs = ingredients.stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
+        this.inputs = ingredients.stream().map(i -> Arrays.asList(i.getMatchingStacksClient())).collect(Collectors.toList());
         this.output = Collections.singletonList(output);
     }
     

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

@@ -7,7 +7,7 @@ package me.shedaniel.rei.plugin.stripping;
 
 import me.shedaniel.math.api.Point;
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.math.compat.RenderHelper;
+import com.mojang.blaze3d.systems.RenderSystem;
 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);
-                RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+                RenderSystem.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);