aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/ScreenHelper.java')
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ScreenHelper.java56
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();
});
}
-
}