From 0ef7d4d944b0683250f905f856c08e759ae9355d Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 10 Mar 2020 02:45:09 +0800 Subject: ScreenWithHandler refractor, why must we suffer Signed-off-by: shedaniel --- .../me/shedaniel/rei/RoughlyEnoughItemsCore.java | 22 +++++----- .../shedaniel/rei/RoughlyEnoughItemsNetwork.java | 14 +++---- .../me/shedaniel/rei/api/AutoTransferHandler.java | 37 ++++++++++------ .../java/me/shedaniel/rei/api/RecipeHelper.java | 6 +-- .../shedaniel/rei/api/TransferRecipeDisplay.java | 4 +- .../shedaniel/rei/gui/ConfigReloadingScreen.java | 6 +-- .../shedaniel/rei/gui/ContainerScreenOverlay.java | 36 ++++++++-------- .../shedaniel/rei/gui/PreRecipeViewingScreen.java | 14 +++---- .../me/shedaniel/rei/gui/RecipeViewingScreen.java | 18 ++++---- .../rei/gui/VillagerRecipeViewingScreen.java | 8 ++-- .../shedaniel/rei/gui/credits/CreditsScreen.java | 16 +++---- .../rei/gui/widget/AutoCraftingButtonWidget.java | 12 +++--- .../me/shedaniel/rei/gui/widget/ButtonWidget.java | 20 ++++----- .../gui/widget/CraftableToggleButtonWidget.java | 8 ++-- .../shedaniel/rei/gui/widget/TextFieldWidget.java | 8 ++-- .../java/me/shedaniel/rei/gui/widget/Widget.java | 4 +- .../me/shedaniel/rei/impl/AbstractEntryStack.java | 4 +- .../me/shedaniel/rei/impl/ClientHelperImpl.java | 4 +- .../me/shedaniel/rei/impl/ConfigManagerImpl.java | 2 +- .../me/shedaniel/rei/impl/RecipeHelperImpl.java | 12 +++--- .../java/me/shedaniel/rei/impl/RenderingEntry.java | 4 +- .../java/me/shedaniel/rei/impl/ScreenHelper.java | 36 ++++++++++++---- .../widgets/FillRectangleDrawableConsumer.java | 8 ++-- .../rei/impl/widgets/TexturedDrawableConsumer.java | 2 +- .../rei/listeners/ContainerScreenHooks.java | 10 ++--- .../me/shedaniel/rei/plugin/DefaultPlugin.java | 14 +++---- .../plugin/DefaultPotionEffectExclusionZones.java | 4 +- .../plugin/DefaultRecipeBookExclusionZones.java | 10 ++--- .../rei/plugin/DefaultServerContainerPlugin.java | 12 +++--- .../autocrafting/DefaultCategoryHandler.java | 22 +++++----- .../autocrafting/DefaultRecipeBookHandler.java | 26 ++++++------ .../containers/CraftingContainerInfoWrapper.java | 12 +++--- .../rei/plugin/cooking/DefaultCookingDisplay.java | 4 +- .../plugin/crafting/DefaultCraftingCategory.java | 6 +-- .../plugin/crafting/DefaultCraftingDisplay.java | 4 +- .../stonecutting/DefaultStoneCuttingCategory.java | 1 - .../me/shedaniel/rei/server/ContainerInfo.java | 6 +-- .../shedaniel/rei/server/ContainerInfoHandler.java | 19 ++++++--- .../me/shedaniel/rei/server/InputSlotCrafter.java | 49 +++++++++++----------- 39 files changed, 270 insertions(+), 234 deletions(-) (limited to 'src') diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 17afa2d4a..7145848f8 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -40,22 +40,22 @@ 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.ContainerScreen; import net.minecraft.client.gui.screen.ingame.CraftingTableScreen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.gui.screen.recipebook.RecipeBookGhostSlots; import net.minecraft.client.gui.screen.recipebook.RecipeBookProvider; 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.container.Slot; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeManager; +import net.minecraft.screen.CraftingTableScreenHandler; +import net.minecraft.screen.slot.Slot; import net.minecraft.text.LiteralText; import net.minecraft.util.ActionResult; import net.minecraft.util.Identifier; @@ -205,11 +205,11 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { } ghostSlots.addSlot(Ingredient.ofItems(Items.STONE), 381203812, 12738291); - CraftingTableContainer container = ((CraftingTableScreen) currentScreen).getContainer(); + CraftingTableScreenHandler screenHandler = ((CraftingTableScreen) currentScreen).getScreenHandler(); for (int i = 0; i < input.size(); i++) { List stacks = input.get(i); if (!stacks.isEmpty()) { - Slot slot = container.getSlot(i + container.getCraftingResultSlotIndex() + 1); + Slot slot = screenHandler.getSlot(i + screenHandler.getCraftingResultSlotIndex() + 1); ghostSlots.addSlot(Ingredient.ofStacks(stacks.toArray(new ItemStack[0])), slot.xPosition, slot.yPosition); } } @@ -253,7 +253,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { continue; ActionResult result = decider.shouldScreenBeOverlayed(screen); if (result != ActionResult.PASS) - return result == ActionResult.FAIL || ScreenHelper.getLastContainerScreenHooks() == null; + return result == ActionResult.FAIL || ScreenHelper.getLastScreenWithHandlerHooks() == null; } return true; } @@ -263,7 +263,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 ContainerScreen && abstractButtonWidget instanceof TexturedButtonWidget) + if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof ScreenWithHandler && abstractButtonWidget instanceof TexturedButtonWidget) if (((RecipeBookButtonWidgetHooks) abstractButtonWidget).rei_getTexture().equals(recipeButtonTex)) return ActionResult.FAIL; return ActionResult.PASS; @@ -273,8 +273,8 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { return; if (shouldReturn(screen.getClass())) return; - if (screen instanceof ContainerScreen) - ScreenHelper.setLastContainerScreen((ContainerScreen) screen); + if (screen instanceof ScreenWithHandler) + ScreenHelper.setLastScreenWithHandler((ScreenWithHandler) screen); boolean alreadyAdded = false; for (Element element : Lists.newArrayList(screenHooks.cloth_getChildren())) if (ContainerScreenOverlay.class.isAssignableFrom(element.getClass())) @@ -335,9 +335,9 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { return ActionResult.PASS; if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2)) return ActionResult.SUCCESS; - if (screen instanceof ContainerScreen && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer()) + if (screen instanceof ScreenWithHandler && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer()) if (i == 258 && minecraftClient.options.keyInventory.matchesKey(i, i1)) { - minecraftClient.player.closeContainer(); + minecraftClient.player.closeHandledScreen(); 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 429d69896..2519bace6 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -30,10 +30,10 @@ 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.screen.CraftingScreenHandler; +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; @@ -79,8 +79,8 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer { ServerSidePacketRegistry.INSTANCE.register(MOVE_ITEMS_PACKET, (packetContext, packetByteBuf) -> { Identifier category = packetByteBuf.readIdentifier(); ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer(); - Container container = player.container; - PlayerContainer playerContainer = player.playerContainer; + ScreenHandler screenHandler = player.currentScreenHandler; + PlayerScreenHandler playerScreenHandler = player.playerScreenHandler; try { boolean shift = packetByteBuf.readBoolean(); Map> input = Maps.newHashMap(); @@ -94,9 +94,9 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer { input.put(i, list); } try { - InputSlotCrafter.start(category, container, player, input, shift); + InputSlotCrafter.start(category, screenHandler, player, input, shift); } catch (InputSlotCrafter.NotEnoughMaterialsException e) { - if (!(container instanceof CraftingContainer)) + if (!(screenHandler instanceof CraftingScreenHandler)) return; PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer()); buf.writeInt(input.size()); diff --git a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java index 4b28e239f..70ba2dd55 100644 --- a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java +++ b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java @@ -28,10 +28,9 @@ import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; -import net.minecraft.container.Container; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.screen.ScreenHandler; import org.jetbrains.annotations.ApiStatus; -import org.spongepowered.asm.mixin.injection.Inject; import java.util.function.Supplier; @@ -83,7 +82,7 @@ public interface AutoTransferHandler { } interface Context { - static Context create(boolean actuallyCrafting, ContainerScreen containerScreen, RecipeDisplay recipeDisplay) { + static Context create(boolean actuallyCrafting, ScreenWithHandler containerScreen, RecipeDisplay recipeDisplay) { return new ContextImpl(actuallyCrafting, containerScreen, () -> recipeDisplay); } @@ -93,14 +92,28 @@ public interface AutoTransferHandler { boolean isActuallyCrafting(); - ContainerScreen getContainerScreen(); + ScreenWithHandler getScreenWithHandler(); + + @Deprecated + @ApiStatus.ScheduledForRemoval + default ScreenWithHandler getContainerScreen() { + return getScreenWithHandler(); + } RecipeDisplay getRecipe(); - default Container getContainer() { - return getContainerScreen().getContainer(); + @Deprecated + @ApiStatus.ScheduledForRemoval + default ScreenHandler getContainer() { + return getScreenHandler(); + } + + default ScreenHandler getScreenHandler() { + return getScreenWithHandler().getScreenHandler(); } + @Deprecated + @ApiStatus.ScheduledForRemoval default ContainerScreenOverlay getOverlay() { return ScreenHelper.getLastOverlay(); } @@ -161,12 +174,12 @@ public interface AutoTransferHandler { @ApiStatus.Internal final class ContextImpl implements Context { boolean actuallyCrafting; - ContainerScreen containerScreen; + ScreenWithHandler screenWithHandler; Supplier recipeDisplaySupplier; - private ContextImpl(boolean actuallyCrafting, ContainerScreen containerScreen, Supplier recipeDisplaySupplier) { + private ContextImpl(boolean actuallyCrafting, ScreenWithHandler screenWithHandler, Supplier recipeDisplaySupplier) { this.actuallyCrafting = actuallyCrafting; - this.containerScreen = containerScreen; + this.screenWithHandler = screenWithHandler; this.recipeDisplaySupplier = recipeDisplaySupplier; } @@ -176,8 +189,8 @@ public interface AutoTransferHandler { } @Override - public ContainerScreen getContainerScreen() { - return containerScreen; + public ScreenWithHandler getScreenWithHandler() { + return screenWithHandler; } @Override diff --git a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java index 9d58d5530..dfb2db0bd 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.api.Rectangle; import me.shedaniel.rei.RoughlyEnoughItemsCore; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeManager; import net.minecraft.util.Identifier; @@ -220,7 +220,7 @@ public interface RecipeHelper { */ void registerLiveRecipeGenerator(LiveRecipeGenerator liveRecipeGenerator); - void registerScreenClickArea(Rectangle rectangle, Class> screenClass, Identifier... categories); + void registerScreenClickArea(Rectangle rectangle, Class> screenClass, Identifier... categories); > void registerRecipes(Identifier category, Class recipeClass, Function mappingFunction); @@ -232,7 +232,7 @@ public interface RecipeHelper { boolean arePluginsLoading(); interface ScreenClickArea { - Class getScreenClass(); + Class 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 900faa39e..e5ff9aa2c 100644 --- a/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java +++ b/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java @@ -24,7 +24,7 @@ package me.shedaniel.rei.api; import me.shedaniel.rei.server.ContainerInfo; -import net.minecraft.container.Container; +import net.minecraft.screen.ScreenHandler; import java.util.List; @@ -40,6 +40,6 @@ public interface TransferRecipeDisplay extends RecipeDisplay { */ int getHeight(); - List> getOrganisedInputEntries(ContainerInfo containerInfo, Container container); + List> getOrganisedInputEntries(ContainerInfo containerInfo, ScreenHandler container); } diff --git a/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java b/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java index f36a279b6..f13cefede 100644 --- a/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/ConfigReloadingScreen.java @@ -49,8 +49,8 @@ public class ConfigReloadingScreen extends Screen { public void render(int int_1, int int_2, float float_1) { this.renderDirtBackground(0); if (!RecipeHelper.getInstance().arePluginsLoading()) - minecraft.openScreen(parent); - this.drawCenteredString(this.font, I18n.translate("text.rei.config.is.reloading"), this.width / 2, this.height / 2 - 50, 16777215); + client.openScreen(parent); + this.drawCenteredString(this.textRenderer, I18n.translate("text.rei.config.is.reloading"), this.width / 2, this.height / 2 - 50, 16777215); String string_3; switch ((int) (Util.getMeasuringTimeMs() / 300L % 4L)) { case 0: @@ -64,7 +64,7 @@ public class ConfigReloadingScreen extends Screen { case 2: string_3 = "o o O"; } - this.drawCenteredString(this.font, string_3, this.width / 2, this.height / 2 - 41, 8421504); + this.drawCenteredString(this.textRenderer, string_3, this.width / 2, this.height / 2 - 41, 8421504); super.render(int_1, int_2, float_1); } diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index f41298751..edce9fea3 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -40,7 +40,7 @@ import me.shedaniel.rei.utils.CollectionUtils; 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.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.resource.language.I18n; @@ -50,8 +50,8 @@ import net.minecraft.client.util.Window; import net.minecraft.client.util.math.Matrix4f; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.world.ClientWorld; -import net.minecraft.container.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.screen.slot.Slot; import net.minecraft.sound.SoundEvents; import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; @@ -78,7 +78,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { public final TriConsumer renderTooltipCallback = (x, y, aFloat) -> { RenderSystem.disableRescaleNormal(); RenderSystem.disableDepthTest(); - setBlitOffset(999); + setZOffset(999); this.fillGradient(x - 3, y - 4, x + tooltipWidth + 3, y - 3, -267386864, -267386864); this.fillGradient(x - 3, y + tooltipHeight + 3, x + tooltipWidth + 3, y + tooltipHeight + 4, -267386864, -267386864); this.fillGradient(x - 3, y - 3, x + tooltipWidth + 3, y + tooltipHeight + 3, -267386864, -267386864); @@ -91,14 +91,14 @@ public class ContainerScreenOverlay extends WidgetWithBounds { int currentY = y; MatrixStack matrixStack_1 = new MatrixStack(); VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(Tessellator.getInstance().getBuffer()); - matrixStack_1.translate(0.0D, 0.0D, getBlitOffset()); + matrixStack_1.translate(0.0D, 0.0D, getZOffset()); Matrix4f matrix4f_1 = matrixStack_1.peek().getModel(); for (int lineIndex = 0; lineIndex < tooltipLines.size(); lineIndex++) { font.draw(tooltipLines.get(lineIndex), x, currentY, -1, true, matrix4f_1, immediate, false, 0, 15728880); currentY += lineIndex == 0 ? 12 : 10; } immediate.draw(); - setBlitOffset(0); + setZOffset(0); RenderSystem.enableDepthTest(); RenderSystem.enableRescaleNormal(); }; @@ -180,7 +180,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { ClientHelper.getInstance().setCheating(!ClientHelper.getInstance().isCheating()); return; } - ConfigManager.getInstance().openConfigScreen(ScreenHelper.getLastContainerScreen()); + ConfigManager.getInstance().openConfigScreen(ScreenHelper.getLastScreenWithHandler()); } @Override @@ -189,7 +189,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { @Override public void lateRender(int mouseX, int mouseY, float delta) { - setBlitOffset(600); + setZOffset(600); super.render(mouseX, mouseY, delta); Rectangle bounds = getBounds(); if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) { @@ -201,7 +201,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); blit(bounds.x + 3, bounds.y + 3, 0, 0, 14, 14); - setBlitOffset(0); + setZOffset(0); } @Override @@ -362,7 +362,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(ScreenHelper.getLastContainerScreenHooks().rei_getContainerLeft(), window.getScaledHeight() - 22, ScreenHelper.getLastContainerScreenHooks().rei_getContainerWidth() - widthRemoved, 18); + return new Rectangle(ScreenHelper.getLastScreenWithHandlerHooks().rei_getContainerLeft(), window.getScaledHeight() - 22, ScreenHelper.getLastScreenWithHandlerHooks().rei_getContainerWidth() - widthRemoved, 18); } private Rectangle getCraftableToggleArea() { @@ -410,19 +410,19 @@ public class ContainerScreenOverlay extends WidgetWithBounds { ENTRY_LIST_WIDGET.updateSearch(ScreenHelper.getSearchField().getText(), true); } if (OverlaySearchField.isSearching) { - setBlitOffset(200); - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) { + setZOffset(200); + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler) { ContainerScreenHooks hooks = (ContainerScreenHooks) MinecraftClient.getInstance().currentScreen; int left = hooks.rei_getContainerLeft(), top = hooks.rei_getContainerTop(); - for (Slot slot : ((ContainerScreen) MinecraftClient.getInstance().currentScreen).getContainer().slots) + for (Slot slot : ((ScreenWithHandler) MinecraftClient.getInstance().currentScreen).getScreenHandler().slots) if (!slot.hasStack() || !ENTRY_LIST_WIDGET.canLastSearchTermsBeAppliedTo(EntryStack.create(slot.getStack()))) fillGradient(left + slot.xPosition, top + slot.yPosition, left + slot.xPosition + 16, top + slot.yPosition + 16, -601874400, -601874400); } - setBlitOffset(0); + setZOffset(0); } RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); this.renderWidgets(mouseX, mouseY, delta); - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { ContainerScreenHooks hooks = (ContainerScreenHooks) MinecraftClient.getInstance().currentScreen; for (RecipeHelper.ScreenClickArea area : RecipeHelper.getInstance().getScreenClickAreas()) if (area.getScreenClass().equals(MinecraftClient.getInstance().currentScreen.getClass())) @@ -527,9 +527,9 @@ public class ContainerScreenOverlay extends WidgetWithBounds { return true; } ItemStack itemStack = null; - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) - if (ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack().isEmpty()) - itemStack = ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack(); + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler) + if (ScreenHelper.getLastScreenWithHandlerHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastScreenWithHandlerHooks().rei_getHoveredSlot().getStack().isEmpty()) + itemStack = ScreenHelper.getLastScreenWithHandlerHooks().rei_getHoveredSlot().getStack(); if (itemStack != null && !itemStack.isEmpty()) { if (ConfigObject.getInstance().getRecipeKeybind().matchesKey(int_1, int_2)) return ClientHelper.getInstance().executeRecipeKeyBind(itemStack); @@ -569,7 +569,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds { public boolean mouseClicked(double double_1, double double_2, int int_1) { if (!ScreenHelper.isOverlayVisible()) return false; - if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { + if (MinecraftClient.getInstance().currentScreen instanceof ScreenWithHandler && ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { ContainerScreenHooks hooks = (ContainerScreenHooks) MinecraftClient.getInstance().currentScreen; for (RecipeHelper.ScreenClickArea area : RecipeHelper.getInstance().getScreenClickAreas()) if (area.getScreenClass().equals(MinecraftClient.getInstance().currentScreen.getClass())) diff --git a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java index 09a853d6a..e24d91320 100644 --- a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java @@ -38,7 +38,7 @@ import me.shedaniel.rei.impl.ScreenHelper; 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.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.util.NarratorManager; import net.minecraft.text.TranslatableText; @@ -125,16 +125,16 @@ public class PreRecipeViewingScreen extends Screen { @Override public void render(int int_1, int int_2, float float_1) { - if (this.minecraft.world != null) { + if (this.client.world != null) { this.fillGradient(0, 0, this.width, this.height, -1072689136, -804253680); } else { this.fillGradient(0, 0, this.width, this.height, -16777216, -16777216); } - this.drawCenteredString(this.font, this.title.asFormattedString(), this.width / 2, 20, 16777215); + this.drawCenteredString(this.textRenderer, this.title.asFormattedString(), this.width / 2, 20, 16777215); if (showTips) { int i = 30; - for (String s : this.font.wrapStringToWidthAsList(I18n.translate("text.rei.recipe_screen_type.selection.sub"), width - 30)) { - this.drawCenteredString(this.font, Formatting.GRAY.toString() + s, width / 2, i, -1); + for (String s : this.textRenderer.wrapStringToWidthAsList(I18n.translate("text.rei.recipe_screen_type.selection.sub"), width - 30)) { + this.drawCenteredString(this.textRenderer, Formatting.GRAY.toString() + s, width / 2, i, -1); i += 10; } } @@ -167,9 +167,9 @@ public class PreRecipeViewingScreen extends Screen { @Override public boolean keyPressed(int int_1, int int_2, int int_3) { - if (int_1 == 256 || this.minecraft.options.keyInventory.matchesKey(int_1, int_2)) { + if (int_1 == 256 || this.client.options.keyInventory.matchesKey(int_1, int_2)) { MinecraftClient.getInstance().openScreen(parent); - if (parent instanceof ContainerScreen) + if (parent instanceof ScreenWithHandler) ScreenHelper.getLastOverlay().init(); return true; } diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java index 7d273ae3c..5fde8ac57 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java @@ -183,16 +183,16 @@ public class RecipeViewingScreen extends Screen implements RecipeScreen { for (Element element : children()) if (element.keyPressed(int_1, int_2, int_3)) return true; - if (int_1 == 256 || this.minecraft.options.keyInventory.matchesKey(int_1, int_2)) { - MinecraftClient.getInstance().openScreen(ScreenHelper.getLastContainerScreen()); + if (int_1 == 256 || this.client.options.keyInventory.matchesKey(int_1, int_2)) { + MinecraftClient.getInstance().openScreen(ScreenHelper.getLastScreenWithHandler()); ScreenHelper.getLastOverlay().init(); return true; } if (int_1 == 259) { if (ScreenHelper.hasLastRecipeScreen()) - minecraft.openScreen(ScreenHelper.getLastRecipeScreen()); + client.openScreen(ScreenHelper.getLastRecipeScreen()); else - minecraft.openScreen(ScreenHelper.getLastContainerScreen()); + client.openScreen(ScreenHelper.getLastScreenWithHandler()); return true; } return super.keyPressed(int_1, int_2, int_3); @@ -420,7 +420,7 @@ public class RecipeViewingScreen extends Screen implements RecipeScreen { if (export.matchesCurrentKey()) { for (Map.Entry> entry : recipeBounds.entrySet()) { Rectangle bounds = entry.getKey(); - setBlitOffset(470); + setZOffset(470); if (bounds.contains(mouseX, mouseY)) { fillGradient(bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), 1744822402, 1744822402); String s = I18n.translate("text.rei.release_export", export.getLocalizedName()); @@ -428,19 +428,19 @@ public class RecipeViewingScreen extends Screen implements RecipeScreen { VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(Tessellator.getInstance().getBuffer()); matrixStack_1.translate(0.0D, 0.0D, 480); Matrix4f matrix4f_1 = matrixStack_1.peek().getModel(); - font.draw(s, bounds.getCenterX() - font.getStringWidth(s) / 2f, bounds.getCenterY() - 4.5f, 0xff000000, false, matrix4f_1, immediate, false, 0, 15728880); + textRenderer.draw(s, bounds.getCenterX() - textRenderer.getStringWidth(s) / 2f, bounds.getCenterY() - 4.5f, 0xff000000, false, matrix4f_1, immediate, false, 0, 15728880); immediate.draw(); } else { fillGradient(bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), 1744830463, 1744830463); } - setBlitOffset(0); + setZOffset(0); } } } if (choosePageActivated) { - setBlitOffset(500); + setZOffset(500); this.fillGradient(0, 0, this.width, this.height, -1072689136, -804253680); - setBlitOffset(0); + setZOffset(0); recipeChoosePageWidget.render(mouseX, mouseY, delta); } } diff --git a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java index 17561850c..3bc4be24c 100644 --- a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java @@ -480,16 +480,16 @@ public class VillagerRecipeViewingScreen extends Screen implements RecipeScreen for (Element element : children()) if (element.keyPressed(int_1, int_2, int_3)) return true; - if (int_1 == 256 || this.minecraft.options.keyInventory.matchesKey(int_1, int_2)) { - MinecraftClient.getInstance().openScreen(ScreenHelper.getLastContainerScreen()); + if (int_1 == 256 || this.client.options.keyInventory.matchesKey(int_1, int_2)) { + MinecraftClient.getInstance().openScreen(ScreenHelper.getLastScreenWithHandler()); ScreenHelper.getLastOverlay().init(); return true; } if (int_1 == 259) { if (ScreenHelper.hasLastRecipeScreen()) - minecraft.openScreen(ScreenHelper.getLastRecipeScreen()); + client.openScreen(ScreenHelper.getLastRecipeScreen()); else - minecraft.openScreen(ScreenHelper.getLastContainerScreen()); + client.openScreen(ScreenHelper.getLastScreenWithHandler()); return true; } return super.keyPressed(int_1, int_2, int_3); diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java index 648e9b27e..72afb57aa 100644 --- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java @@ -30,7 +30,7 @@ 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.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.gui.widget.AbstractPressableButtonWidget; import net.minecraft.client.resource.language.I18n; import net.minecraft.text.LiteralText; @@ -57,8 +57,8 @@ public class CreditsScreen extends Screen { @Override public boolean keyPressed(int int_1, int int_2, int int_3) { if (int_1 == 256 && this.shouldCloseOnEsc()) { - this.minecraft.openScreen(parent); - if (parent instanceof ContainerScreen) + this.client.openScreen(parent); + if (parent instanceof ScreenWithHandler) ScreenHelper.getLastOverlay().init(); return true; } @@ -67,7 +67,7 @@ public class CreditsScreen extends Screen { @Override protected void init() { - children.add(entryListWidget = new CreditsEntryListWidget(minecraft, width, height, 32, height - 32)); + children.add(entryListWidget = new CreditsEntryListWidget(client, width, height, 32, height - 32)); entryListWidget.creditsClearEntries(); List> translators = Lists.newArrayList(); Exception[] exception = {null}; @@ -101,7 +101,7 @@ public class CreditsScreen extends Screen { for (StackTraceElement traceElement : exception[0].getStackTrace()) entryListWidget.creditsAddEntry(new TextCreditsItem(new LiteralText(" at " + traceElement))); } else { - int maxWidth = translatorsMapped.stream().mapToInt(pair -> font.getStringWidth(pair.getLeft())).max().orElse(0) + 5; + int maxWidth = translatorsMapped.stream().mapToInt(pair -> textRenderer.getStringWidth(pair.getLeft())).max().orElse(0) + 5; for (Pair pair : translatorsMapped) { entryListWidget.creditsAddEntry(new TranslationCreditsItem(pair.getLeft(), pair.getRight(), i - maxWidth - 10, maxWidth)); } @@ -111,8 +111,8 @@ public class CreditsScreen extends Screen { children.add(buttonDone = new AbstractPressableButtonWidget(width / 2 - 100, height - 26, 200, 20, I18n.translate("gui.done")) { @Override public void onPress() { - CreditsScreen.this.minecraft.openScreen(parent); - if (parent instanceof ContainerScreen) + CreditsScreen.this.client.openScreen(parent); + if (parent instanceof ScreenWithHandler) ScreenHelper.getLastOverlay().init(); } }); @@ -129,7 +129,7 @@ public class CreditsScreen extends Screen { public void render(int int_1, int int_2, float float_1) { this.renderDirtBackground(0); this.entryListWidget.render(int_1, int_2, float_1); - this.drawCenteredString(this.font, I18n.translate("text.rei.credits"), this.width / 2, 16, 16777215); + this.drawCenteredString(this.textRenderer, I18n.translate("text.rei.credits"), this.width / 2, 16, 16777215); super.render(int_1, int_2, float_1); buttonDone.render(int_1, int_2, float_1); } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java index 3b1817d18..06bc25eca 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java @@ -33,7 +33,7 @@ import me.shedaniel.rei.gui.toast.CopyRecipeIdentifierToast; import me.shedaniel.rei.impl.ClientHelperImpl; import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.utils.CollectionUtils; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.resource.language.I18n; import net.minecraft.text.LiteralText; import net.minecraft.util.Formatting; @@ -51,7 +51,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget { private String extraTooltip; private List errorTooltip; private List setupDisplay; - private ContainerScreen containerScreen; + private ScreenWithHandler screenWithHandler; private boolean visible = false; private RecipeCategory category; private Rectangle displayBounds; @@ -62,14 +62,14 @@ public class AutoCraftingButtonWidget extends ButtonWidget { this.displaySupplier = displaySupplier; Optional recipe = displaySupplier.get().getRecipeLocation(); extraTooltip = recipe.isPresent() ? I18n.translate("text.rei.recipe_id", Formatting.GRAY.toString(), recipe.get().toString()) : ""; - this.containerScreen = ScreenHelper.getLastContainerScreen(); + this.screenWithHandler = ScreenHelper.getLastScreenWithHandler(); this.setupDisplay = setupDisplay; this.category = recipeCategory; } @Override public void onPressed() { - AutoTransferHandler.Context context = AutoTransferHandler.Context.create(true, containerScreen, displaySupplier.get()); + AutoTransferHandler.Context context = AutoTransferHandler.Context.create(true, screenWithHandler, displaySupplier.get()); for (AutoTransferHandler autoTransferHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler()) try { AutoTransferHandler.Result result = autoTransferHandler.handle(context); @@ -78,7 +78,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget { } catch (Exception e) { e.printStackTrace(); } - minecraft.openScreen(containerScreen); + minecraft.openScreen(screenWithHandler); ScreenHelper.getLastOverlay().init(); } @@ -89,7 +89,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget { int color = 0; visible = false; IntList redSlots = null; - AutoTransferHandler.Context context = AutoTransferHandler.Context.create(false, containerScreen, displaySupplier.get()); + AutoTransferHandler.Context context = AutoTransferHandler.Context.create(false, screenWithHandler, displaySupplier.get()); for (AutoTransferHandler autoTransferHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler()) { try { AutoTransferHandler.Result result = autoTransferHandler.handle(context); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java index 0fd86752d..9f9614b53 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java @@ -122,19 +122,19 @@ public abstract class ButtonWidget extends WidgetWithBounds { RenderSystem.blendFuncSeparate(770, 771, 1, 0); RenderSystem.blendFunc(770, 771); //Four Corners - blit(x, y, getBlitOffset(), 0, textureOffset * 80, 4, 4, 512, 256); - blit(x + width - 4, y, getBlitOffset(), 252, textureOffset * 80, 4, 4, 512, 256); - blit(x, y + height - 4, getBlitOffset(), 0, textureOffset * 80 + 76, 4, 4, 512, 256); - blit(x + width - 4, y + height - 4, getBlitOffset(), 252, textureOffset * 80 + 76, 4, 4, 512, 256); + blit(x, y, getZOffset(), 0, textureOffset * 80, 4, 4, 512, 256); + blit(x + width - 4, y, getZOffset(), 252, textureOffset * 80, 4, 4, 512, 256); + blit(x, y + height - 4, getZOffset(), 0, textureOffset * 80 + 76, 4, 4, 512, 256); + blit(x + width - 4, y + height - 4, getZOffset(), 252, textureOffset * 80 + 76, 4, 4, 512, 256); //Sides - blit(x + 4, y, getBlitOffset(), 4, textureOffset * 80, MathHelper.ceil((width - 8) / 2f), 4, 512, 256); - blit(x + 4, y + height - 4, getBlitOffset(), 4, textureOffset * 80 + 76, MathHelper.ceil((width - 8) / 2f), 4, 512, 256); - blit(x + 4 + MathHelper.ceil((width - 8) / 2f), y + height - 4, getBlitOffset(), 252 - MathHelper.floor((width - 8) / 2f), textureOffset * 80 + 76, MathHelper.floor((width - 8) / 2f), 4, 512, 256); - blit(x + 4 + MathHelper.ceil((width - 8) / 2f), y, getBlitOffset(), 252 - MathHelper.floor((width - 8) / 2f), textureOffset * 80, MathHelper.floor((width - 8) / 2f), 4, 512, 256); + blit(x + 4, y, getZOffset(), 4, textureOffset * 80, MathHelper.ceil((width - 8) / 2f), 4, 512, 256); + blit(x + 4, y + height - 4, getZOffset(), 4, textureOffset * 80 + 76, MathHelper.ceil((width - 8) / 2f), 4, 512, 256); + blit(x + 4 + MathHelper.ceil((width - 8) / 2f), y + height - 4, getZOffset(), 252 - MathHelper.floor((width - 8) / 2f), textureOffset * 80 + 76, MathHelper.floor((width - 8) / 2f), 4, 512, 256); + blit(x + 4 + MathHelper.ceil((width - 8) / 2f), y, getZOffset(), 252 - MathHelper.floor((width - 8) / 2f), textureOffset * 80, MathHelper.floor((width - 8) / 2f), 4, 512, 256); for (int i = y + 4; i < y + height - 4; i += 76) { - blit(x, i, getBlitOffset(), 0, 4 + textureOffset * 80, MathHelper.ceil(width / 2f), MathHelper.clamp(y + height - 4 - i, 0, 76), 512, 256); - blit(x + MathHelper.ceil(width / 2f), i, getBlitOffset(), 256 - MathHelper.floor(width / 2f), 4 + textureOffset * 80, MathHelper.floor(width / 2f), MathHelper.clamp(y + height - 4 - i, 0, 76), 512, 256); + blit(x, i, getZOffset(), 0, 4 + textureOffset * 80, MathHelper.ceil(width / 2f), MathHelper.clamp(y + height - 4 - i, 0, 76), 512, 256); + blit(x + MathHelper.ceil(width / 2f), i, getZOffset(), 256 - MathHelper.floor(width / 2f), 4 + textureOffset * 80, MathHelper.floor(width / 2f), MathHelper.clamp(y + height - 4 - i, 0, 76), 512, 256); } } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java index e136d82d9..7f5ebe151 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java @@ -53,17 +53,17 @@ public abstract class CraftableToggleButtonWidget extends LateRenderedButton { @Override public void lateRender(int mouseX, int mouseY, float delta) { - setBlitOffset(600); + setZOffset(600); super.render(mouseX, mouseY, delta); - this.itemRenderer.zOffset = getBlitOffset() - 98; + this.itemRenderer.zOffset = getZOffset() - 98; Rectangle bounds = getBounds(); this.itemRenderer.renderGuiItemIcon(ICON, bounds.x + 2, bounds.y + 2); this.itemRenderer.zOffset = 0.0F; int color = ConfigManager.getInstance().isCraftableOnlyEnabled() ? 939579655 : 956235776; - setBlitOffset(getBlitOffset() + 1); + setZOffset(getZOffset() + 1); this.fillGradient(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, color, color); - setBlitOffset(0); + setZOffset(0); } @Override diff --git a/src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java index b199f6539..677f92ad3 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/TextFieldWidget.java @@ -507,10 +507,10 @@ public class TextFieldWidget extends WidgetWithBounds implements Tickable { RenderSystem.blendFuncSeparate(770, 771, 1, 0); RenderSystem.shadeModel(7425); buffer.begin(7, VertexFormats.POSITION_COLOR); - buffer.vertex(x1, y2, getBlitOffset() + 50d).color(r, g, b, 120).next(); - buffer.vertex(x2, y2, getBlitOffset() + 50d).color(r, g, b, 120).next(); - buffer.vertex(x2, y1, getBlitOffset() + 50d).color(r, g, b, 120).next(); - buffer.vertex(x1, y1, getBlitOffset() + 50d).color(r, g, b, 120).next(); + buffer.vertex(x1, y2, getZOffset() + 50d).color(r, g, b, 120).next(); + buffer.vertex(x2, y2, getZOffset() + 50d).color(r, g, b, 120).next(); + buffer.vertex(x2, y1, getZOffset() + 50d).color(r, g, b, 120).next(); + buffer.vertex(x1, y1, getZOffset() + 50d).color(r, g, b, 120).next(); tessellator.draw(); RenderSystem.shadeModel(7424); RenderSystem.disableBlend(); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/Widget.java b/src/main/java/me/shedaniel/rei/gui/widget/Widget.java index cc8ec6955..b5610d5f6 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/Widget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/Widget.java @@ -46,11 +46,11 @@ public abstract class Widget extends AbstractParentElement implements Drawable { protected final TextRenderer font = minecraft.textRenderer; public int getZ() { - return this.getBlitOffset(); + return this.getZOffset(); } public void setZ(int z) { - this.setBlitOffset(z); + this.setZOffset(z); } public boolean containsMouse(double mouseX, double mouseY) { diff --git a/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java b/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java index 1c0e7db04..d53dba628 100644 --- a/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java +++ b/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java @@ -100,11 +100,11 @@ public abstract class AbstractEntryStack extends DrawableHelper implements Entry @Override public int getZ() { - return getBlitOffset(); + return getZOffset(); } @Override public void setZ(int z) { - setBlitOffset(z); + setZOffset(z); } } diff --git a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java index f084d3b70..bf21bae6e 100644 --- a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java @@ -146,7 +146,7 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer { @Override public void sendDeletePacket() { - if (ScreenHelper.getLastContainerScreen() instanceof CreativeInventoryScreen) { + if (ScreenHelper.getLastScreenWithHandler() instanceof CreativeInventoryScreen) { MinecraftClient.getInstance().player.inventory.setCursorStack(ItemStack.EMPTY); return; } @@ -257,7 +257,7 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer { screen = new VillagerRecipeViewingScreen(map, category); } else if (ConfigObject.getInstance().getRecipeScreenType() == RecipeScreenType.UNSET) { @Nullable Identifier finalCategory = category; - screen = new PreRecipeViewingScreen(ScreenHelper.getLastContainerScreen(), RecipeScreenType.UNSET, true, original -> { + screen = new PreRecipeViewingScreen(ScreenHelper.getLastScreenWithHandler(), RecipeScreenType.UNSET, true, original -> { ConfigObject.getInstance().setRecipeScreenType(original ? RecipeScreenType.ORIGINAL : RecipeScreenType.VILLAGER); ConfigManager.getInstance().saveConfig(); openRecipeViewingScreen(map, finalCategory, ingredientNotice, resultNotice); diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java index bbbd7cb3f..b1ff8d4a7 100644 --- a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java @@ -117,7 +117,7 @@ public class ConfigManagerImpl implements ConfigManager { Collections.singletonList(new RecipeScreenTypeEntry(220, i13n, getUnsafely(field, config, RecipeScreenType.UNSET), getUnsafely(field, defaults), type -> setUnsafely(field, config, type))) , (field) -> field.getType() == RecipeScreenType.class, ConfigObjectImpl.UseSpecialRecipeTypeScreen.class); guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) -> - ScreenHelper.getLastContainerScreenHooks() == null || MinecraftClient.getInstance().getNetworkHandler() == null || MinecraftClient.getInstance().getNetworkHandler().getRecipeManager() == null ? + ScreenHelper.getLastScreenWithHandlerHooks() == null || MinecraftClient.getInstance().getNetworkHandler() == null || MinecraftClient.getInstance().getNetworkHandler().getRecipeManager() == null ? Collections.singletonList(new NoFilteringEntry(getUnsafely(field, config, new ArrayList<>()), getUnsafely(field, defaults), list -> setUnsafely(field, config, list))) : Collections.singletonList(new FilteringEntry(getUnsafely(field, config, new ArrayList<>()), getUnsafely(field, defaults), list -> setUnsafely(field, config, list))) diff --git a/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java b/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java index 6a28e6e04..7e8fe50ce 100644 --- a/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java @@ -31,7 +31,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; import me.shedaniel.rei.api.plugins.REIPluginV0; import me.shedaniel.rei.utils.CollectionUtils; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeManager; import net.minecraft.util.ActionResult; @@ -355,7 +355,7 @@ public class RecipeHelperImpl implements RecipeHelper { @Override public ActionResult shouldScreenBeOverlayed(Class screen) { - return ContainerScreen.class.isAssignableFrom(screen) ? ActionResult.SUCCESS : ActionResult.PASS; + return ScreenWithHandler.class.isAssignableFrom(screen) ? ActionResult.SUCCESS : ActionResult.PASS; } @Override @@ -461,7 +461,7 @@ public class RecipeHelperImpl implements RecipeHelper { } @Override - public void registerScreenClickArea(Rectangle rectangle, Class> screenClass, Identifier... categories) { + public void registerScreenClickArea(Rectangle rectangle, Class> screenClass, Identifier... categories) { this.screenClickAreas.add(new ScreenClickAreaImpl(screenClass, rectangle, categories)); } @@ -493,17 +493,17 @@ public class RecipeHelperImpl implements RecipeHelper { } private static class ScreenClickAreaImpl implements ScreenClickArea { - Class> screenClass; + Class> screenClass; Rectangle rectangle; Identifier[] categories; - private ScreenClickAreaImpl(Class> screenClass, Rectangle rectangle, Identifier[] categories) { + private ScreenClickAreaImpl(Class> screenClass, Rectangle rectangle, Identifier[] categories) { this.screenClass = screenClass; this.rectangle = rectangle; this.categories = categories; } - public Class> getScreenClass() { + public Class> getScreenClass() { return screenClass; } diff --git a/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java b/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java index cd7481c9f..e94040cf6 100644 --- a/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java +++ b/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java @@ -96,12 +96,12 @@ public abstract class RenderingEntry extends DrawableHelper implements EntryStac @Override public int getZ() { - return getBlitOffset(); + return getZOffset(); } @Override public void setZ(int z) { - setBlitOffset(z); + setZOffset(z); } @Override diff --git a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java index 31fffbf35..a404e94df 100644 --- a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java +++ b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java @@ -40,7 +40,7 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.event.client.ClientTickCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.util.Window; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; @@ -59,7 +59,7 @@ public class ScreenHelper implements ClientModInitializer, REIHelper { @ApiStatus.Internal public static List inventoryStacks = Lists.newArrayList(); private static ContainerScreenOverlay overlay; - private static ContainerScreen lastContainerScreen = null; + private static ScreenWithHandler lastScreenWithHandler = null; private static LinkedHashSet lastRecipeScreen = Sets.newLinkedHashSetWithExpectedSize(5); private static ScreenHelper instance; @@ -146,16 +146,34 @@ public class ScreenHelper implements ClientModInitializer, REIHelper { return getLastOverlay(false, false); } - public static ContainerScreen getLastContainerScreen() { - return lastContainerScreen; + @Deprecated + @ApiStatus.ScheduledForRemoval + public static ScreenWithHandler getLastContainerScreen() { + return getLastScreenWithHandler(); + } + + public static ScreenWithHandler getLastScreenWithHandler() { + return lastScreenWithHandler; + } + + @Deprecated + @ApiStatus.ScheduledForRemoval + public static void setLastContainerScreen(ScreenWithHandler lastScreenWithHandler) { + setLastScreenWithHandler(lastScreenWithHandler); } - public static void setLastContainerScreen(ContainerScreen lastContainerScreen) { - ScreenHelper.lastContainerScreen = lastContainerScreen; + public static void setLastScreenWithHandler(ScreenWithHandler lastScreenWithHandler) { + ScreenHelper.lastScreenWithHandler = lastScreenWithHandler; } + @Deprecated + @ApiStatus.ScheduledForRemoval public static ContainerScreenHooks getLastContainerScreenHooks() { - return (ContainerScreenHooks) lastContainerScreen; + return getLastScreenWithHandlerHooks(); + } + + public static ContainerScreenHooks getLastScreenWithHandlerHooks() { + return (ContainerScreenHooks) lastScreenWithHandler; } public static void drawHoveringWidget(int x, int y, TriConsumer consumer, int width, int height, float delta) { @@ -192,8 +210,8 @@ public class ScreenHelper implements ClientModInitializer, REIHelper { @Override public void onInitializeClient() { ClothClientHooks.SCREEN_INIT_PRE.register((client, screen, screenHooks) -> { - if (lastContainerScreen != screen && screen instanceof ContainerScreen) - lastContainerScreen = (ContainerScreen) screen; + if (lastScreenWithHandler != screen && screen instanceof ScreenWithHandler) + lastScreenWithHandler = (ScreenWithHandler) screen; return ActionResult.PASS; }); ClientTickCallback.EVENT.register(minecraftClient -> { diff --git a/src/main/java/me/shedaniel/rei/impl/widgets/FillRectangleDrawableConsumer.java b/src/main/java/me/shedaniel/rei/impl/widgets/FillRectangleDrawableConsumer.java index 5279dd058..012620340 100644 --- a/src/main/java/me/shedaniel/rei/impl/widgets/FillRectangleDrawableConsumer.java +++ b/src/main/java/me/shedaniel/rei/impl/widgets/FillRectangleDrawableConsumer.java @@ -54,10 +54,10 @@ public class FillRectangleDrawableConsumer implements DrawableConsumer { Tessellator tessellator = Tessellator.getInstance(); BufferBuilder bufferBuilder = tessellator.getBuffer(); bufferBuilder.begin(7, VertexFormats.POSITION_COLOR); - bufferBuilder.vertex(rectangle.getMaxX(), rectangle.getMinY(), helper.getBlitOffset()).color(r, g, b, a).next(); - bufferBuilder.vertex(rectangle.getMinX(), rectangle.getMinY(), helper.getBlitOffset()).color(r, g, b, a).next(); - bufferBuilder.vertex(rectangle.getMinX(), rectangle.getMaxY(), helper.getBlitOffset()).color(r, g, b, a).next(); - bufferBuilder.vertex(rectangle.getMaxX(), rectangle.getMaxY(), helper.getBlitOffset()).color(r, g, b, a).next(); + bufferBuilder.vertex(rectangle.getMaxX(), rectangle.getMinY(), helper.getZOffset()).color(r, g, b, a).next(); + bufferBuilder.vertex(rectangle.getMinX(), rectangle.getMinY(), helper.getZOffset()).color(r, g, b, a).next(); + bufferBuilder.vertex(rectangle.getMinX(), rectangle.getMaxY(), helper.getZOffset()).color(r, g, b, a).next(); + bufferBuilder.vertex(rectangle.getMaxX(), rectangle.getMaxY(), helper.getZOffset()).color(r, g, b, a).next(); tessellator.draw(); RenderSystem.shadeModel(7424); RenderSystem.disableBlend(); diff --git a/src/main/java/me/shedaniel/rei/impl/widgets/TexturedDrawableConsumer.java b/src/main/java/me/shedaniel/rei/impl/widgets/TexturedDrawableConsumer.java index cc4b4b367..9ceddcfee 100644 --- a/src/main/java/me/shedaniel/rei/impl/widgets/TexturedDrawableConsumer.java +++ b/src/main/java/me/shedaniel/rei/impl/widgets/TexturedDrawableConsumer.java @@ -55,7 +55,7 @@ public class TexturedDrawableConsumer implements DrawableConsumer { @Override public void render(DrawableHelper helper, int mouseX, int mouseY, float delta) { MinecraftClient.getInstance().getTextureManager().bindTexture(identifier); - innerBlit(x, x + width, y, y + height, helper.getBlitOffset(), uWidth, vHeight, u, v, textureWidth, textureHeight); + innerBlit(x, x + width, y, y + height, helper.getZOffset(), uWidth, vHeight, u, v, textureWidth, textureHeight); } private static void innerBlit(int xStart, int xEnd, int yStart, int yEnd, int z, int width, int height, float u, float v, int texWidth, int texHeight) { diff --git a/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java b/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java index 7888430cc..1484d7f68 100644 --- a/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java +++ b/src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java @@ -23,14 +23,14 @@ package me.shedaniel.rei.listeners; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; -import net.minecraft.container.Slot; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.screen.slot.Slot; import org.jetbrains.annotations.ApiStatus; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @ApiStatus.Internal -@Mixin(ContainerScreen.class) +@Mixin(ScreenWithHandler.class) public interface ContainerScreenHooks { @Accessor("x") @@ -39,10 +39,10 @@ public interface ContainerScreenHooks { @Accessor("y") int rei_getContainerTop(); - @Accessor("containerWidth") + @Accessor("backgroundWidth") int rei_getContainerWidth(); - @Accessor("containerHeight") + @Accessor("backgroundHeight") int rei_getContainerHeight(); @Accessor("focusedSlot") diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index 69fee5b1f..52ebfc721 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -164,7 +164,7 @@ public class DefaultPlugin implements REIPluginV0 { @Override public void render(Rectangle bounds, int mouseX, int mouseY, float delta) { MinecraftClient.getInstance().getTextureManager().bindTexture(id); - innerBlit(bounds.x, bounds.getMaxX(), bounds.y, bounds.getMaxY(), getBlitOffset(), 0, 1, 0, 1); + innerBlit(bounds.x, bounds.getMaxX(), bounds.y, bounds.getMaxY(), getZOffset(), 0, 1, 0, 1); } @Override @@ -310,20 +310,20 @@ public class DefaultPlugin implements REIPluginV0 { // return 10f; // } // }); - displayHelper.registerHandler(new DisplayHelper.DisplayBoundsHandler>() { + displayHelper.registerHandler(new DisplayHelper.DisplayBoundsHandler>() {