diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/ScreenHelper.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/ScreenHelper.java | 56 |
1 files changed, 43 insertions, 13 deletions
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<ItemStack> inventoryStacks = Lists.newArrayList(); + private OverlaySearchField searchField; + @ApiStatus.Internal + public static List<ItemStack> inventoryStacks = Lists.newArrayList(); private static ContainerScreenOverlay overlay; private static ContainerScreen<?> lastContainerScreen = null; - private static LinkedHashSet<Screen> lastRecipeScreen = Sets.newLinkedHashSetWithExpectedSize(5); + private static LinkedHashSet<RecipeScreen> 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<ItemStack> 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,11 +159,23 @@ 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) -> { if (lastContainerScreen != screen && screen instanceof ContainerScreen) @@ -156,5 +187,4 @@ public class ScreenHelper implements ClientModInitializer { getSearchField().tick(); }); } - } |
