ソースを参照

Deprecate old ScreenHelper.getLastHandledScreen in favour of REIHelper.getPreviousHandledScreen

Signed-off-by: shedaniel <daniel@shedaniel.me>
shedaniel 5 年 前
コミット
c2594bc812

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

@@ -291,7 +291,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
                     continue;
                 ActionResult result = decider.shouldScreenBeOverlayed(screen);
                 if (result != ActionResult.PASS)
-                    return result == ActionResult.FAIL || ScreenHelper.getLastHandledScreen() == null;
+                    return result == ActionResult.FAIL || REIHelper.getInstance().getPreviousHandledScreen() == null;
             }
         } catch (ConcurrentModificationException ignored) {
         }

+ 3 - 0
src/main/java/me/shedaniel/rei/api/REIHelper.java

@@ -26,6 +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.item.ItemStack;
 import org.jetbrains.annotations.Nullable;
 
@@ -40,6 +41,8 @@ public interface REIHelper {
         return ScreenHelper.getInstance();
     }
     
+    HandledScreen<?> getPreviousHandledScreen();
+    
     boolean isDarkThemeEnabled();
     
     TextFieldWidget getSearchTextField();

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

@@ -193,7 +193,7 @@ public class ContainerScreenOverlay extends WidgetWithBounds {
                                 ClientHelper.getInstance().setCheating(!ClientHelper.getInstance().isCheating());
                                 return;
                             }
-                            ConfigManager.getInstance().openConfigScreen(ScreenHelper.getLastHandledScreen());
+                            ConfigManager.getInstance().openConfigScreen(REIHelper.getInstance().getPreviousHandledScreen());
                         })
                         .onRender(button -> {
                             if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) {
@@ -306,7 +306,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(ScreenHelper.getLastHandledScreen().x, 3, ScreenHelper.getLastHandledScreen().backgroundWidth, 18);
+            return new Rectangle(REIHelper.getInstance().getPreviousHandledScreen().x, 3, REIHelper.getInstance().getPreviousHandledScreen().backgroundWidth, 18);
         }
         return null;
     }
