aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-05-09 00:26:18 +0800
committershedaniel <daniel@shedaniel.me>2020-05-09 00:26:18 +0800
commitc27630f0c0eb7e5084f28139aaf2ba45ff3a7e23 (patch)
tree6ffc4062b4207ced1eb17bfdb51c5d2a865e9d06 /src/main/java
parent9662f0e452a0e1ac23de3f39861d15db7db5b1cc (diff)
downloadRoughlyEnoughItems-c27630f0c0eb7e5084f28139aaf2ba45ff3a7e23.tar.gz
RoughlyEnoughItems-c27630f0c0eb7e5084f28139aaf2ba45ff3a7e23.tar.bz2
RoughlyEnoughItems-c27630f0c0eb7e5084f28139aaf2ba45ff3a7e23.zip
Welcome back: Container
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java28
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java24
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsState.java1
-rw-r--r--src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java34
-rw-r--r--src/main/java/me/shedaniel/rei/api/REIHelper.java9
-rw-r--r--src/main/java/me/shedaniel/rei/api/RecipeHelper.java6
-rw-r--r--src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java5
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java40
-rw-r--r--src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/WarningAndErrorScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java3
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java4
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java2
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java7
-rw-r--r--src/main/java/me/shedaniel/rei/impl/EntryRegistryImpl.java2
-rw-r--r--src/main/java/me/shedaniel/rei/impl/InternalWidgets.java10
-rw-r--r--src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java12
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ScreenHelper.java22
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java12
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java10
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java14
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java12
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java22
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultRecipeBookHandler.java26
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java12
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/cooking/DefaultCookingDisplay.java4
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java6
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java4
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java2
-rw-r--r--src/main/java/me/shedaniel/rei/server/ContainerInfo.java6
-rw-r--r--src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java22
-rw-r--r--src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java52
36 files changed, 226 insertions, 213 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index 0fd28b111..9c90ea21d 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -39,9 +39,9 @@ import net.fabricmc.loader.api.ModContainer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.ingame.CraftingScreen;
+import net.minecraft.client.gui.screen.ingame.ContainerScreen;
+import net.minecraft.client.gui.screen.ingame.CraftingTableScreen;
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
-import net.minecraft.client.gui.screen.ingame.HandledScreen;
import net.minecraft.client.gui.screen.ingame.InventoryScreen;
import net.minecraft.client.gui.screen.recipebook.RecipeBookGhostSlots;
import net.minecraft.client.gui.screen.recipebook.RecipeBookProvider;
@@ -49,11 +49,11 @@ import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.client.gui.widget.TexturedButtonWidget;
import net.minecraft.client.resource.language.I18n;
+import net.minecraft.container.CraftingTableContainer;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.recipe.Ingredient;
import net.minecraft.recipe.RecipeManager;
-import net.minecraft.screen.CraftingScreenHandler;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.LiteralText;
import net.minecraft.util.ActionResult;
@@ -192,11 +192,11 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
ClientSidePacketRegistry.INSTANCE.register(RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, (packetContext, packetByteBuf) -> {
ItemStack stack = packetByteBuf.readItemStack();
String player = packetByteBuf.readString(32767);
- packetContext.getPlayer().sendMessage(new LiteralText(I18n.translate("text.rei.cheat_items").replaceAll("\\{item_name}", SearchArgument.tryGetItemStackName(stack.copy())).replaceAll("\\{item_count}", stack.copy().getCount() + "").replaceAll("\\{player_name}", player)), false);
+ packetContext.getPlayer().addMessage(new LiteralText(I18n.translate("text.rei.cheat_items").replaceAll("\\{item_name}", SearchArgument.tryGetItemStackName(stack.copy())).replaceAll("\\{item_count}", stack.copy().getCount() + "").replaceAll("\\{player_name}", player)), false);
});
ClientSidePacketRegistry.INSTANCE.register(RoughlyEnoughItemsNetwork.NOT_ENOUGH_ITEMS_PACKET, (packetContext, packetByteBuf) -> {
Screen currentScreen = MinecraftClient.getInstance().currentScreen;
- if (currentScreen instanceof CraftingScreen) {
+ if (currentScreen instanceof CraftingTableScreen) {
RecipeBookWidget recipeBookGui = ((RecipeBookProvider) currentScreen).getRecipeBookWidget();
RecipeBookGhostSlots ghostSlots = recipeBookGui.ghostSlots;
ghostSlots.reset();
@@ -213,12 +213,12 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
}
ghostSlots.addSlot(Ingredient.ofItems(Items.STONE), 381203812, 12738291);
- CraftingScreenHandler screenHandler = ((CraftingScreen) currentScreen).getScreenHandler();
+ CraftingTableContainer container = ((CraftingTableScreen) currentScreen).getContainer();
for (int i = 0; i < input.size(); i++) {
List<ItemStack> stacks = input.get(i);
if (!stacks.isEmpty()) {
- Slot slot = screenHandler.getSlot(i + screenHandler.getCraftingResultSlotIndex() + 1);
- ghostSlots.addSlot(Ingredient.ofStacks(stacks.toArray(new ItemStack[0])), slot.x, slot.y);
+ Slot slot = container.getSlot(i + container.getCraftingResultSlotIndex() + 1);
+ ghostSlots.addSlot(Ingredient.ofStacks(stacks.toArray(new ItemStack[0])), slot.xPosition, slot.yPosition);
}
}
}
@@ -296,7 +296,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
continue;
ActionResult result = decider.shouldScreenBeOverlayed(screen);
if (result != ActionResult.PASS)
- return result == ActionResult.FAIL || REIHelper.getInstance().getPreviousHandledScreen() == null;
+ return result == ActionResult.FAIL || REIHelper.getInstance().getPreviousContainerScreen() == null;
}
} catch (ConcurrentModificationException ignored) {
}
@@ -308,7 +308,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
long[] lastSync = {-1};
ClothClientHooks.SYNC_RECIPES.register((minecraftClient, recipeManager, synchronizeRecipesS2CPacket) -> syncRecipes(lastSync));
ClothClientHooks.SCREEN_ADD_BUTTON.register((minecraftClient, screen, abstractButtonWidget) -> {
- if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof HandledScreen && abstractButtonWidget instanceof TexturedButtonWidget)
+ if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof ContainerScreen && abstractButtonWidget instanceof TexturedButtonWidget)
if (((TexturedButtonWidget) abstractButtonWidget).texture.equals(recipeButtonTex))
return ActionResult.FAIL;
return ActionResult.PASS;
@@ -318,8 +318,8 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
return;
if (screen instanceof InventoryScreen && minecraftClient.interactionManager.hasCreativeInventory())
return;
- if (screen instanceof HandledScreen)
- ScreenHelper.setLastHandledScreen((HandledScreen<?>) screen);
+ if (screen instanceof ContainerScreen)
+ ScreenHelper.setPreviousContainerScreen((ContainerScreen<?>) screen);
boolean alreadyAdded = false;
for (Element element : Lists.newArrayList(screenHooks.cloth_getChildren()))
if (ContainerScreenOverlay.class.isAssignableFrom(element.getClass()))
@@ -385,9 +385,9 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
return ActionResult.PASS;
if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2))
return ActionResult.SUCCESS;
- if (screen instanceof HandledScreen && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer())
+ if (screen instanceof ContainerScreen && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer())
if (i == 258 && minecraftClient.options.keyInventory.matchesKey(i, i1)) {
- minecraftClient.player.closeHandledScreen();
+ minecraftClient.player.closeContainer();
return ActionResult.SUCCESS;
}
return ActionResult.PASS;
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
index 2898983b7..4c20d5f7b 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
@@ -31,11 +31,11 @@ import me.shedaniel.rei.server.InputSlotCrafter;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
import net.fabricmc.loader.api.FabricLoader;
+import net.minecraft.container.Container;
+import net.minecraft.container.CraftingContainer;
+import net.minecraft.container.PlayerContainer;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketByteBuf;
-import net.minecraft.screen.AbstractRecipeScreenHandler;
-import net.minecraft.screen.PlayerScreenHandler;
-import net.minecraft.screen.ScreenHandler;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Formatting;
@@ -65,7 +65,7 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer {
ServerSidePacketRegistry.INSTANCE.register(DELETE_ITEMS_PACKET, (packetContext, packetByteBuf) -> {
ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer();
if (player.getServer().getPermissionLevel(player.getGameProfile()) < player.getServer().getOpPermissionLevel()) {
- player.sendMessage(new TranslatableText("text.rei.no_permission_cheat").formatted(Formatting.RED), false);
+ player.addMessage(new TranslatableText("text.rei.no_permission_cheat").formatted(Formatting.RED), false);
return;
}
if (!player.inventory.getCursorStack().isEmpty())
@@ -74,20 +74,20 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer {
ServerSidePacketRegistry.INSTANCE.register(CREATE_ITEMS_PACKET, (packetContext, packetByteBuf) -> {
ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer();
if (player.getServer().getPermissionLevel(player.getGameProfile()) < player.getServer().getOpPermissionLevel()) {
- player.sendMessage(new TranslatableText("text.rei.no_permission_cheat").formatted(Formatting.RED), false);
+ player.addMessage(new TranslatableText("text.rei.no_permission_cheat").formatted(Formatting.RED), false);
return;
}
ItemStack stack = packetByteBuf.readItemStack();
if (player.inventory.insertStack(stack.copy())) {
ServerSidePacketRegistry.INSTANCE.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new PacketByteBuf(Unpooled.buffer()).writeItemStack(stack.copy()).writeString(player.getEntityName(), 32767));
} else
- player.sendMessage(new TranslatableText("text.rei.failed_cheat_items"), false);
+ player.addMessage(new TranslatableText("text.rei.failed_cheat_items"), false);
});
ServerSidePacketRegistry.INSTANCE.register(MOVE_ITEMS_PACKET, (packetContext, packetByteBuf) -> {
Identifier category = packetByteBuf.readIdentifier();
ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer();
- ScreenHandler screenHandler = player.currentScreenHandler;
- PlayerScreenHandler playerScreenHandler = player.playerScreenHandler;
+ Container container = player.container;
+ PlayerContainer playerContainer = player.playerContainer;
try {
boolean shift = packetByteBuf.readBoolean();
Map<Integer, List<ItemStack>> input = Maps.newHashMap();
@@ -101,9 +101,9 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer {
input.put(i, list);
}
try {
- InputSlotCrafter.start(category, screenHandler, player, input, shift);
+ InputSlotCrafter.start(category, container, player, input, shift);
} catch (InputSlotCrafter.NotEnoughMaterialsException e) {
- if (!(screenHandler instanceof AbstractRecipeScreenHandler))
+ if (!(container instanceof CraftingContainer))
return;
PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer());
buf.writeInt(input.size());
@@ -118,9 +118,9 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer {
ServerSidePacketRegistry.INSTANCE.sendToPlayer(player, NOT_ENOUGH_ITEMS_PACKET, buf);
}
} catch (IllegalStateException e) {
- player.sendSystemMessage(new TranslatableText(e.getMessage()).formatted(Formatting.RED));
+ player.sendMessage(new TranslatableText(e.getMessage()).formatted(Formatting.RED));
} catch (Exception e) {
- player.sendSystemMessage(new TranslatableText("error.rei.internal.error", e.getMessage()).formatted(Formatting.RED));
+ player.sendMessage(new TranslatableText("error.rei.internal.error", e.getMessage()).formatted(Formatting.RED));
e.printStackTrace();
}
} catch (Exception e) {
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsState.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsState.java
index 0a67d6f75..2f5240d09 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsState.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsState.java
@@ -79,7 +79,6 @@ public class RoughlyEnoughItemsState {
}
}
- @SuppressWarnings({"Convert2MethodRef", "FunctionalExpressionCanBeFolded"})
public static void onContinue(Runnable runnable) {
continueCallbacks.add(runnable);
}
diff --git a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java
index e494aae65..85eb02553 100644
--- a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java
+++ b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java
@@ -26,8 +26,8 @@ package me.shedaniel.rei.api;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.screen.ingame.HandledScreen;
-import net.minecraft.screen.ScreenHandler;
+import net.minecraft.client.gui.screen.ingame.ContainerScreen;
+import net.minecraft.container.Container;
import org.jetbrains.annotations.ApiStatus;
import java.util.function.Supplier;
@@ -80,8 +80,8 @@ public interface AutoTransferHandler {
}
interface Context {
- static Context create(boolean actuallyCrafting, HandledScreen<?> handledScreen, RecipeDisplay recipeDisplay) {
- return new ContextImpl(actuallyCrafting, handledScreen, () -> recipeDisplay);
+ static Context create(boolean actuallyCrafting, ContainerScreen<?> containerScreen, RecipeDisplay recipeDisplay) {
+ return new ContextImpl(actuallyCrafting, containerScreen, () -> recipeDisplay);
}
default MinecraftClient getMinecraft() {
@@ -90,12 +90,22 @@ public interface AutoTransferHandler {
boolean isActuallyCrafting();
- HandledScreen<?> getHandledScreen();
+ ContainerScreen<?> getContainerScreen();
+
+ @Deprecated
+ default ContainerScreen<?> getHandledScreen() {
+ return getContainerScreen();
+ }
RecipeDisplay getRecipe();
- default ScreenHandler getScreenHandler() {
- return getHandledScreen().getScreenHandler();
+ @Deprecated
+ default Container getScreenHandler() {
+ return getContainer();
+ }
+
+ default Container getContainer() {
+ return getHandledScreen().getContainer();
}
}
@@ -154,12 +164,12 @@ public interface AutoTransferHandler {
@ApiStatus.Internal
final class ContextImpl implements Context {
boolean actuallyCrafting;
- HandledScreen<?> handledScreen;
+ ContainerScreen<?> containerScreen;
Supplier<RecipeDisplay> recipeDisplaySupplier;
- private ContextImpl(boolean actuallyCrafting, HandledScreen<?> handledScreen, Supplier<RecipeDisplay> recipeDisplaySupplier) {
+ private ContextImpl(boolean actuallyCrafting, ContainerScreen<?> containerScreen, Supplier<RecipeDisplay> recipeDisplaySupplier) {
this.actuallyCrafting = actuallyCrafting;
- this.handledScreen = handledScreen;
+ this.containerScreen = containerScreen;
this.recipeDisplaySupplier = recipeDisplaySupplier;
}
@@ -169,8 +179,8 @@ public interface AutoTransferHandler {
}
@Override
- public HandledScreen<?> getHandledScreen() {
- return handledScreen;
+ public ContainerScreen<?> getContainerScreen() {
+ return containerScreen;
}
@Override
diff --git a/src/main/java/me/shedaniel/rei/api/REIHelper.java b/src/main/java/me/shedaniel/rei/api/REIHelper.java
index bfb9eac9f..a6ff10a8b 100644
--- a/src/main/java/me/shedaniel/rei/api/REIHelper.java
+++ b/src/main/java/me/shedaniel/rei/api/REIHelper.java
@@ -26,7 +26,7 @@ package me.shedaniel.rei.api;
import me.shedaniel.rei.api.widgets.Tooltip;
import me.shedaniel.rei.gui.widget.TextFieldWidget;
import me.shedaniel.rei.impl.ScreenHelper;
-import net.minecraft.client.gui.screen.ingame.HandledScreen;
+import net.minecraft.client.gui.screen.ingame.ContainerScreen;
import net.minecraft.item.ItemStack;
import org.jetbrains.annotations.Nullable;
@@ -41,7 +41,12 @@ public interface REIHelper {
return ScreenHelper.getInstance();
}
- HandledScreen<?> getPreviousHandledScreen();
+ ContainerScreen<?> getPreviousContainerScreen();
+
+ @Deprecated
+ default ContainerScreen<?> getPreviousHandledScreen() {
+ return getPreviousContainerScreen();
+ }
boolean isDarkThemeEnabled();
diff --git a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
index 9bec4c656..e4b80e915 100644
--- a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
+++ b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
@@ -25,7 +25,7 @@ package me.shedaniel.rei.api;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
-import net.minecraft.client.gui.screen.ingame.HandledScreen;
+import net.minecraft.client.gui.screen.ingame.ContainerScreen;
import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.RecipeManager;
import net.minecraft.util.Identifier;
@@ -221,7 +221,7 @@ public interface RecipeHelper {
*/
void registerLiveRecipeGenerator(LiveRecipeGenerator<?> liveRecipeGenerator);
- void registerScreenClickArea(Rectangle rectangle, Class<? extends HandledScreen<?>> screenClass, Identifier... categories);
+ void registerScreenClickArea(Rectangle rectangle, Class<? extends ContainerScreen<?>> screenClass, Identifier... categories);
<T extends Recipe<?>> void registerRecipes(Identifier category, Class<T> recipeClass, Function<T, RecipeDisplay> mappingFunction);
@@ -233,7 +233,7 @@ public interface RecipeHelper {
boolean arePluginsLoading();
interface ScreenClickArea {
- Class<? extends HandledScreen> getScreenClass();
+ Class<? extends ContainerScreen> getScreenClass();
Rectangle getRectangle();
diff --git a/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java b/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java
index e5ff9aa2c..d856b9076 100644
--- a/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java
+++ b/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java
@@ -24,8 +24,7 @@
package me.shedaniel.rei.api;
import me.shedaniel.rei.server.ContainerInfo;
-import net.minecraft.screen.ScreenHandler;
-
+import net.minecraft.container.Container;
import java.util.List;
public interface TransferRecipeDisplay extends RecipeDisplay {
@@ -40,6 +39,6 @@ public interface TransferRecipeDisplay extends RecipeDisplay {
*/
int getHeight();
- List<List<EntryStack>> getOrganisedInputEntries(ContainerInfo<ScreenHandler> containerInfo, ScreenHandler container);
+ List<List<EntryStack>> getOrganisedInputEntries(ContainerInfo<Container> containerInfo, Container container);
}
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index 0aaabfa7a..9388ad352 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -47,7 +47,7 @@ import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.ingame.HandledScreen;
+import net.minecraft.client.gui.screen.ingame.ContainerScreen;
import net.minecraft.client.render.Tessellator;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.item.ItemRenderer;
@@ -234,7 +234,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
ClientHelper.getInstance().setCheating(!ClientHelper.getInstance().isCheating());
return;
}
- ConfigManager.getInstance().openConfigScreen(REIHelper.getInstance().getPreviousHandledScreen());
+ ConfigManager.getInstance().openConfigScreen(REIHelper.getInstance().getPreviousContainerScreen());
})
.onRender((matrices, button) -> {
if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) {
@@ -374,7 +374,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
VillagerRecipeViewingScreen widget = (VillagerRecipeViewingScreen) MinecraftClient.getInstance().currentScreen;
return new Rectangle(widget.bounds.x, 3, widget.bounds.width, 18);
}
- return new Rectangle(REIHelper.getInstance().getPreviousHandledScreen().x, 3, REIHelper.getInstance().getPreviousHandledScreen().backgroundWidth, 18);
+ return new Rectangle(REIHelper.getInstance().getPreviousContainerScreen().x, 3, REIHelper.getInstance().getPreviousContainerScreen().containerWidth, 18);
}
return null;
}
@@ -443,7 +443,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
VillagerRecipeViewingScreen widget = (VillagerRecipeViewingScreen) MinecraftClient.getInstance().currentScreen;
return new Rectangle(widget.bounds.x, window.getScaledHeight() - 22, widget.bounds.width - widthRemoved, 18);
}
- return new Rectangle(REIHelper.getInstance().getPreviousHandledScreen().x, window.getScaledHeight() - 22, REIHelper.getInstance().getPreviousHandledScreen().backgroundWidth - widthRemoved, 18);
+ return new Rectangle(REIHelper.getInstance().getPreviousContainerScreen().x, window.getScaledHeight() - 22, REIHelper.getInstance().getPreviousContainerScreen().containerWidth - widthRemoved, 18);
}
private Rectangle getCraftableToggleArea() {
@@ -494,22 +494,22 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
if (OverlaySearchField.isSearching) {
matrices.push();
matrices.translate(0, 0, 200f);
- if (MinecraftClient.getInstance().currentScreen instanceof HandledScreen) {
- HandledScreen<?> handledScreen = (HandledScreen<?>) MinecraftClient.getInstance().currentScreen;
- int x = handledScreen.x, y = handledScreen.y;
- for (Slot slot : handledScreen.getScreenHandler().slots)
+ if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) {
+ ContainerScreen<?> containerScreen = (ContainerScreen<?>) MinecraftClient.getInstance().currentScreen;
+ int x = containerScreen.x, y = containerScreen.y;
+ for (Slot slot : containerScreen.getContainer().slots)
if (!slot.hasStack() || !ENTRY_LIST_WIDGET.canLastSearchTermsBeAppliedTo(EntryStack.create(slot.getStack())))
- fillGradient(matrices, x + slot.x, y + slot.y, x + slot.x + 16, y + slot.y + 16, -601874400, -601874400);
+ fillGradient(matrices, x + slot.xPosition, y + slot.yPosition, x + slot.xPosition + 16, y + slot.yPosition + 16, -601874400, -601874400);
}
matrices.pop();
}
RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
this.renderWidgets(matrices, mouseX, mouseY, delta);
- if (MinecraftClient.getInstance().currentScreen instanceof HandledScreen && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) {
- HandledScreen<?> handledScreen = (HandledScreen<?>) MinecraftClient.getInstance().currentScreen;
+ if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) {
+ ContainerScreen<?> containerScreen = (ContainerScreen<?>) MinecraftClient.getInstance().currentScreen;
for (RecipeHelper.ScreenClickArea area : RecipeHelper.getInstance().getScreenClickAreas())
if