aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-05-31 00:14:21 +0800
committershedaniel <daniel@shedaniel.me>2021-05-31 00:14:21 +0800
commit82e9655e3786f58c32e2b6584732bb40f9508c1c (patch)
treec045169783ff60013c5d063dbe8ec03b97cdc2a9 /runtime/src/main/java
parent82cb8e2ac9f87375998e5962f1ffe8a9c05bafb0 (diff)
downloadRoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.tar.gz
RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.tar.bz2
RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.zip
Fix rendering issues with overlays, REIHelper -> REIRuntime
Diffstat (limited to 'runtime/src/main/java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java44
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInitializer.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java (renamed from runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java)10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java14
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java83
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/Menu.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/EntryStackSubsetsMenuEntry.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/GameModeMenuEntry.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/SubSubsetsMenuEntry.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/WeatherMenuEntry.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java22
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java22
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java33
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DefaultDisplayChoosePageWidget.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java13
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/FavoritesListWidget.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ArrowWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/BurningFireWidget.java5
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ButtonWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/LabelWidget.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/PanelWidget.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryTypeDeferred.java14
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java41
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java16
34 files changed, 267 insertions, 205 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index 49547a544..a81f177e5 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -33,7 +33,7 @@ import dev.architectury.platform.Platform;
import dev.architectury.registry.ReloadListenerRegistry;
import dev.architectury.utils.Env;
import me.shedaniel.math.Point;
-import me.shedaniel.rei.api.client.REIHelper;
+import me.shedaniel.rei.api.client.REIRuntime;
import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer;
import me.shedaniel.rei.api.client.favorites.FavoriteEntry;
@@ -67,7 +67,7 @@ import me.shedaniel.rei.api.common.transfer.info.MenuInfoRegistry;
import me.shedaniel.rei.api.common.util.EntryStacks;
import me.shedaniel.rei.impl.ClientInternals;
import me.shedaniel.rei.impl.Internals;
-import me.shedaniel.rei.impl.client.REIHelperImpl;
+import me.shedaniel.rei.impl.client.REIRuntimeImpl;
import me.shedaniel.rei.impl.client.config.ConfigManagerImpl;
import me.shedaniel.rei.impl.client.entry.type.types.RenderingEntryDefinition;
import me.shedaniel.rei.impl.client.favorites.FavoriteEntryTypeRegistryImpl;
@@ -182,7 +182,8 @@ public class RoughlyEnoughItemsCore {
public EntryType<Unit> emptyType(ResourceLocation id) {
if (empty == null) {
- empty = new EntryType<Unit>() {
+ int hashCode = id.hashCode();
+ empty = new EntryType<>() {
@Override
public ResourceLocation getId() {
return id;
@@ -192,6 +193,11 @@ public class RoughlyEnoughItemsCore {
public EntryDefinition<Unit> getDefinition() {
return EmptyEntryDefinition.EMPTY;
}
+
+ @Override
+ public int hashCode() {
+ return hashCode;
+ }
};
}
return empty;
@@ -200,7 +206,8 @@ public class RoughlyEnoughItemsCore {
@Environment(EnvType.CLIENT)
public EntryType<Renderer> renderingType(ResourceLocation id) {
if (render == null) {
- render = new EntryType<Renderer>() {
+ int hashCode = id.hashCode();
+ render = new EntryType<>() {
@Override
public ResourceLocation getId() {
return id;
@@ -210,6 +217,11 @@ public class RoughlyEnoughItemsCore {
public EntryDefinition<Renderer> getDefinition() {
return RenderingEntryDefinition.RENDERING;
}
+
+ @Override
+ public int hashCode() {
+ return hashCode;
+ }
};
}
return render;
@@ -392,7 +404,7 @@ public class RoughlyEnoughItemsCore {
new FavoriteEntryTypeRegistryImpl(),
new SubsetsRegistryImpl(),
new TransferHandlerRegistryImpl(),
- new REIHelperImpl()), "clientPluginManager");
+ new REIRuntimeImpl()), "clientPluginManager");
}
@ApiStatus.Internal
@@ -490,7 +502,7 @@ public class RoughlyEnoughItemsCore {
@Environment(EnvType.CLIENT)
public static boolean shouldReturn(Screen screen) {
- if (!REIHelper.getInstance().getOverlay().isPresent()) return true;
+ if (!REIRuntime.getInstance().getOverlay().isPresent()) return true;
if (screen == null) return true;
if (screen != Minecraft.getInstance().screen) return true;
return _shouldReturn(screen);
@@ -505,7 +517,7 @@ public class RoughlyEnoughItemsCore {
continue;
InteractionResult result = decider.shouldScreenBeOverlaid(screenClass);
if (result != InteractionResult.PASS) {
- return result == InteractionResult.FAIL || REIHelper.getInstance().getPreviousScreen() == null;
+ return result == InteractionResult.FAIL || REIRuntime.getInstance().getPreviousScreen() == null;
}
}
} catch (ConcurrentModificationException ignored) {
@@ -520,7 +532,7 @@ public class RoughlyEnoughItemsCore {
MutableLong lastReload = new MutableLong(-1);
ClientRecipeUpdateEvent.EVENT.register(recipeManager -> reloadPlugins(lastReload));
ClientGuiEvent.INIT_POST.register((screen, access) -> {
- REIHelperImpl.getInstance().setPreviousScreen(screen);
+ REIRuntimeImpl.getInstance().setPreviousScreen(screen);
if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof AbstractContainerScreen) {
access.getRenderables().removeIf(widget -> widget instanceof ImageButton && ((ImageButton) widget).resourceLocation.equals(recipeButtonTex));
access.getNarratables().removeIf(widget -> widget instanceof ImageButton && ((ImageButton) widget).resourceLocation.equals(recipeButtonTex));
@@ -532,7 +544,7 @@ public class RoughlyEnoughItemsCore {
if (shouldReturn(screen))
return EventResult.pass();
resetFocused(screen);
- if (REIHelper.getInstance().getOverlay().get().mouseClicked(mouseX, mouseY, button)) {
+ if (REIRuntime.getInstance().getOverlay().get().mouseClicked(mouseX, mouseY, button)) {
if (button == 0) {
screen.setDragging(true);
}
@@ -546,7 +558,7 @@ public class RoughlyEnoughItemsCore {
if (shouldReturn(screen))
return EventResult.pass();
resetFocused(screen);
- if (REIHelper.getInstance().isOverlayVisible() && REIHelper.getInstance().getOverlay().get().mouseReleased(mouseX, mouseY, button)
+ if (REIRuntime.getInstance().isOverlayVisible() && REIRuntime.getInstance().getOverlay().get().mouseReleased(mouseX, mouseY, button)
&& resetFocused(screen)) {
return EventResult.interruptTrue();
}
@@ -556,7 +568,7 @@ public class RoughlyEnoughItemsCore {
if (shouldReturn(screen))
return EventResult.pass();
resetFocused(screen);
- if (REIHelper.getInstance().isOverlayVisible() && REIHelper.getInstance().getOverlay().get().mouseScrolled(mouseX, mouseY, amount)
+ if (REIRuntime.getInstance().isOverlayVisible() && REIRuntime.getInstance().getOverlay().get().mouseScrolled(mouseX, mouseY, amount)
&& resetFocused(screen))
return EventResult.interruptTrue();
return EventResult.pass();
@@ -565,7 +577,7 @@ public class RoughlyEnoughItemsCore {
if (shouldReturn(screen))
return EventResult.pass();
resetFocused(screen);
- if (REIHelper.getInstance().getOverlay().get().charTyped(character, keyCode)
+ if (REIRuntime.getInstance().getOverlay().get().charTyped(character, keyCode)
&& resetFocused(screen))
return EventResult.interruptTrue();
return EventResult.pass();
@@ -574,15 +586,15 @@ public class RoughlyEnoughItemsCore {
if (shouldReturn(screen))
return;
resetFocused(screen);
- REIHelper.getInstance().getOverlay().get().render(matrices, mouseX, mouseY, delta);
- ((ScreenOverlayImpl) REIHelper.getInstance().getOverlay().get()).lateRender(matrices, mouseX, mouseY, delta);
+ REIRuntime.getInstance().getOverlay().get().render(matrices, mouseX, mouseY, delta);
+ ((ScreenOverlayImpl) REIRuntime.getInstance().getOverlay().get()).lateRender(matrices, mouseX, mouseY, delta);
resetFocused(screen);
});
ClientScreenInputEvent.MOUSE_DRAGGED_PRE.register((minecraftClient, screen, mouseX1, mouseY1, button, mouseX2, mouseY2) -> {
if (shouldReturn(screen))
return EventResult.pass();
resetFocused(screen);
- if (REIHelper.getInstance().getOverlay().get().mouseDragged(mouseX1, mouseY1, button, mouseX2, mouseY2)
+ if (REIRuntime.getInstance().getOverlay().get().mouseDragged(mouseX1, mouseY1, button, mouseX2, mouseY2)
&& resetFocused(screen))
return EventResult.interruptTrue();
return EventResult.pass();
@@ -599,7 +611,7 @@ public class RoughlyEnoughItemsCore {
if (screen.getFocused() != null && screen.getFocused() instanceof EditBox || (screen.getFocused() instanceof RecipeBookComponent && ((RecipeBookComponent) screen.getFocused()).searchBox != null && ((RecipeBookComponent) screen.getFocused()).searchBox.isFocused()))
return EventResult.pass();
resetFocused(screen);
- if (REIHelper.getInstance().getOverlay().get().keyPressed(i, i1, i2)
+ if (REIRuntime.getInstance().getOverlay().get().keyPressed(i, i1, i2)
&& resetFocused(screen))
return EventResult.interruptTrue();
return EventResult.pass();
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInitializer.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInitializer.java
index 0ee468267..03581e828 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInitializer.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInitializer.java
@@ -45,7 +45,7 @@ public class RoughlyEnoughItemsInitializer {
initializeEntryPoint(true, "me.shedaniel.rei.RoughlyEnoughItemsCore");
initializeEntryPoint(true, "me.shedaniel.rei.REIModMenuEntryPoint");
initializeEntryPoint(true, "me.shedaniel.rei.impl.client.ClientHelperImpl");
- initializeEntryPoint(true, "me.shedaniel.rei.impl.client.REIHelperImpl");
+ initializeEntryPoint(true, "me.shedaniel.rei.impl.client.REIRuntimeImpl");
}
initializeEntryPoint(true, "me.shedaniel.rei.impl.client.ErrorDisplayer");
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 45285ccfc..16525f545 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
@@ -23,6 +23,7 @@
package me.shedaniel.rei.impl.client;
+import com.google.common.base.Suppliers;
import dev.architectury.networking.NetworkManager;
import dev.architectury.platform.Platform;
import io.netty.buffer.Unpooled;
@@ -30,7 +31,7 @@ import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
import it.unimi.dsi.fastutil.longs.LongSet;
import me.shedaniel.rei.RoughlyEnoughItemsNetwork;
import me.shedaniel.rei.api.client.ClientHelper;
-import me.shedaniel.rei.api.client.REIHelper;
+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.DisplayScreenType;
@@ -244,7 +245,7 @@ public class ClientHelperImpl implements ClientHelper {
if (ConfigObject.getInstance().getRecipeScreenType() == DisplayScreenType.COMPOSITE) {
screen = new CompositeDisplayViewingScreen(map, builder.getPreferredOpenedCategory());
} else if (ConfigObject.getInstance().getRecipeScreenType() == DisplayScreenType.UNSET) {
- screen = new UncertainDisplayViewingScreen(REIHelper.getInstance().getPreviousScreen(), DisplayScreenType.UNSET, true, original -> {
+ screen = new UncertainDisplayViewingScreen(REIRuntime.getInstance().getPreviousScreen(), DisplayScreenType.UNSET, true, original -> {
ConfigObject.getInstance().setRecipeScreenType(original ? DisplayScreenType.ORIGINAL : DisplayScreenType.COMPOSITE);
ConfigManager.getInstance().saveConfig();
openView(builder);
@@ -261,7 +262,7 @@ public class ClientHelperImpl implements ClientHelper {
}
}
if (Minecraft.getInstance().screen instanceof DisplayScreen) {
- REIHelperImpl.getInstance().storeDisplayScreen((DisplayScreen) Minecraft.getInstance().screen);
+ REIRuntimeImpl.getInstance().storeDisplayScreen((DisplayScreen) Minecraft.getInstance().screen);
}
Minecraft.getInstance().setScreen(screen);
return true;
@@ -295,7 +296,7 @@ public class ClientHelperImpl implements ClientHelper {
private final List<EntryStack<?>> usagesFor = new ArrayList<>();
@Nullable
private CategoryIdentifier<?> preferredOpenedCategory = null;
- private final LazyLoadedValue<Map<DisplayCategory<?>, List<Display>>> map = new LazyLoadedValue<>(() -> ((ViewsImpl) Views.getInstance()).buildMapFor(this));
+ private final Supplier<Map<DisplayCategory<?>, List<Display>>> map = Suppliers.memoize(() -> ViewsImpl.buildMapFor(this));
@Override
public ViewSearchBuilder addCategory(CategoryIdentifier<?> category) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java
index d5e088821..be27f26ae 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java
@@ -30,7 +30,7 @@ import dev.architectury.event.EventResult;
import dev.architectury.event.events.client.ClientGuiEvent;
import dev.architectury.event.events.client.ClientTickEvent;
import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.api.client.REIHelper;
+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.SearchFieldLocation;
@@ -55,7 +55,7 @@ import java.util.Optional;
@ApiStatus.Internal
@Environment(EnvType.CLIENT)
-public class REIHelperImpl implements REIHelper {
+public class REIRuntimeImpl implements REIRuntime {
private static final ResourceLocation DISPLAY_TEXTURE = new ResourceLocation("roughlyenoughitems", "textures/gui/display.png");
private static final ResourceLocation DISPLAY_TEXTURE_DARK = new ResourceLocation("roughlyenoughitems", "textures/gui/display_dark.png");
@ApiStatus.Internal
@@ -68,11 +68,11 @@ public class REIHelperImpl implements REIHelper {
/**
* @return the instance of screen helper
- * @see REIHelper#getInstance()
+ * @see REIRuntime#getInstance()
*/
@ApiStatus.Internal
- public static REIHelperImpl getInstance() {
- return (REIHelperImpl) REIHelper.getInstance();
+ public static REIRuntimeImpl getInstance() {
+ return (REIRuntimeImpl) REIRuntime.getInstance();
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java
index 8cca5cce0..2068523e8 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java
@@ -45,7 +45,7 @@ import me.shedaniel.clothconfig2.api.Modifier;
import me.shedaniel.clothconfig2.api.ModifierKeyCode;
import me.shedaniel.clothconfig2.gui.entries.KeyCodeEntry;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
-import me.shedaniel.rei.api.client.REIHelper;
+import me.shedaniel.rei.api.client.REIRuntime;
import me.shedaniel.rei.api.client.config.ConfigManager;
import me.shedaniel.rei.api.client.favorites.FavoriteEntry;
import me.shedaniel.rei.api.client.gui.config.DisplayScreenType;
@@ -54,7 +54,7 @@ import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.util.CollectionUtils;
-import me.shedaniel.rei.impl.client.REIHelperImpl;
+import me.shedaniel.rei.impl.client.REIRuntimeImpl;
import me.shedaniel.rei.impl.client.config.entries.*;
import me.shedaniel.rei.impl.client.entry.filtering.FilteringRule;
import me.shedaniel.rei.impl.client.entry.filtering.rules.ManualFilteringRule;
@@ -114,7 +114,7 @@ public class ConfigManagerImpl implements ConfigManager {
Collections.singletonList(new SearchFilterSyntaxHighlightingEntry(new TranslatableComponent(i13n), getUnsafely(field, config, SyntaxHighlightingMode.COLORFUL), getUnsafely(field, defaults), type -> setUnsafely(field, config, type)))
, (field) -> field.getType() == SyntaxHighlightingMode.class, ConfigObjectImpl.UseSpecialSearchFilterSyntaxHighlightingScreen.class);
guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) ->
- REIHelper.getInstance().getPreviousContainerScreen() == null || Minecraft.getInstance().getConnection() == null || Minecraft.getInstance().getConnection().getRecipeManager() == null ?
+ REIRuntime.getInstance().getPreviousContainerScreen() == null || Minecraft.getInstance().getConnection() == null || Minecraft.getInstance().getConnection().getRecipeManager() == null ?
Collections.singletonList(new NoFilteringEntry(220, getUnsafely(field, config, new ArrayList<>()), getUnsafely(field, defaults), list -> setUnsafely(field, config, list)))
:
Collections.singletonList(new FilteringEntry(220, getUnsafely(field, config, new ArrayList<>()), ((ConfigObjectImpl.Advanced.Filtering) config).filteringRules, getUnsafely(field, defaults), list -> setUnsafely(field, config, list), list -> ((ConfigObjectImpl.Advanced.Filtering) config).filteringRules = Lists.newArrayList(list)))
@@ -314,9 +314,9 @@ public class ConfigManagerImpl implements ConfigManager {
}).setSavingRunnable(() -> {
saveConfig();
EntryRegistry.getInstance().refilter();
- REIHelper.getInstance().getOverlay().ifPresent(ScreenOverlay::queueReloadOverlay);
- if (REIHelperImpl.getSearchField() != null) {
- ScreenOverlayImpl.getEntryListWidget().updateSearch(REIHelperImpl.getSearchField().getText(), true);
+ REIRuntime.getInstance().getOverlay().ifPresent(ScreenOverlay::queueReloadOverlay);
+ if (REIRuntimeImpl.getSearchField() != null) {
+ ScreenOverlayImpl.getEntryListWidget().updateSearch(REIRuntimeImpl.getSearchField().getText(), true);
}
}).build();
});
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
index 0aea413fd..9026127f3 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
@@ -35,7 +35,7 @@ import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWi
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.math.impl.PointHelper;
-import me.shedaniel.rei.api.client.REIHelper;
+import me.shedaniel.rei.api.client.REIRuntime;
import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry;
@@ -234,7 +234,7 @@ public class FilteringScreen extends Screen {
}
manager.render(matrices, mouseX, mouseY, delta);
updatePosition(delta);
- scrolling.renderScrollBar(0, 1.0F, REIHelper.getInstance().isDarkThemeEnabled() ? 0.8F : 1F);
+ scrolling.renderScrollBar(0, 1.0F, REIRuntime.getInstance().isDarkThemeEnabled() ? 0.8F : 1F);
matrices.pushPose();
matrices.translate(0, 0, 300);
this.searchField.laterRender(matrices, mouseX, mouseY, delta);
@@ -265,7 +265,7 @@ public class FilteringScreen extends Screen {
this.backButton.render(matrices, mouseX, mouseY, delta);
if (tooltip != null) {
- ((ScreenOverlayImpl) REIHelper.getInstance().getOverlay().get()).renderTooltip(matrices, tooltip);
+ ((ScreenOverlayImpl) REIRuntime.getInstance().getOverlay().get()).renderTooltip(matrices, tooltip);
}
this.font.drawShadow(matrices, this.title.getVisualOrderText(), this.width / 2.0F - this.font.width(this.title) / 2.0F, 12.0F, -1);
@@ -463,13 +463,7 @@ public class FilteringScreen extends Screen {
}
@Override
- protected void drawHighlighted(PoseStack matrices, int mouseX, int mouseY, float delta) {
-
- }
-
- @Override
- public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
- super.render(matrices, mouseX, mouseY, delta);
+ protected void drawExtra(PoseStack matrices, int mouseX, int mouseY, float delta) {
if (isSelected()) {
Rectangle bounds = getBounds();
RenderSystem.disableDepthTest();
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java
index bf238c6b8..3b35b4fed 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java
@@ -24,7 +24,6 @@
package me.shedaniel.rei.impl.client.gui;
import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
import com.mojang.blaze3d.platform.Window;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
@@ -33,7 +32,7 @@ import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.math.impl.PointHelper;
import me.shedaniel.rei.api.client.ClientHelper;
-import me.shedaniel.rei.api.client.REIHelper;
+import me.shedaniel.rei.api.client.REIRuntime;
import me.shedaniel.rei.api.client.overlay.OverlayListWidget;
import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.client.config.ConfigManager;
@@ -59,7 +58,7 @@ import me.shedaniel.rei.api.common.util.CollectionUtils;
import me.shedaniel.rei.api.common.util.EntryStacks;
import me.shedaniel.rei.api.common.util.ImmutableTextComponent;
import me.shedaniel.rei.impl.client.ClientHelperImpl;
-import me.shedaniel.rei.impl.client.REIHelperImpl;
+import me.shedaniel.rei.impl.client.REIRuntimeImpl;
import me.shedaniel.rei.impl.client.gui.craftable.CraftableFilter;
import me.shedaniel.rei.impl.client.gui.dragging.CurrentDraggingStack;
import me.shedaniel.rei.impl.client.gui.modules.Menu;
@@ -128,12 +127,12 @@ public class ScreenOverlayImpl extends ScreenOverlay {
}
public static ScreenOverlayImpl getInstance() {
- return (ScreenOverlayImpl) REIHelper.getInstance().getOverlay().get();
+ return (ScreenOverlayImpl) REIRuntime.getInstance().getOverlay().get();
}
public void tick() {
- if (REIHelperImpl.getSearchField() != null) {
- REIHelperImpl.getSearchField().tick();
+ if (REIRuntimeImpl.getSearchField() != null) {
+ REIRuntimeImpl.getSearchField().tick();
if (Minecraft.getInstance().player != null && !PluginManager.areAnyReloading()) {
CraftableFilter.INSTANCE.tick();
}
@@ -237,10 +236,10 @@ public class ScreenOverlayImpl extends ScreenOverlay {
favoritesListWidget.favoritePanel.resetRows();
widgets.add(favoritesListWidget);
}
- ENTRY_LIST_WIDGET.updateArea(REIHelperImpl.getSearchField() == null ? "" : REIHelperImpl.getSearchField().getText());
- REIHelperImpl.getSearchField().getBounds().setBounds(getSearchFieldArea());
- this.widgets.add(REIHelperImpl.getSearchField());
- REIHelperImpl.getSearchField().setResponder(s -> ENTRY_LIST_WIDGET.updateSearch(s, false));
+ ENTRY_LIST_WIDGET.updateArea(REIRuntimeImpl.getSearchField() == null ? "" : REIRuntimeImpl.getSearchField().getText());