From 12223ae029f3d206ebb19ba0cd134e3c36827315 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 6 Mar 2020 04:18:21 +0800 Subject: 3.0.7 Signed-off-by: shedaniel --- .../java/me/shedaniel/rei/impl/ScreenHelper.java | 56 +++++++++++++++++----- 1 file changed, 43 insertions(+), 13 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/impl/ScreenHelper.java') diff --git a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java index 68a593714..6958408fe 100644 --- a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java +++ b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java @@ -29,8 +29,11 @@ import com.google.common.collect.Sets; import me.shedaniel.cloth.hooks.ClothClientHooks; import me.shedaniel.rei.api.ConfigManager; import me.shedaniel.rei.api.ConfigObject; +import me.shedaniel.rei.api.REIHelper; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.OverlaySearchField; +import me.shedaniel.rei.gui.RecipeScreen; +import me.shedaniel.rei.gui.widget.TextFieldWidget; import me.shedaniel.rei.listeners.ContainerScreenHooks; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.event.client.ClientTickCallback; @@ -47,27 +50,41 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Optional; -public class ScreenHelper implements ClientModInitializer { +@ApiStatus.Internal +public class ScreenHelper implements ClientModInitializer, REIHelper { - /** - * @deprecated Use getters instead - */ - private static OverlaySearchField searchField; - @ApiStatus.Internal public static List inventoryStacks = Lists.newArrayList(); + private OverlaySearchField searchField; + @ApiStatus.Internal + public static List inventoryStacks = Lists.newArrayList(); private static ContainerScreenOverlay overlay; private static ContainerScreen lastContainerScreen = null; - private static LinkedHashSet lastRecipeScreen = Sets.newLinkedHashSetWithExpectedSize(5); + private static LinkedHashSet lastRecipeScreen = Sets.newLinkedHashSetWithExpectedSize(5); + private static ScreenHelper instance; - public static OverlaySearchField getSearchField() { + public static ScreenHelper getInstance() { + return instance; + } + + @Override + public TextFieldWidget getSearchTextField() { return searchField; } + @Override + public List getInventoryStacks() { + return inventoryStacks; + } + + public static OverlaySearchField getSearchField() { + return (OverlaySearchField) getInstance().getSearchTextField(); + } + @ApiStatus.Internal public static void setSearchField(OverlaySearchField searchField) { - ScreenHelper.searchField = searchField; + getInstance().searchField = searchField; } - public static void storeRecipeScreen(Screen screen) { + public static void storeRecipeScreen(RecipeScreen screen) { while (lastRecipeScreen.size() >= 5) lastRecipeScreen.remove(Iterables.get(lastRecipeScreen, 0)); lastRecipeScreen.add(screen); @@ -78,11 +95,13 @@ public class ScreenHelper implements ClientModInitializer { } public static Screen getLastRecipeScreen() { - Screen screen = Iterables.getLast(lastRecipeScreen); + RecipeScreen screen = Iterables.getLast(lastRecipeScreen); lastRecipeScreen.remove(screen); - return screen; + screen.recalculateCategoryPage(); + return (Screen) screen; } + @ApiStatus.Internal public static void clearLastRecipeScreenData() { lastRecipeScreen.clear(); } @@ -140,10 +159,22 @@ public class ScreenHelper implements ClientModInitializer { consumer.accept(actualX, actualY, delta); } + @Deprecated + @ApiStatus.Internal + @ApiStatus.ScheduledForRemoval public static boolean isDarkModeEnabled() { return ConfigObject.getInstance().isUsingDarkTheme(); } + @Override + public boolean isDarkThemeEnabled() { + return isDarkModeEnabled(); + } + + public ScreenHelper() { + ScreenHelper.instance = this; + } + @Override public void onInitializeClient() { ClothClientHooks.SCREEN_INIT_PRE.register((client, screen, screenHooks) -> { @@ -156,5 +187,4 @@ public class ScreenHelper implements ClientModInitializer { getSearchField().tick(); }); } - } -- cgit