aboutsummaryrefslogtreecommitdiff
path: root/runtime/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-04-10 02:29:48 +0800
committershedaniel <daniel@shedaniel.me>2021-04-10 02:29:48 +0800
commit8341de88a57ffe7c6be6634314ce7f18bccaf28e (patch)
tree83316bb567d866276059602320bfe0c65d48b6ba /runtime/src
parent188066bfd4817c1c160061d61e7a0130e9377e98 (diff)
downloadRoughlyEnoughItems-8341de88a57ffe7c6be6634314ce7f18bccaf28e.tar.gz
RoughlyEnoughItems-8341de88a57ffe7c6be6634314ce7f18bccaf28e.tar.bz2
RoughlyEnoughItems-8341de88a57ffe7c6be6634314ce7f18bccaf28e.zip
Primitive port to 21w14a
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'runtime/src')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java22
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java27
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java1
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java23
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ContainerScreenOverlay.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java30
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/GameModeMenuEntry.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/SubSubsetsMenuEntry.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/SearchFilterSyntaxHighlightingScreen.java11
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/TransformingScreen.java24
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/CopyRecipeIdentifierToast.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/ExportRecipeIdentifierToast.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java (renamed from runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchEntryRendererManager.java)17
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java50
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListEntryWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/FavoritesListWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ArrowWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/BurningFireWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ButtonWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/FillRectangleDrawableConsumer.java11
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/PanelWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TextFieldWidget.java11
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TexturedDrawableConsumer.java5
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchFieldSyntaxHighlighter.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/IntRange.java38
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/Argument.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/result/ArgumentApplicableResult.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/compat/LBASupportPlugin.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java15
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java54
40 files changed, 226 insertions, 212 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
index 0e79ca8f6..46f02a5a8 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
@@ -25,6 +25,7 @@ package me.shedaniel.rei;
import io.netty.buffer.Unpooled;
import me.shedaniel.architectury.networking.NetworkManager;
+import me.shedaniel.rei.api.client.REIHelper;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.impl.common.transfer.InputSlotCrafter;
@@ -57,9 +58,10 @@ public class RoughlyEnoughItemsNetwork {
player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false);
return;
}
- if (!player.inventory.getCarried().isEmpty()) {
- player.inventory.setCarried(ItemStack.EMPTY);
- player.broadcastCarriedItem();
+ AbstractContainerMenu menu = player.containerMenu;
+ if (!menu.getCarried().isEmpty()) {
+ menu.setCarried(ItemStack.EMPTY);
+ menu.broadcastChanges();
}
});
NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_PACKET, (buf, context) -> {
@@ -69,7 +71,7 @@ public class RoughlyEnoughItemsNetwork {
return;
}
ItemStack stack = buf.readItem();
- if (player.inventory.add(stack.copy())) {
+ if (player.getInventory().add(stack.copy())) {
NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(stack.copy()).writeUtf(player.getScoreboardName(), 32767));
} else {
player.displayClientMessage(new TranslatableComponent("text.rei.failed_cheat_items"), false);
@@ -82,16 +84,16 @@ public class RoughlyEnoughItemsNetwork {
return;
}
- Inventory inventory = player.inventory;
+ AbstractContainerMenu menu = player.containerMenu;
ItemStack itemStack = buf.readItem();
ItemStack stack = itemStack.copy();
- if (!inventory.getCarried().isEmpty() && ItemStack.isSameIgnoreDurability(inventory.getCarried(), stack) && ItemStack.tagMatches(inventory.getCarried(), stack)) {
- stack.setCount(Mth.clamp(stack.getCount() + inventory.getCarried().getCount(), 1, stack.getMaxStackSize()));
- } else if (!inventory.getCarried().isEmpty()) {
+ if (!menu.getCarried().isEmpty() && ItemStack.isSameIgnoreDurability(menu.getCarried(), stack) && ItemStack.tagMatches(menu.getCarried(), stack)) {
+ stack.setCount(Mth.clamp(stack.getCount() + menu.getCarried().getCount(), 1, stack.getMaxStackSize()));
+ } else if (!menu.getCarried().isEmpty()) {
return;
}
- inventory.setCarried(stack.copy());
- player.broadcastCarriedItem();
+ menu.setCarried(stack.copy());
+ menu.broadcastChanges();
NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(itemStack.copy()).writeUtf(player.getScoreboardName(), 32767));
});
NetworkManager.registerReceiver(NetworkManager.c2s(), MOVE_ITEMS_PACKET, (packetByteBuf, context) -> {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
index 9ae8da79e..bd2940d4d 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
@@ -56,14 +56,13 @@ import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.LazyLoadedValue;
import net.minecraft.util.Mth;
-import net.minecraft.world.entity.player.Inventory;
+import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.time.LocalDateTime;
import java.util.*;
-import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@@ -103,7 +102,7 @@ public class ClientHelperImpl implements ClientHelper {
return (ClientHelperImpl) ClientHelper.getInstance();
}
- public boolean hasPermissionToUsePackets() {
+ public boolean hasPermissionToUsePackets() {
try {
Minecraft.getInstance().getConnection().getSuggestionsProvider().hasPermission(0);
return hasOperatorPermission() && canUsePackets();
@@ -157,7 +156,7 @@ public class ClientHelperImpl implements ClientHelper {
@Override
public void sendDeletePacket() {
if (Minecraft.getInstance().screen instanceof CreativeModeInventoryScreen) {
- Minecraft.getInstance().player.inventory.setCarried(ItemStack.EMPTY);
+ Minecraft.getInstance().player.containerMenu.setCarried(ItemStack.EMPTY);
((CreativeModeInventoryScreen) Minecraft.getInstance().screen).isQuickCrafting = false;
return;
}
@@ -173,22 +172,22 @@ public class ClientHelperImpl implements ClientHelper {
return false;
EntryStack<ItemStack> entry = (EntryStack<ItemStack>) e;
if (Minecraft.getInstance().player == null) return false;
- if (Minecraft.getInstance().player.inventory == null) return false;
+ if (Minecraft.getInstance().player.getInventory() == null) return false;
ItemStack cheatedStack = entry.getValue().copy();
if (ConfigObject.getInstance().isGrabbingItems() && Minecraft.getInstance().screen instanceof CreativeModeInventoryScreen) {
- Inventory inventory = Minecraft.getInstance().player.inventory;
+ AbstractContainerMenu menu = Minecraft.getInstance().player.containerMenu;
EntryStack<ItemStack> stack = entry.copy();
- if (!inventory.getCarried().isEmpty() && EntryStacks.equalsExact(EntryStacks.of(inventory.getCarried()), stack)) {
- stack.getValue().setCount(Mth.clamp(stack.getValue().getCount() + inventory.getCarried().getCount(), 1, stack.getValue().getMaxStackSize()));
- } else if (!inventory.getCarried().isEmpty()) {
+ if (!menu.getCarried().isEmpty() && EntryStacks.equalsExact(EntryStacks.of(menu.getCarried()), stack)) {
+ stack.getValue().setCount(Mth.clamp(stack.getValue().getCount() + menu.getCarried().getCount(), 1, stack.getValue().getMaxStackSize()));
+ } else if (!menu.getCarried().isEmpty()) {
return false;
}
- inventory.setCarried(stack.getValue().copy());
+ menu.setCarried(stack.getValue().copy());
return true;
} else if (ClientHelperImpl.getInstance().canUsePackets()) {
- Inventory inventory = Minecraft.getInstance().player.inventory;
+ AbstractContainerMenu menu = Minecraft.getInstance().player.containerMenu;
EntryStack<ItemStack> stack = entry.copy();
- if (!inventory.getCarried().isEmpty() && !EntryStacks.equalsExact(EntryStacks.of(inventory.getCarried()), stack)) {
+ if (!menu.getCarried().isEmpty() && !EntryStacks.equalsExact(EntryStacks.of(menu.getCarried()), stack)) {
return false;
}
try {
@@ -216,7 +215,7 @@ public class ClientHelperImpl implements ClientHelper {
@ApiStatus.Internal
public Set<EntryStack<?>> _getInventoryItemsTypes() {
- return Minecraft.getInstance().player.inventory.compartments.stream()
+ return Minecraft.getInstance().player.getInventory().compartments.stream()
.flatMap(Collection::stream)
.map(EntryStacks::of)
.collect(Collectors.toSet());
@@ -421,7 +420,7 @@ public class ClientHelperImpl implements ClientHelper {
this.preferredOpenedCategory = category;
return this;
}
-
+
@Override
@Nullable
public CategoryIdentifier<?> getPreferredOpenedCategory() {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
index e9c899a95..56bfb9fa9 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
@@ -47,6 +47,7 @@ import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.InteractionResult;
+import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
index 149a8f929..5918a373c 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
@@ -23,6 +23,7 @@
package me.shedaniel.rei.impl.client.config.entries;
+import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import me.shedaniel.clothconfig2.gui.widget.DynamicElementListWidget;
import me.shedaniel.rei.impl.client.entry.filtering.FilteringRule;
@@ -191,7 +192,7 @@ public class FilteringRulesScreen extends Screen {
@Override
protected void renderBg(PoseStack matrices, Minecraft client, int mouseX, int mouseY) {
super.renderBg(matrices, client, mouseX, mouseY);
- Minecraft.getInstance().getTextureManager().bind(CHEST_GUI_TEXTURE);
+ RenderSystem.setShaderTexture(0, CHEST_GUI_TEXTURE);
blit(matrices, x + 3, y + 3, 0, 0, 14, 14);
}
};
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
index 7a6e9f32d..89a54e403 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
@@ -26,10 +26,7 @@ package me.shedaniel.rei.impl.client.config.entries;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.mojang.blaze3d.systems.RenderSystem;
-import com.mojang.blaze3d.vertex.BufferBuilder;
-import com.mojang.blaze3d.vertex.DefaultVertexFormat;
-import com.mojang.blaze3d.vertex.PoseStack;
-import com.mojang.blaze3d.vertex.Tesselator;
+import com.mojang.blaze3d.vertex.*;
import com.mojang.math.Matrix4f;
import me.shedaniel.clothconfig2.ClothConfigInitializer;
import me.shedaniel.clothconfig2.api.ScissorsHandler;
@@ -46,13 +43,14 @@ import me.shedaniel.rei.api.client.search.SearchFilter;
import me.shedaniel.rei.api.client.search.SearchProvider;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.impl.client.gui.ContainerScreenOverlay;
-import me.shedaniel.rei.impl.client.gui.widget.BatchEntryRendererManager;
+import me.shedaniel.rei.impl.client.gui.widget.BatchedEntryRendererManager;
import me.shedaniel.rei.impl.client.gui.widget.EntryWidget;
import me.shedaniel.rei.impl.client.gui.widget.search.OverlaySearchField;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.screens.Screen;
+import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.chat.TranslatableComponent;
@@ -196,11 +194,12 @@ public class FilteringScreen extends Screen {
protected void renderHoleBackground(PoseStack matrices, int y1, int y2, int tint, int alpha1, int alpha2) {
Tesselator tesselator = Tesselator.getInstance();
BufferBuilder buffer = tesselator.getBuilder();
- this.minecraft.getTextureManager().bind(BACKGROUND_LOCATION);
+ RenderSystem.setShaderTexture(0, BACKGROUND_LOCATION);
Matrix4f matrix = matrices.last().pose();
- RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
float float_1 = 32.0F;
- buffer.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
+ RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
+ buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
buffer.vertex(matrix, 0, y2, 0.0F).uv(0.0F, y2 / 32.0F).color(tint, tint, tint, alpha2).endVertex();
buffer.vertex(matrix, this.width, y2, 0.0F).uv(this.width / 32.0F, y2 / 32.0F).color(tint, tint, tint, alpha2).endVertex();
buffer.vertex(matrix, this.width, y1, 0.0F).uv(this.width / 32.0F, y1 / 32.0F).color(tint, tint, tint, alpha1).endVertex();
@@ -222,7 +221,7 @@ public class FilteringScreen extends Screen {
int skip = Math.max(0, Mth.floor(scrolling.scrollAmount / (float) entrySize()));
int nextIndex = skip * innerBounds.width / entrySize();
int i = nextIndex;
- BatchEntryRendererManager manager = new BatchEntryRendererManager();
+ BatchedEntryRendererManager manager = new BatchedEntryRendererManager();
for (; i < entryStacks.size(); i++) {
EntryStack<?> stack = entryStacks.get(i);
EntryListEntry entry = entries.get(nextIndex);
@@ -250,19 +249,15 @@ public class FilteringScreen extends Screen {
BufferBuilder buffer = tesselator.getBuilder();
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(770, 771, 0, 1);
- RenderSystem.disableAlphaTest();
- RenderSystem.shadeModel(7425);
RenderSystem.disableTexture();
Matrix4f matrix = matrices.last().pose();
- buffer.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
+ buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
buffer.vertex(matrix, 0, bounds.y + 4, 0.0F).uv(0.0F, 1.0F).color(0, 0, 0, 0).endVertex();
buffer.vertex(matrix, width, bounds.y + 4, 0.0F).uv(1.0F, 1.0F).color(0, 0, 0, 0).endVertex();
buffer.vertex(matrix, width, bounds.y, 0.0F).uv(1.0F, 0.0F).color(0, 0, 0, 255).endVertex();
buffer.vertex(matrix, 0, bounds.y, 0.0F).uv(0.0F, 0.0F).color(0, 0, 0, 255).endVertex();
tesselator.end();
RenderSystem.enableTexture();
- RenderSystem.shadeModel(7424);
- RenderSystem.enableAlphaTest();
RenderSystem.disableBlend();
renderHoleBackground(matrices, 0, bounds.y, 64, 255, 255);
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ContainerScreenOverlay.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ContainerScreenOverlay.java
index 8abd4ea35..f8ffd2a01 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ContainerScreenOverlay.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ContainerScreenOverlay.java
@@ -209,7 +209,7 @@ public class ContainerScreenOverlay extends REIOverlay {
}
public void init() {
- draggingStack.set(DraggableStackProvider.from(() -> ScreenRegistry.getInstance().getDraggableProviders()),
+ draggingStack.set(DraggableStackProvider.from(() -> ScreenRegistry.getInstance().getDraggableProviders()),
DraggableStackVisitor.from(() -> ScreenRegistry.getInstance().getDraggableVisitors()));
this.shouldReload = false;
@@ -252,7 +252,7 @@ public class ContainerScreenOverlay extends REIOverlay {
.tooltipLine(new TranslatableComponent("text.rei.next_page"))
.focusable(false));
}
-
+
final Rectangle configButtonArea = getConfigButtonArea();
widgets.add(configButton = InternalWidgets.wrapLateRenderable(
Widgets.withTranslate(
@@ -292,7 +292,7 @@ public class ContainerScreenOverlay extends REIOverlay {
}),
Widgets.createDrawableWidget((helper, matrices, mouseX, mouseY, delta) -> {
helper.setBlitOffset(helper.getBlitOffset() + 1);
- Minecraft.getInstance().getTextureManager().bind(CHEST_GUI_TEXTURE);
+ RenderSystem.setShaderTexture(0, CHEST_GUI_TEXTURE);
helper.blit(matrices, configButtonArea.x + 3, configButtonArea.y + 3, 0, 0, 14, 14);
})
),
@@ -345,8 +345,8 @@ public class ContainerScreenOverlay extends REIOverlay {
.focusable(false)
.containsMousePredicate((button, point) -> button.getBounds().contains(point) && isNotInExclusionZones(point.x, point.y)));
widgets.add(Widgets.createDrawableWidget((helper, matrices, mouseX, mouseY, delta) -> {
- Minecraft.getInstance().getTextureManager().bind(CHEST_GUI_TEXTURE);
- RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ RenderSystem.setShaderTexture(0, CHEST_GUI_TEXTURE);
+ RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
helper.blit(matrices, weatherButton.getBounds().x + 3, weatherButton.getBounds().y + 3, getCurrentWeather().getId() * 14, 14, 14, 14);
}));
}
@@ -533,7 +533,7 @@ public class ContainerScreenOverlay extends REIOverlay {
}
matrices.popPose();
}
- RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
this.renderWidgets(matrices, mouseX, mouseY, delta);
if (ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) {
Screen screen = Minecraft.getInstance().screen;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java
index a47ad56c3..df4b72d32 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java
@@ -29,6 +29,7 @@ import com.mojang.blaze3d.platform.NativeImage;
import com.mojang.blaze3d.platform.Window;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
+import com.mojang.math.Matrix4f;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.gui.widgets.Widget;
import me.shedaniel.rei.impl.client.gui.toast.ExportRecipeIdentifierToast;
@@ -70,30 +71,26 @@ public final class RecipeDisplayExporter extends Widget {
}
}
- @SuppressWarnings("deprecation")
private void exportRecipe(Rectangle rectangle, List<Widget> widgets) {
- RenderSystem.pushMatrix();
Minecraft client = Minecraft.getInstance();
Window window = client.getWindow();
- RenderTarget framebuffer = new RenderTarget(window.getWidth(), window.getHeight(), true, false);
- framebuffer.bindWrite(true);
- RenderSystem.viewport(0, 0, window.getWidth(), window.getHeight());
+ RenderTarget renderTarget = new RenderTarget(window.getWidth(), window.getHeight(), true, false);
+ renderTarget.bindWrite(true);
RenderSystem.clear(256, Minecraft.ON_OSX);
- RenderSystem.matrixMode(5889);
- RenderSystem.loadIdentity();
- RenderSystem.ortho(0.0D, (double) window.getWidth() / window.getGuiScale(), (double) window.getHeight() / window.getGuiScale(), 0.0D, 1000.0D, 3000.0D);
- RenderSystem.matrixMode(5888);
- RenderSystem.loadIdentity();
- RenderSystem.translatef(0.0F, 0.0F, -2000.0F);
+ Matrix4f matrix4f = Matrix4f.orthographic(0.0F, (float) ((double) window.getWidth() / window.getGuiScale()), 0.0F, (float) ((double) window.getHeight() / window.getGuiScale()), 1000.0F, 3000.0F);
+ RenderSystem.setProjectionMatrix(matrix4f);
+ PoseStack poseStack = RenderSystem.getModelViewStack();
+ poseStack.setIdentity();
+ poseStack.translate(0.0D, 0.0D, -2000.0D);
+ RenderSystem.applyModelViewMatrix();
Lighting.setupFor3DItems();
PoseStack matrices = new PoseStack();
for (Widget widget : widgets) {
widget.render(matrices, -1, -1, 0);
}
- RenderSystem.popMatrix();
- NativeImage nativeImage = new NativeImage(framebuffer.width, framebuffer.height, false);
- RenderSystem.bindTexture(framebuffer.getColorTextureId());
+ NativeImage nativeImage = new NativeImage(renderTarget.width, renderTarget.height, false);
+ RenderSystem.bindTexture(renderTarget.getColorTextureId());
nativeImage.downloadTexture(0, false);
nativeImage.flipY();
int outWidth = (int) (rectangle.width * window.getGuiScale());
@@ -114,9 +111,12 @@ public final class RecipeDisplayExporter extends Widget {
} finally {
nativeImage.close();
strippedImage.close();
- RenderSystem.recordRenderCall(framebuffer::destroyBuffers);
}
});
+
+ renderTarget.destroyBuffers();
+ Minecraft.getInstance().levelRenderer.graphicsChanged();
+ Minecraft.getInstance().getMainRenderTarget().bindWrite(true);
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/GameModeMenuEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/GameModeMenuEntry.java
index b1d3fe704..db2eeb672 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/GameModeMenuEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/GameModeMenuEntry.java
@@ -47,7 +47,7 @@ public class GameModeMenuEntry extends MenuEntry {
private int textWidth = -69;
public GameModeMenuEntry(GameType gameMode) {
- this.text = gameMode.getDisplayName().getString();
+ this.text = gameMode.getLongDisplayName().getString();
this.gameMode = gameMode;
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/SubSubsetsMenuEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/SubSubsetsMenuEntry.java
index 36c3426b6..e1573e