aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-08-27 13:23:37 +0900
committershedaniel <daniel@shedaniel.me>2022-08-27 13:23:37 +0900
commit03b0adcf960c5e462fddc8e045b146a8c727670c (patch)
treedcd998806437b6fea4e6ce0d34f5ddf97404d674 /runtime
parent1ba613d9c97e722e76f459162de2e1a1c9e875bb (diff)
downloadRoughlyEnoughItems-03b0adcf960c5e462fddc8e045b146a8c727670c.tar.gz
RoughlyEnoughItems-03b0adcf960c5e462fddc8e045b146a8c727670c.tar.bz2
RoughlyEnoughItems-03b0adcf960c5e462fddc8e045b146a8c727670c.zip
Refactors to overlays and reiruntime
Diffstat (limited to 'runtime')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java88
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/DisplayScreenStack.java33
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/TooltipQueue.java51
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/menu/Menu.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/AbstractScreenOverlay.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CraftableFilterButtonWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListSearchManager.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java2
16 files changed, 70 insertions, 162 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
index 7a537fcec..3c1cbcb01 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
@@ -33,6 +33,7 @@ import me.shedaniel.rei.api.client.registry.display.DisplayCategory;
import me.shedaniel.rei.api.client.view.ViewSearchBuilder;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.entry.EntryStack;
+import me.shedaniel.rei.impl.client.gui.DisplayScreenStack;
import me.shedaniel.rei.impl.client.gui.screen.CompositeDisplayViewingScreen;
import me.shedaniel.rei.impl.client.gui.screen.DefaultDisplayViewingScreen;
import me.shedaniel.rei.impl.display.DisplaySpec;
@@ -96,7 +97,7 @@ public class ClientHelperImpl extends ClientNetworkHelperImpl implements ClientM
}
}
if (Minecraft.getInstance().screen instanceof DisplayScreen displayScreen) {
- REIRuntimeImpl.getInstance().storeDisplayScreen(displayScreen);
+ DisplayScreenStack.storeDisplayScreen(displayScreen);
}
Minecraft.getInstance().setScreen(screen);
return true;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java
index 51132dc36..0c4007509 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java
@@ -23,8 +23,6 @@
package me.shedaniel.rei.impl.client;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Sets;
import com.mojang.blaze3d.platform.Window;
import com.mojang.blaze3d.systems.RenderSystem;
import dev.architectury.event.EventResult;
@@ -33,24 +31,18 @@ import dev.architectury.event.events.client.ClientTickEvent;
import dev.architectury.platform.Platform;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.REIRuntime;
-import me.shedaniel.rei.api.client.config.ConfigManager;
import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.gui.config.DisplayPanelLocation;
import me.shedaniel.rei.api.client.gui.config.SearchFieldLocation;
-import me.shedaniel.rei.api.client.gui.screen.DisplayScreen;
-import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry;
import me.shedaniel.rei.api.client.search.SearchProvider;
import me.shedaniel.rei.api.common.registry.ReloadStage;
+import me.shedaniel.rei.impl.client.gui.DisplayScreenStack;
import me.shedaniel.rei.impl.client.gui.InternalTextures;
import me.shedaniel.rei.impl.client.gui.ScreenOverlayImpl;
-import me.shedaniel.rei.impl.client.gui.TooltipQueue;
-import me.shedaniel.rei.impl.client.gui.hints.HintProvider;
import me.shedaniel.rei.impl.client.gui.widget.CachedEntryListRender;
-import me.shedaniel.rei.impl.client.gui.widget.search.OverlaySearchField;
import me.shedaniel.rei.impl.client.provider.OverlayTicker;
-import me.shedaniel.rei.impl.common.Internals;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
@@ -61,9 +53,6 @@ import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.lang.reflect.InvocationTargetException;
-import java.util.Collections;
-import java.util.LinkedHashSet;
-import java.util.List;
import java.util.Optional;
import static me.shedaniel.rei.impl.client.gui.widget.entrylist.EntryListWidget.entrySize;
@@ -71,8 +60,6 @@ import static me.shedaniel.rei.impl.client.gui.widget.entrylist.EntryListWidget.
@ApiStatus.Internal
@Environment(EnvType.CLIENT)
public class REIRuntimeImpl implements REIRuntime {
- private final LinkedHashSet<DisplayScreen> lastDisplayScreen = Sets.newLinkedHashSetWithExpectedSize(10);
- private final List<HintProvider> hintProviders = Internals.resolveServices(HintProvider.class);
private ScreenOverlayImpl overlay;
private AbstractContainerScreen<?> previousContainerScreen = null;
private Screen previousScreen = null;
@@ -86,57 +73,6 @@ public class REIRuntimeImpl implements REIRuntime {
return (REIRuntimeImpl) REIRuntime.getInstance();
}
- public List<HintProvider> getHintProviders() {
- return Collections.unmodifiableList(hintProviders);
- }
-
- @Override
- public void queueTooltip(@Nullable Tooltip tooltip) {
- if (overlay != null && tooltip != null) {
- TooltipQueue.addTooltip(tooltip);
- }
- }
-
- @Override
- public void clearTooltips() {
- if (overlay != null) {
- TooltipQueue.clearTooltips();
- }
- }
-
- @Nullable
- public static OverlaySearchField getSearchField() {
- return (OverlaySearchField) getInstance().getSearchTextField();
- }
-
- public void storeDisplayScreen(DisplayScreen screen) {
- while (lastDisplayScreen.size() >= 10)
- lastDisplayScreen.remove(Iterables.get(lastDisplayScreen, 0));
- lastDisplayScreen.add(screen);
- }
-
- public boolean hasLastDisplayScreen() {
- return !lastDisplayScreen.isEmpty();
- }
-
- public Screen getLastDisplayScreen() {
- DisplayScreen screen = Iterables.getLast(lastDisplayScreen);
- lastDisplayScreen.remove(screen);
- screen.recalculateCategoryPage();
- return (Screen) screen;
- }
-
- @Override
- public boolean isOverlayVisible() {
- return ConfigObject.getInstance().isOverlayVisible();
- }
-
- @Override
- public void toggleOverlayVisible() {
- ConfigObject.getInstance().setOverlayVisible(!ConfigObject.getInstance().isOverlayVisible());
- ConfigManager.getInstance().saveConfig();
- }
-
@Override
public Optional<ScreenOverlay> getOverlay(boolean reset, boolean init) {
if ((overlay == null && init) || reset) {
@@ -180,16 +116,6 @@ public class REIRuntimeImpl implements REIRuntime {
}
@Override
- public boolean isDarkThemeEnabled() {
- return ConfigObject.getInstance().isUsingDarkTheme();
- }
-
- @Override
- public ResourceLocation getDefaultDisplayTexture() {
- return getDefaultDisplayTexture(isDarkThemeEnabled());
- }
-
- @Override
public ResourceLocation getDefaultDisplayTexture(boolean darkTheme) {
return darkTheme ? InternalTextures.DISPLAY_TEXTURE_DARK : InternalTextures.DISPLAY_TEXTURE;
}
@@ -242,9 +168,14 @@ public class REIRuntimeImpl implements REIRuntime {
@Override
public void startReload() {
+ startReload(null);
+ }
+
+ @Override
+ public void startReload(ReloadStage stage) {
SearchProvider.getInstance().clearCache();
getOverlay().ifPresent(ScreenOverlay::queueReloadOverlay);
- lastDisplayScreen.clear();
+ DisplayScreenStack.clear();
if (!RenderSystem.isOnRenderThread()) {
RenderSystem.recordRenderCall(CachedEntryListRender::refresh);
} else {
@@ -253,11 +184,6 @@ public class REIRuntimeImpl implements REIRuntime {
}
@Override
- public void startReload(ReloadStage stage) {
- startReload();
- }
-
- @Override
public void endReload(ReloadStage stage) {
SearchProvider.getInstance().clearCache();
getOverlay().ifPresent(ScreenOverlay::queueReloadOverlay);
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/DisplayScreenStack.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/DisplayScreenStack.java
new file mode 100644
index 000000000..4b12aa5d6
--- /dev/null
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/DisplayScreenStack.java
@@ -0,0 +1,33 @@
+package me.shedaniel.rei.impl.client.gui;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
+import me.shedaniel.rei.api.client.gui.screen.DisplayScreen;
+import net.minecraft.client.gui.screens.Screen;
+
+import java.util.LinkedHashSet;
+
+public class DisplayScreenStack {
+ private static final LinkedHashSet<DisplayScreen> LAST_DISPLAY_SCREENS = Sets.newLinkedHashSetWithExpectedSize(10);
+
+ public static void storeDisplayScreen(DisplayScreen screen) {
+ while (LAST_DISPLAY_SCREENS.size() >= 10)
+ LAST_DISPLAY_SCREENS.remove(Iterables.get(LAST_DISPLAY_SCREENS, 0));
+ LAST_DISPLAY_SCREENS.add(screen);
+ }
+
+ public static boolean hasLastDisplayScreen() {
+ return !LAST_DISPLAY_SCREENS.isEmpty();
+ }
+
+ public static Screen getLastDisplayScreen() {
+ DisplayScreen screen = Iterables.getLast(LAST_DISPLAY_SCREENS);
+ LAST_DISPLAY_SCREENS.remove(screen);
+ screen.recalculateCategoryPage();
+ return (Screen) screen;
+ }
+
+ public static void clear() {
+ LAST_DISPLAY_SCREENS.clear();
+ }
+}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/TooltipQueue.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/TooltipQueue.java
deleted file mode 100644
index 204798203..000000000
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/TooltipQueue.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * This file is licensed under the MIT License, part of Roughly Enough Items.
- * Copyright (c) 2018, 2019, 2020, 2021, 2022 shedaniel
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package me.shedaniel.rei.impl.client.gui;
-
-import com.google.common.collect.Lists;
-import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.List;
-import java.util.Objects;
-
-public class TooltipQueue {
- private static final List<Tooltip> TOOLTIPS = Lists.newArrayList();
-
- public static void addTooltip(@Nullable Tooltip tooltip) {
- if (tooltip != null)
- TOOLTIPS.add(tooltip);
- }
-
- public static void clearTooltips() {
- TOOLTIPS.clear();
- }
-
- @Nullable
- public static Tooltip get() {
- return TOOLTIPS.stream().filter(Objects::nonNull)
- .reduce((tooltip, tooltip2) -> tooltip2)
- .orElse(null);
- }
-}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/menu/Menu.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/menu/Menu.java
index aa66c25ad..010294296 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/menu/Menu.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/menu/Menu.java
@@ -30,7 +30,7 @@ import me.shedaniel.clothconfig2.api.ScissorsHandler;
import me.shedaniel.clothconfig2.api.scroll.ScrollingContainer;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.api.client.REIRuntime;
+import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.gui.widgets.WidgetWithBounds;
import me.shedaniel.rei.impl.client.gui.menu.entries.SubMenuEntry;
import me.shedaniel.rei.impl.client.gui.widget.LateRenderable;
@@ -134,7 +134,7 @@ public class Menu extends WidgetWithBounds implements LateRenderable {
public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
Rectangle bounds = getBounds();
Rectangle innerBounds = getInnerBounds();
- fill(matrices, bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), containsMouse(mouseX, mouseY) ? (REIRuntime.getInstance().isDarkThemeEnabled() ? -17587 : -1) : -6250336);
+ fill(matrices, bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), containsMouse(mouseX, mouseY) ? (ConfigObject.getInstance().isUsingDarkTheme() ? -17587 : -1) : -6250336);
fill(matrices, innerBounds.x, innerBounds.y, innerBounds.getMaxX(), innerBounds.getMaxY(), -16777216);
boolean contains = innerBounds.contains(mouseX, mouseY);
MenuEntry focused = getFocused() instanceof MenuEntry menuEntry ? menuEntry : null;
@@ -159,7 +159,7 @@ public class Menu extends WidgetWithBounds implements LateRenderable {
}
ScissorsHandler.INSTANCE.removeLastScissor();
setFocused(focused);
- scrolling.renderScrollBar(0, 1, REIRuntime.getInstance().isDarkThemeEnabled() ? 0.8f : 1f);
+ scrolling.renderScrollBar(0, 1, ConfigObject.getInstance().isUsingDarkTheme() ? 0.8f : 1f);
scrolling.updatePosition(delta);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/AbstractScreenOverlay.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/AbstractScreenOverlay.java
index 392b4cfee..aebecbc4f 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/AbstractScreenOverlay.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/AbstractScreenOverlay.java
@@ -36,6 +36,7 @@ import me.shedaniel.rei.api.client.gui.drag.DraggingContext;
import me.shedaniel.rei.api.client.gui.drag.component.DraggableComponentProvider;
import me.shedaniel.rei.api.client.gui.drag.component.DraggableComponentVisitor;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
+import me.shedaniel.rei.api.client.gui.widgets.TooltipQueue;
import me.shedaniel.rei.api.client.gui.widgets.Widget;
import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.client.registry.screen.ClickArea;
@@ -43,7 +44,6 @@ import me.shedaniel.rei.api.client.registry.screen.OverlayDecider;
import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry;
import me.shedaniel.rei.api.client.view.ViewSearchBuilder;
import me.shedaniel.rei.api.common.entry.EntryStack;
-import me.shedaniel.rei.impl.client.gui.TooltipQueue;
import me.shedaniel.rei.impl.client.gui.dragging.CurrentDraggingStack;
import me.shedaniel.rei.impl.client.gui.menu.MenuAccess;
import me.shedaniel.rei.impl.client.gui.menu.MenuAccessImpl;
@@ -162,12 +162,12 @@ public abstract class AbstractScreenOverlay extends ScreenOverlay {
matrices.popPose();
}
- Tooltip tooltip = TooltipQueue.get();
+ Tooltip tooltip = TooltipQueue.getInstance().get();
if (tooltip != null) {
renderTooltip(matrices, tooltip);
}
- REIRuntime.getInstance().clearTooltips();
+ TooltipQueue.getInstance().clear();
if (REIRuntime.getInstance().isOverlayVisible()) {
menuAccess.afterRender();
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
index 949e69dc5..4f77e677a 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
@@ -45,7 +45,7 @@ import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.util.ImmutableTextComponent;
import me.shedaniel.rei.impl.client.ClientHelperImpl;
-import me.shedaniel.rei.impl.client.REIRuntimeImpl;
+import me.shedaniel.rei.impl.client.gui.DisplayScreenStack;
import me.shedaniel.rei.impl.client.gui.InternalTextures;
import me.shedaniel.rei.impl.client.gui.widget.AutoCraftingButtonWidget;
import me.shedaniel.rei.impl.client.gui.widget.TabWidget;
@@ -273,8 +273,8 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen
init();
return true;
} else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(button)) {
- if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) {
- minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen());
+ if (DisplayScreenStack.hasLastDisplayScreen()) {
+ minecraft.setScreen(DisplayScreenStack.getLastDisplayScreen());
} else {
minecraft.setScreen(REIRuntime.getInstance().getPreviousScreen());
}
@@ -390,7 +390,7 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen
Optional.ofNullable(displayRenderers.get(i).getTooltip(TooltipContext.of(new Point(mouseX, mouseY)))).ifPresent(Tooltip::queue);
}
}
- scrolling.renderScrollBar(0, scrollBarAlpha, REIRuntime.getInstance().isDarkThemeEnabled() ? 0.8f : 1f);
+ scrolling.renderScrollBar(0, scrollBarAlpha, ConfigObject.getInstance().isUsingDarkTheme() ? 0.8f : 1f);
ScissorsHandler.INSTANCE.removeLastScissor();
matrices.popPose();
}
@@ -451,8 +451,8 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen
return true;
}
if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesKey(keyCode, scanCode)) {
- if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) {
- minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen());
+ if (DisplayScreenStack.hasLastDisplayScreen()) {
+ minecraft.setScreen(DisplayScreenStack.getLastDisplayScreen());
} else {
minecraft.setScreen(REIRuntime.getInstance().getPreviousScreen());
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
index f6c590eeb..f11a66827 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
@@ -53,7 +53,7 @@ import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.util.CollectionUtils;
import me.shedaniel.rei.api.common.util.ImmutableTextComponent;
import me.shedaniel.rei.impl.client.ClientHelperImpl;
-import me.shedaniel.rei.impl.client.REIRuntimeImpl;
+import me.shedaniel.rei.impl.client.gui.DisplayScreenStack;
import me.shedaniel.rei.impl.client.gui.InternalTextures;
import me.shedaniel.rei.impl.client.gui.RecipeDisplayExporter;
import me.shedaniel.rei.impl.client.gui.toast.ExportRecipeIdentifierToast;
@@ -128,8 +128,8 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
return true;
}
if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesKey(keyCode, scanCode)) {
- if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) {
- minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen());
+ if (DisplayScreenStack.hasLastDisplayScreen()) {
+ minecraft.setScreen(DisplayScreenStack.getLastDisplayScreen());
} else {
minecraft.setScreen(REIRuntime.getInstance().getPreviousScreen());
}
@@ -368,7 +368,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
}
private final ValueAnimator<Color> darkStripesColor = ValueAnimator.ofColor()
- .withConvention(() -> Color.ofTransparent(REIRuntime.getInstance().isDarkThemeEnabled() ? 0xFF404040 : 0xFF9E9E9E), ValueAnimator.typicalTransitionTime());
+ .withConvention(() -> Color.ofTransparent(ConfigObject.getInstance().isUsingDarkTheme() ? 0xFF404040 : 0xFF9E9E9E), ValueAnimator.typicalTransitionTime());
@Override
public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
@@ -531,8 +531,8 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
recipeBack.onClick();
return recipeBack.isEnabled();
} else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(button)) {
- if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) {
- minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen());
+ if (DisplayScreenStack.hasLastDisplayScreen()) {
+ minecraft.setScreen(DisplayScreenStack.getLastDisplayScreen());
} else {
minecraft.setScreen(REIRuntime.getInstance().getPreviousScreen());
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java
index 354090d01..d468a6128 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java
@@ -38,7 +38,6 @@ import me.shedaniel.rei.api.client.gui.widgets.Button;
import me.shedaniel.rei.api.client.gui.widgets.Widget;
import me.shedaniel.rei.api.client.gui.widgets.Widgets;
import me.shedaniel.rei.impl.client.ClientHelperImpl;
-import me.shedaniel.rei.impl.client.REIRuntimeImpl;
import me.shedaniel.rei.impl.client.config.ConfigManagerInternal;
import me.shedaniel.rei.impl.client.gui.InternalTextures;
import me.shedaniel.rei.impl.client.gui.ScreenOverlayImpl;
@@ -175,7 +174,7 @@ public class ConfigButtonWidget {
private static Rectangle getConfigButtonBounds() {
if (ConfigObject.getInstance().isLowerConfigButton()) {
- Rectangle area = REIRuntimeImpl.getSearchField().getBounds().clone();
+ Rectangle area = REIRuntime.getInstance().getSearchTextField().asWidget().getBounds().clone();
area.setLocation(area.x + area.width + (ConfigObject.getInstance().isCraftableFilterEnabled() ? 26 : 4), area.y - 1);
area.setSize(20, 20);
return area;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CraftableFilterButtonWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CraftableFilterButtonWidget.java
index 7d88521d4..7994ba44b 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CraftableFilterButtonWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CraftableFilterButtonWidget.java
@@ -35,7 +35,6 @@ import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.client.search.method.InputMethod;
import me.shedaniel.rei.api.client.search.method.InputMethodRegistry;
import me.shedaniel.rei.api.common.util.CollectionUtils;
-import me.shedaniel.rei.impl.client.REIRuntimeImpl;
import me.shedaniel.rei.impl.client.config.ConfigManagerInternal;
import me.shedaniel.rei.impl.client.gui.ScreenOverlayImpl;
import me.shedaniel.rei.impl.client.gui.menu.MenuAccess;
@@ -158,7 +157,7 @@ public class CraftableFilterButtonWidget {
}
private static Rectangle getCraftableFilterBounds() {
- Rectangle area = REIRuntimeImpl.getSearchField().getBounds().clone();
+ Rectangle area = REIRuntime.getInstance().getSearchTextField().asWidget().getBounds().clone();
area.setLocation(area.x + area.width + 4, area.y - 1);
area.setSize(20, 20);
return area;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java
index 671f854ad..ab41eb765 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java
@@ -31,6 +31,7 @@ import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.ClientHelper;
import me.shedaniel.rei.api.client.REIRuntime;
+import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.gui.Renderer;
import me.shedaniel.rei.api.client.gui.drag.DraggableStack;
import me.shedaniel.rei.api.client.gui.drag.DraggableStackProviderWidget;
@@ -65,7 +66,7 @@ public class TabWidget extends WidgetWithBounds implements DraggableStackProvide
@Nullable
private Predicate<TabWidget> onClick;
private final NumberAnimator<Float> darkBackgroundAlpha = ValueAnimator.ofFloat()
- .withConvention(() -> REIRuntime.getInstance().isDarkThemeEnabled() ? 1.0F : 0.0F, ValueAnimator.typicalTransitionTime())
+ .withConvention(() -> ConfigObject.getInstance().isUsingDarkTheme() ? 1.0F : 0.0F, ValueAnimator.typicalTransitionTime())
.asFloat();
private TabWidget(int id, Rectangle bounds, int u, int v, @Nullable Predicate<TabWidget> onClick) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListSearchManager.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListSearchManager.java
index 14a1f5d3b..a2187dd42 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListSearchManager.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListSearchManager.java
@@ -61,7 +61,7 @@ public class EntryListSearchManager {
public static final EntryListSearchManager INSTANCE = new EntryListSearchManager();
- private SearchManager searchManager = new AsyncSearchManager(EntryRegistry.getInstance()::getPreFilteredList, () -> {
+ private final SearchManager searchManager = new AsyncSearchManager(EntryRegistry.getInstance()::getPreFilteredList, () -> {
boolean checkCraftable = ConfigManager.getInstance().isCraftableOnlyEnabled();
LongSet workingItems = checkCraftable ? new LongOpenHashSet() : null;
if (checkCraftable) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java
index 2781431c1..e3009d27b 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java
@@ -47,7 +47,6 @@ import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes;
import me.shedaniel.rei.api.common.util.EntryStacks;
import me.shedaniel.rei.impl.client.ClientHelperImpl;
-import me.shedaniel.rei.impl.client.REIRuntimeImpl;
import me.shedaniel.rei.impl.client.config.ConfigManagerInternal;
import me.shedaniel.rei.impl.client.gui.ScreenOverlayImpl;
import me.shedaniel.rei.impl.client.gui.widget.favorites.FavoritesListWidget;
@@ -363,6 +362,6 @@ public abstract class EntryListWidget extends WidgetWithBounds implements Overla
@Override
public void queueReloadSearch() {
- updateSearch(REIRuntimeImpl.getSearchField().getText(), true);
+ updateSearch(REIRuntime.getInstance().getSearchTextField().getText(), true);
}
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
index 5fd238d70..7de0b2e9c 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java
@@ -32,6 +32,7 @@ import me.shedaniel.clothconfig2.api.ScissorsHandler;
import me.shedaniel.clothconfig2.api.scroll.ScrollingContainer;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.REIRuntime;
+import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.gui.widgets.BatchedSlots;
import me.shedaniel.rei.api.client.gui.widgets.Slot;
import me.shedaniel.rei.api.client.gui.widgets.Widgets;
@@ -119,7 +120,7 @@ public class ScrolledEntryListWidget extends CollapsingEntryListWidget {
scrolling.updatePosition(delta);
ScissorsHandler.INSTANCE.removeLastScissor();
if (scrolling.getMaxScroll() > 0) {
- scrolling.renderScrollBar(0, 1, REIRuntime.getInstance().isDarkThemeEnabled() ? 0.8f : 1f);
+ scrolling.renderScrollBar(0, 1, ConfigObject.getInstance().isUsingDarkTheme() ? 0.8f : 1f);
}
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java
index 8d4fdd4f1..18969948b 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java
@@ -132,7 +132,7 @@ public class EntryStacksRegionWidget<T extends RegionEntry<T>> extends WidgetWit
slots.render(poses, mouseX, mouseY, delta);
updatePosition(delta);
- scrolling.renderScrollBar(0, 1, REIRuntime.getInstance().isDarkThemeEnabled() ? 0.8f : 1f);
+ scrolling.renderS