@@ -375,7 +375,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.getLastHandledScreen().x, window.getScaledHeight() - 22, ScreenHelper.getLastHandledScreen().backgroundWidth - widthRemoved, 18);
+        return new Rectangle(REIHelper.getInstance().getPreviousHandledScreen().x, window.getScaledHeight() - 22, REIHelper.getInstance().getPreviousHandledScreen().backgroundWidth - widthRemoved, 18);
     }
     
     private Rectangle getCraftableToggleArea() {

+ 0 - 1
src/main/java/me/shedaniel/rei/gui/subsets/SubsetsMenu.java

@@ -45,7 +45,6 @@ import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemGroup;
 import net.minecraft.item.ItemStack;
-import net.minecraft.util.Identifier;
 import net.minecraft.util.collection.DefaultedList;
 import net.minecraft.util.registry.Registry;
 import org.jetbrains.annotations.ApiStatus;

+ 0 - 1
src/main/java/me/shedaniel/rei/gui/subsets/entries/EntryStackMenuEntry.java

@@ -30,7 +30,6 @@ import me.shedaniel.rei.api.*;
 import me.shedaniel.rei.gui.ContainerScreenOverlay;
 import me.shedaniel.rei.gui.subsets.SubsetsMenu;
 import me.shedaniel.rei.gui.subsets.SubsetsMenuEntry;
-import me.shedaniel.rei.gui.widget.Widget;
 import me.shedaniel.rei.impl.EntryRegistryImpl;
 import me.shedaniel.rei.impl.ScreenHelper;
 import me.shedaniel.rei.utils.CollectionUtils;

+ 0 - 1
src/main/java/me/shedaniel/rei/gui/subsets/entries/SubMenuEntry.java

@@ -35,7 +35,6 @@ import me.shedaniel.rei.gui.subsets.SubsetsMenuEntry;
 import me.shedaniel.rei.gui.widget.TabWidget;
 import me.shedaniel.rei.impl.EntryRegistryImpl;
 import me.shedaniel.rei.impl.ScreenHelper;
-import me.shedaniel.rei.utils.CollectionUtils;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.sound.PositionedSoundInstance;

+ 1 - 1
src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java

@@ -62,7 +62,7 @@ public class FavoritesListWidget extends WidgetWithBounds {
         public int getMaxScrollHeight() {
             return MathHelper.ceil((favorites.size() + blockedCount) / (innerBounds.width / (float) entrySize())) * entrySize();
         }
-    
+        
         @Override
         public int getScrollBarX() {
             if (!ConfigObject.getInstance().isLeftHandSidePanel())

+ 2 - 2
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.getLastHandledScreen() instanceof CreativeInventoryScreen) {
+        if (REIHelper.getInstance().getPreviousHandledScreen() 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.getLastHandledScreen(), RecipeScreenType.UNSET, true, original -> {
+            screen = new PreRecipeViewingScreen(REIHelper.getInstance().getPreviousHandledScreen(), RecipeScreenType.UNSET, true, original -> {
                 ConfigObject.getInstance().setRecipeScreenType(original ? RecipeScreenType.ORIGINAL : RecipeScreenType.VILLAGER);
                 ConfigManager.getInstance().saveConfig();
                 openRecipeViewingScreen(map, finalCategory, ingredientNotice, resultNotice);

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

@@ -115,7 +115,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.getLastHandledScreen() == null || MinecraftClient.getInstance().getNetworkHandler() == null || MinecraftClient.getInstance().getNetworkHandler().getRecipeManager() == null ?
+                        REIHelper.getInstance().getPreviousHandledScreen() == 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)))

+ 5 - 5
src/main/java/me/shedaniel/rei/impl/InternalWidgets.java

@@ -54,7 +54,7 @@ public final class InternalWidgets {
     private InternalWidgets() {}
     
     public static Widget createAutoCraftingButtonWidget(Rectangle displayBounds, me.shedaniel.math.Rectangle rectangle, String text, Supplier<RecipeDisplay> displaySupplier, List<Widget> setupDisplay, RecipeCategory<?> category) {
-        HandledScreen<?> handledScreen = ScreenHelper.getLastHandledScreen();
+        HandledScreen<?> handledScreen = REIHelper.getInstance().getPreviousHandledScreen();
         boolean[] visible = {false};
         List<String>[] errorTooltip = new List[]{null};
         Button autoCraftingButton = Widgets.createButton(rectangle, text)
@@ -215,7 +215,7 @@ public final class InternalWidgets {
         public List<? extends Element> children() {
             return widgets;
         }
-    
+        
         @Override
         public boolean mouseScrolled(double mouseX, double mouseY, double amount) {
             for (Widget widget : this.widgets) {
@@ -243,7 +243,7 @@ public final class InternalWidgets {
         public List<? extends Element> children() {
             return Collections.singletonList(this.widget);
         }
-    
+        
         @Override
         public boolean mouseScrolled(double mouseX, double mouseY, double amount) {
             return this.widget.mouseScrolled(mouseX, mouseY, amount);
@@ -277,7 +277,7 @@ public final class InternalWidgets {
         public List<? extends Element> children() {
             return Collections.singletonList(this.widget);
         }
-    
+        
         @Override
         public boolean mouseScrolled(double mouseX, double mouseY, double amount) {
             return this.widget.mouseScrolled(mouseX, mouseY, amount);
@@ -318,7 +318,7 @@ public final class InternalWidgets {
         public List<? extends Element> children() {
             return Collections.singletonList(this.widget);
         }
-    
+        
         @Override
         public boolean mouseScrolled(double mouseX, double mouseY, double amount) {
             return this.widget.mouseScrolled(mouseX, mouseY, amount);

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

@@ -149,10 +149,20 @@ public class ScreenHelper implements ClientModInitializer, REIHelper {
         return getLastOverlay(false, false);
     }
     
+    /**
+     * @see REIHelper#getPreviousHandledScreen()
+     */
+    @Deprecated
+    @ApiStatus.ScheduledForRemoval
     public static HandledScreen<?> getLastHandledScreen() {
         return lastHandledScreen;
     }
     
+    @Override
+    public HandledScreen<?> getPreviousHandledScreen() {
+        return lastHandledScreen;
+    }
+    
     public static void setLastHandledScreen(HandledScreen<?> lastScreenWithHandler) {
         ScreenHelper.lastHandledScreen = lastScreenWithHandler;
     }

+ 3 - 3
src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java

@@ -25,7 +25,7 @@ package me.shedaniel.rei.plugin;
 
 import com.google.common.collect.Ordering;
 import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.impl.ScreenHelper;
+import me.shedaniel.rei.api.REIHelper;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.screen.ingame.AbstractInventoryScreen;
 import net.minecraft.client.gui.screen.ingame.HandledScreen;
@@ -40,12 +40,12 @@ import java.util.function.Supplier;
 public class DefaultPotionEffectExclusionZones implements Supplier<List<Rectangle>> {
     @Override
     public List<Rectangle> get() {
-        if (!(ScreenHelper.getLastHandledScreen() instanceof AbstractInventoryScreen) || !((AbstractInventoryScreen) ScreenHelper.getLastHandledScreen()).drawStatusEffects)
+        if (!(REIHelper.getInstance().getPreviousHandledScreen() instanceof AbstractInventoryScreen) || !((AbstractInventoryScreen<?>) REIHelper.getInstance().getPreviousHandledScreen()).drawStatusEffects)
             return Collections.emptyList();
         Collection<StatusEffectInstance> activePotionEffects = MinecraftClient.getInstance().player.getStatusEffects();
         if (activePotionEffects.isEmpty())
             return Collections.emptyList();
-        HandledScreen<?> handledScreen = ScreenHelper.getLastHandledScreen();
+        HandledScreen<?> handledScreen = REIHelper.getInstance().getPreviousHandledScreen();
         List<Rectangle> list = new ArrayList<>();
         int x = handledScreen.x - 124;
         int y = handledScreen.y;

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

@@ -25,7 +25,7 @@ package me.shedaniel.rei.plugin;
 
 import com.google.common.collect.Lists;
 import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.impl.ScreenHelper;
+import me.shedaniel.rei.api.REIHelper;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.screen.ingame.HandledScreen;
 import net.minecraft.client.gui.screen.recipebook.RecipeBookProvider;
@@ -40,11 +40,11 @@ public class DefaultRecipeBookExclusionZones implements Supplier<List<Rectangle>
     
     @Override
     public List<Rectangle> get() {
-        if (!MinecraftClient.getInstance().player.getRecipeBook().isGuiOpen() || !(MinecraftClient.getInstance().currentScreen instanceof RecipeBookProvider) || !(ScreenHelper.getLastHandledScreen().getScreenHandler() instanceof AbstractRecipeScreenHandler))
+        if (!MinecraftClient.getInstance().player.getRecipeBook().isGuiOpen() || !(MinecraftClient.getInstance().currentScreen instanceof RecipeBookProvider) || !(REIHelper.getInstance().getPreviousHandledScreen().getScreenHandler() instanceof AbstractRecipeScreenHandler))
             return Collections.emptyList();
-        HandledScreen<?> handledScreen = ScreenHelper.getLastHandledScreen();
+        HandledScreen<?> handledScreen = REIHelper.getInstance().getPreviousHandledScreen();
         List<Rectangle> l = Lists.newArrayList(new Rectangle(handledScreen.x - 4 - 145, handledScreen.y, 4 + 145 + 30, handledScreen.backgroundHeight));
-        int size = ClientRecipeBook.getGroups((AbstractRecipeScreenHandler<?>) ScreenHelper.getLastHandledScreen().getScreenHandler()).size();
+        int size = ClientRecipeBook.getGroups((AbstractRecipeScreenHandler<?>) REIHelper.getInstance().getPreviousHandledScreen().getScreenHandler()).size();
         if (size > 0)
             l.add(new Rectangle(handledScreen.x - 4 - 145 - 30, handledScreen.y, 30, size * 27));
         return l;

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

@@ -32,6 +32,7 @@ import net.minecraft.recipe.CampfireCookingRecipe;
 import net.minecraft.recipe.Ingredient;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.collection.DefaultedList;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;

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

@@ -29,11 +29,11 @@ import it.unimi.dsi.fastutil.ints.IntList;
 import me.shedaniel.math.Point;
 import me.shedaniel.math.Rectangle;
 import me.shedaniel.rei.api.EntryStack;
+import me.shedaniel.rei.api.REIHelper;
 import me.shedaniel.rei.api.TransferRecipeCategory;
 import me.shedaniel.rei.api.widgets.Slot;
 import me.shedaniel.rei.api.widgets.Widgets;
 import me.shedaniel.rei.gui.widget.Widget;
-import me.shedaniel.rei.impl.ScreenHelper;
 import me.shedaniel.rei.plugin.DefaultPlugin;
 import me.shedaniel.rei.server.ContainerInfo;
 import me.shedaniel.rei.server.ContainerInfoHandler;
@@ -95,12 +95,12 @@ public class DefaultCraftingCategory implements TransferRecipeCategory<DefaultCr
     
     @Override
     public void renderRedSlots(List<Widget> widgets, Rectangle bounds, DefaultCraftingDisplay display, IntList redSlots) {
-        ContainerInfo<ScreenHandler> info = (ContainerInfo<ScreenHandler>) ContainerInfoHandler.getContainerInfo(getIdentifier(), ScreenHelper.getLastHandledScreen().getScreenHandler().getClass());
+        ContainerInfo<ScreenHandler> info = (ContainerInfo<ScreenHandler>) ContainerInfoHandler.getContainerInfo(getIdentifier(), REIHelper.getInstance().getPreviousHandledScreen().getScreenHandler().getClass());
         if (info == null)
             return;
         RenderSystem.translatef(0, 0, 400);
         Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 27);
-        int width = info.getCraftingWidth(ScreenHelper.getLastHandledScreen().getScreenHandler());
+        int width = info.getCraftingWidth(REIHelper.getInstance().getPreviousHandledScreen().getScreenHandler());
         for (Integer slot : redSlots) {
             int i = slot;
             int x = i % width;

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

@@ -32,6 +32,7 @@ import net.minecraft.recipe.Ingredient;
 import net.minecraft.recipe.StonecuttingRecipe;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.collection.DefaultedList;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;