aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-05-22 04:10:24 +0800
committershedaniel <daniel@shedaniel.me>2021-05-22 04:10:24 +0800
commite82ab958bc7d13e556d7426b7a1862ec76e23eba (patch)
tree6b4dd9517552e4a21ce723c46151cddd84cb706d /runtime/src/main/java
parent114a076d4556290d63dc4a93c13f24d14d3c09a5 (diff)
downloadRoughlyEnoughItems-e82ab958bc7d13e556d7426b7a1862ec76e23eba.tar.gz
RoughlyEnoughItems-e82ab958bc7d13e556d7426b7a1862ec76e23eba.tar.bz2
RoughlyEnoughItems-e82ab958bc7d13e556d7426b7a1862ec76e23eba.zip
Initial port to 21w20a
Diffstat (limited to 'runtime/src/main/java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java18
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java23
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java13
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/RecipeScreenTypeEntry.java24
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ReloadPluginsEntry.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/SearchFilterSyntaxHighlightingEntry.java16
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java7
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java5
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DelegateScreen.java20
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/WarningAndErrorScreen.java51
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java75
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TextFieldWidget.java2
21 files changed, 256 insertions, 71 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index 1edb3c221..dcb8ce91e 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -27,7 +27,6 @@ import com.google.common.collect.Lists;
import me.shedaniel.architectury.event.events.GuiEvent;
import me.shedaniel.architectury.event.events.RecipeUpdateEvent;
import me.shedaniel.architectury.event.events.client.ClientScreenInputEvent;
-import me.shedaniel.architectury.hooks.ScreenHooks;
import me.shedaniel.architectury.networking.NetworkManager;
import me.shedaniel.architectury.platform.Platform;
import me.shedaniel.architectury.registry.ReloadListeners;
@@ -519,11 +518,12 @@ public class RoughlyEnoughItemsCore {
final ResourceLocation recipeButtonTex = new ResourceLocation("textures/gui/recipe_button.png");
MutableLong lastReload = new MutableLong(-1);
RecipeUpdateEvent.EVENT.register(recipeManager -> reloadPlugins(lastReload));
- GuiEvent.INIT_POST.register((screen, widgets, children) -> {
+ GuiEvent.INIT_POST.register((screen, access) -> {
REIHelperImpl.getInstance().setPreviousScreen(screen);
if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof AbstractContainerScreen) {
- ScreenHooks.getButtons(screen).removeIf(widget -> widget instanceof ImageButton && ((ImageButton) widget).resourceLocation.equals(recipeButtonTex));
- children.removeIf(widget -> widget instanceof ImageButton && ((ImageButton) widget).resourceLocation.equals(recipeButtonTex));
+ access.getRenderables().removeIf(widget -> widget instanceof ImageButton && ((ImageButton) widget).resourceLocation.equals(recipeButtonTex));
+ access.getNarratables().removeIf(widget -> widget instanceof ImageButton && ((ImageButton) widget).resourceLocation.equals(recipeButtonTex));
+ screen.children().removeIf(widget -> widget instanceof ImageButton && ((ImageButton) widget).resourceLocation.equals(recipeButtonTex));
}
});
ClientScreenInputEvent.MOUSE_CLICKED_PRE.register((minecraftClient, screen, mouseX, mouseY, button) -> {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
index 5bdb3c710..58c7506b3 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIHelperImpl.java
@@ -218,7 +218,7 @@ public class REIHelperImpl implements REIHelper {
}
public void onInitializeClient() {
- GuiEvent.INIT_PRE.register((screen, widgets, children) -> {
+ GuiEvent.INIT_PRE.register((screen, access) -> {
if (previousContainerScreen != screen && screen instanceof AbstractContainerScreen)
previousContainerScreen = (AbstractContainerScreen<?>) screen;
return InteractionResult.PASS;
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 b3ebdeaad..e89995311 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
@@ -30,8 +30,7 @@ import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.mojang.math.Matrix4f;
-import me.shedaniel.architectury.hooks.ScreenHooks;
-import me.shedaniel.architectury.platform.Platform;
+import me.shedaniel.architectury.hooks.screen.ScreenHooks;
import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.autoconfig.annotation.ConfigEntry;
import me.shedaniel.autoconfig.gui.ConfigScreenProvider;
@@ -64,7 +63,6 @@ import me.shedaniel.rei.impl.client.entry.filtering.rules.ManualFilteringRule;
import me.shedaniel.rei.impl.client.gui.ContainerScreenOverlay;
import me.shedaniel.rei.impl.client.gui.credits.CreditsScreen;
import me.shedaniel.rei.impl.client.gui.screen.TransformingScreen;
-import me.shedaniel.rei.impl.client.gui.screen.WarningAndErrorScreen;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.loader.api.FabricLoader;
@@ -74,7 +72,6 @@ import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.renderer.MultiBufferSource;
-import net.minecraft.client.resources.language.I18n;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import net.minecraft.nbt.TagParser;
@@ -83,7 +80,6 @@ import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.util.Mth;
-import net.minecraft.util.Tuple;
import net.minecraft.world.InteractionResult;
import org.apache.commons.lang3.mutable.MutableLong;
import org.jetbrains.annotations.ApiStatus;
@@ -309,14 +305,6 @@ public class ConfigManagerImpl implements ConfigManager {
@Override
public Screen getConfigScreen(Screen parent) {
try {
- if (Platform.isFabric() && !detectWorkingOptifabric()) {
- List<Tuple<String, String>> warnings = Lists.newArrayList();
- warnings.add(new Tuple<>(I18n.get("text.rei.config.optifine.title"), null));
- warnings.add(new Tuple<>(I18n.get("text.rei.config.optifine.description"), null));
- WarningAndErrorScreen screen = new WarningAndErrorScreen("config screen", warnings, Collections.emptyList(), Minecraft.getInstance()::setScreen);
- screen.setParent(parent);
- return screen;
- }
Screen parentTranslated;
if (!getConfig().isConfigScreenAnimated()) {
parentTranslated = parent;
@@ -340,7 +328,7 @@ public class ConfigManagerImpl implements ConfigManager {
builder.getOrCreateCategory(new TranslatableComponent("config.roughlyenoughitems.advanced")).getEntries().add(0, new ReloadPluginsEntry(220));
}
return builder.setAfterInitConsumer(screen -> {
- ScreenHooks.addButton(screen, new Button(screen.width - 104, 4, 100, 20, new TranslatableComponent("text.rei.credits"), button -> {
+ ScreenHooks.addRenderableWidget(screen, new Button(screen.width - 104, 4, 100, 20, new TranslatableComponent("text.rei.credits"), button -> {
MutableLong current = new MutableLong(0);
CreditsScreen creditsScreen = new CreditsScreen(screen);
if (getConfig().isCreditsScreenAnimated()) {
@@ -401,7 +389,7 @@ public class ConfigManagerImpl implements ConfigManager {
@Override
public void init() {
super.init();
- this.addButton(new Button(this.width / 2 - 100, 140, 200, 20, CommonComponents.GUI_CANCEL, button -> this.minecraft.setScreen(parent)));
+ this.addRenderableWidget(new Button(this.width / 2 - 100, 140, 200, 20, CommonComponents.GUI_CANCEL, button -> this.minecraft.setScreen(parent)));
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java
index 0b588f9ea..0d09a298a 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java
@@ -30,6 +30,7 @@ import me.shedaniel.rei.impl.client.entry.filtering.rules.ManualFilteringRule;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.locale.Language;
import net.minecraft.network.chat.Component;
@@ -58,7 +59,7 @@ public class FilteringAddRuleScreen extends Screen {
super.init();
{
Component backText = new TextComponent("↩ ").append(new TranslatableComponent("gui.back"));
- addButton(new Button(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20, backText, button -> {
+ addRenderableWidget(new Button(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20, backText, button -> {
minecraft.setScreen(parent);
this.parent = null;
}));
@@ -191,5 +192,10 @@ public class FilteringAddRuleScreen extends Screen {
public List<? extends GuiEventListener> children() {
return Collections.singletonList(addButton);
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return Collections.singletonList(addButton);
+ }
}
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java
index 6c484cf07..498054393 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringEntry.java
@@ -36,6 +36,7 @@ import net.minecraft.client.gui.chat.NarratorChatListener;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.network.chat.TranslatableComponent;
import org.jetbrains.annotations.ApiStatus;
@@ -57,7 +58,7 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>>>
filteringRulesScreen.parent = Minecraft.getInstance().screen;
Minecraft.getInstance().setScreen(filteringRulesScreen);
});
- private final List<GuiEventListener> children = ImmutableList.of(buttonWidget);
+ private final List<AbstractWidget> children = ImmutableList.of(buttonWidget);
public FilteringEntry(int width, List<EntryStack<?>> configFiltered, List<FilteringRule<?>> rules, List<EntryStack<?>> defaultValue, Consumer<List<EntryStack<?>>> saveConsumer, Consumer<List<FilteringRule<?>>> rulesSaveConsumer) {
super(NarratorChatListener.NO_TITLE, false);
@@ -104,6 +105,11 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>>>
}
@Override
+ public List<? extends NarratableEntry> narratables() {
+ return children;
+ }
+
+ @Override
public boolean isEdited() {
return super.isEdited() || edited;
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java
index 6abeef0c2..de973d768 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java
@@ -30,6 +30,7 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
@@ -62,7 +63,7 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
{
Component doneText = new TranslatableComponent("gui.done");
int width = Minecraft.getInstance().font.width(doneText);
- addButton(new Button(this.width - 4 - width - 10, 4, width + 10, 20, doneText, button -> {
+ addRenderableWidget(new Button(this.width - 4 - width - 10, 4, width + 10, 20, doneText, button -> {
save();
minecraft.setScreen(parent);
}));
@@ -147,6 +148,11 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
public List<? extends GuiEventListener> children() {
return Collections.emptyList();
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return Collections.emptyList();
+ }
}
public static class EmptyRuleEntry extends RuleEntry {
@@ -170,6 +176,11 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
public List<? extends GuiEventListener> children() {
return Collections.emptyList();
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return Collections.emptyList();
+ }
}
public static class TextFieldRuleEntry extends RuleEntry {
@@ -201,6 +212,11 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
public List<? extends GuiEventListener> children() {
return Collections.singletonList(widget);
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return Collections.singletonList(widget);
+ }
}
public static class BooleanRuleEntry extends RuleEntry {
@@ -236,5 +252,10 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
public List<? extends GuiEventListener> children() {
return Collections.singletonList(widget);
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return Collections.singletonList(widget);
+ }
}
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
index a7722dd1a..ac81c87af 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
@@ -30,7 +30,11 @@ import me.shedaniel.rei.impl.client.entry.filtering.FilteringRule;
import me.shedaniel.rei.impl.client.entry.filtering.rules.ManualFilteringRule;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
+import net.minecraft.client.gui.components.ContainerObjectSelectionList;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
+import net.minecraft.client.gui.narration.NarratedElementType;
+import net.minecraft.client.gui.narration.NarrationElementOutput;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.resources.sounds.SimpleSoundInstance;
import net.minecraft.locale.Language;
@@ -63,14 +67,14 @@ public class FilteringRulesScreen extends Screen {
super.init();
{
Component backText = new TextComponent("↩ ").append(new TranslatableComponent("gui.back"));
- addButton(new Button(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20, backText, button -> {
+ addRenderableWidget(new Button(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20, backText, button -> {
minecraft.setScreen(parent);
this.parent = null;
}));
}
{
Component addText = new TextComponent(" + ");
- addButton(new Button(width - 4 - 20, 4, 20, 20, addText, button -> {
+ addRenderableWidget(new Button(width - 4 - 20, 4, 20, 20, addText, button -> {
FilteringAddRuleScreen screen = new FilteringAddRuleScreen(entry);
screen.parent = this;
minecraft.setScreen(screen);
@@ -244,5 +248,10 @@ public class FilteringRulesScreen extends Screen {
public List<? extends GuiEventListener> children() {
return Arrays.asList(configureButton, deleteButton);
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return Arrays.asList(configureButton, deleteButton);
+ }
}
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java
index 4cf03088e..2db7bebdf 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/NoFilteringEntry.java
@@ -33,6 +33,7 @@ import net.minecraft.client.gui.chat.NarratorChatListener;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.network.chat.TranslatableComponent;
import org.jetbrains.annotations.ApiStatus;
@@ -47,7 +48,7 @@ public class NoFilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>
private List<EntryStack<?>> defaultValue;
private List<EntryStack<?>> configFiltered;
private final AbstractWidget buttonWidget = new Button(0, 0, 0, 20, new TranslatableComponent("config.roughlyenoughitems.filteredEntries.loadWorldFirst"), button -> {});
- private final List<GuiEventListener> children = ImmutableList.of(buttonWidget);
+ private final List<AbstractWidget> children = ImmutableList.of(buttonWidget);
public NoFilteringEntry(int width, List<EntryStack<?>> configFiltered, List<EntryStack<?>> defaultValue, Consumer<List<EntryStack<?>>> saveConsumer) {
super(NarratorChatListener.NO_TITLE, false);
@@ -87,4 +88,9 @@ public class NoFilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>
public List<? extends GuiEventListener> children() {
return children;
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return children;
+ }
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/RecipeScreenTypeEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/RecipeScreenTypeEntry.java
index 2e30e76ff..7950a6f23 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/RecipeScreenTypeEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/RecipeScreenTypeEntry.java
@@ -33,7 +33,9 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.chat.NarratorChatListener;
import net.minecraft.client.gui.components.AbstractButton;
import net.minecraft.client.gui.components.AbstractWidget;
+import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
@@ -47,22 +49,19 @@ public class RecipeScreenTypeEntry extends TooltipListEntry<DisplayScreenType> {
private DisplayScreenType type;
private DisplayScreenType defaultValue;
private Consumer<DisplayScreenType> save;
- private final AbstractWidget buttonWidget = new AbstractButton(0, 0, 0, 20, NarratorChatListener.NO_TITLE) {
- @Override
- public void onPress() {
- Minecraft.getInstance().setScreen(new UncertainDisplayViewingScreen(getConfigScreen(), type, false, original -> {
- Minecraft.getInstance().setScreen(getConfigScreen());
- type = original ? DisplayScreenType.ORIGINAL : DisplayScreenType.COMPOSITE;
- }));
- }
-
+ private final AbstractWidget buttonWidget = new Button(0, 0, 0, 20, NarratorChatListener.NO_TITLE, button -> {
+ Minecraft.getInstance().setScreen(new UncertainDisplayViewingScreen(getConfigScreen(), type, false, original -> {
+ Minecraft.getInstance().setScreen(getConfigScreen());
+ type = original ? DisplayScreenType.ORIGINAL : DisplayScreenType.COMPOSITE;
+ }));
+ }) {
@Override
public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
setMessage(new TranslatableComponent("config.roughlyenoughitems.recipeScreenType.config", type.toString()));
super.render(matrices, mouseX, mouseY, delta);
}
};
- private final List<GuiEventListener> children = ImmutableList.of(buttonWidget);
+ private final List<AbstractWidget> children = ImmutableList.of(buttonWidget);
@SuppressWarnings("deprecation")
public RecipeScreenTypeEntry(int width, Component fieldName, DisplayScreenType type, DisplayScreenType defaultValue, Consumer<DisplayScreenType> save) {
@@ -100,6 +99,11 @@ public class RecipeScreenTypeEntry extends TooltipListEntry<DisplayScreenType> {
}
@Override
+ public List<? extends NarratableEntry> narratables() {
+ return children;
+ }
+
+ @Override
public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
super.render(matrices, index, y, x, entryWidth, entryHeight, mouseX, mouseY, isSelected, delta);
Window window = Minecraft.getInstance().getWindow();
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ReloadPluginsEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ReloadPluginsEntry.java
index cadbe569c..9766b436c 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ReloadPluginsEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ReloadPluginsEntry.java
@@ -32,9 +32,11 @@ import me.shedaniel.rei.api.common.plugins.PluginManager;
import me.shedaniel.rei.impl.client.gui.screen.ConfigReloadingScreen;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.chat.NarratorChatListener;
+import net.minecraft.client.gui.components.AbstractButton;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.util.Unit;
@@ -57,7 +59,7 @@ public class ReloadPluginsEntry extends AbstractConfigListEntry<Unit> {
}
}
};
- private List<GuiEventListener> children = ImmutableList.of(buttonWidget);
+ private List<AbstractWidget> children = ImmutableList.of(buttonWidget);
public ReloadPluginsEntry(int width) {
super(NarratorChatListener.NO_TITLE, false);
@@ -95,4 +97,9 @@ public class ReloadPluginsEntry extends AbstractConfigListEntry<Unit> {
public List<? extends GuiEventListener> children() {
return children;
}
+
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return children;
+ }
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/SearchFilterSyntaxHighlightingEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/SearchFilterSyntaxHighlightingEntry.java
index 8d9afcfd4..ce853a3aa 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/SearchFilterSyntaxHighlightingEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/SearchFilterSyntaxHighlightingEntry.java
@@ -32,7 +32,9 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.chat.NarratorChatListener;
import net.minecraft.client.gui.components.AbstractButton;
import net.minecraft.client.gui.components.AbstractWidget;
+import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
@@ -45,19 +47,14 @@ public class SearchFilterSyntaxHighlightingEntry extends TooltipListEntry<Syntax
private SyntaxHighlightingMode type;
private SyntaxHighlightingMode defaultValue;
private Consumer<SyntaxHighlightingMode> save;
- private final AbstractWidget buttonWidget = new AbstractButton(0, 0, 0, 20, NarratorChatListener.NO_TITLE) {
- @Override
- public void onPress() {
-
- }
-
+ private final AbstractWidget buttonWidget = new Button(0, 0, 0, 20, NarratorChatListener.NO_TITLE, $ -> {}) {
@Override
public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
setMessage(new TextComponent(type.toString()));
super.render(matrices, mouseX, mouseY, delta);
}
};
- private final List<GuiEventListener> children = ImmutableList.of(buttonWidget);
+ private final List<AbstractWidget> children = ImmutableList.of(buttonWidget);
@SuppressWarnings("deprecation")
public SearchFilterSyntaxHighlightingEntry(Component fieldName, SyntaxHighlightingMode type, SyntaxHighlightingMode defaultValue, Consumer<SyntaxHighlightingMode> save) {
@@ -94,6 +91,11 @@ public class SearchFilterSyntaxHighlightingEntry extends TooltipListEntry<Syntax
}
@Override
+ public List<? extends NarratableEntry> narratables() {
+ return children;
+ }
+
+ @Override
public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
super.render(matrices, index, y, x, entryWidth, entryHeight, mouseX, mouseY, isSelected, delta);
Window window = Minecraft.getInstance().getWindow();
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java
index bffbb7287..73e80c2fe 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java
@@ -30,6 +30,7 @@ import net.minecraft.ChatFormatting;
import net.minecraft.Util;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiComponent;
+import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.client.resources.sounds.SimpleSoundInstance;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
@@ -39,6 +40,7 @@ import org.jetbrains.annotations.ApiStatus;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Collections;
import java.util.List;
@ApiStatus.Internal
@@ -89,7 +91,10 @@ public class CreditsEntryListWidget extends DynamicNewSmoothScrollingEntryListWi
}
public static abstract class CreditsItem extends DynamicNewSmoothScrollingEntryListWidget.Entry<CreditsItem> {
-
+ @Override
+ public List<? extends NarratableEntry> narratables() {
+ return Collections.emptyList();
+ }
}
public static class TextCreditsItem extends CreditsItem {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java
index a4c0bedcb..39f44a8a9 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java
@@ -73,7 +73,7 @@ public class CreditsScreen extends Screen {
@Override
public void init() {
- children.add(entryListWidget = new CreditsEntryListWidget(minecraft, width, height, 32, height - 32));
+ addWidget(entryListWidget = new CreditsEntryListWidget(minecraft, width, height, 32, height - 32));
entryListWidget.creditsClearEntries();
List<Tuple<String, String>&