diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-05-22 04:10:24 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-05-22 04:10:24 +0800 |
| commit | e82ab958bc7d13e556d7426b7a1862ec76e23eba (patch) | |
| tree | 6b4dd9517552e4a21ce723c46151cddd84cb706d | |
| parent | 114a076d4556290d63dc4a93c13f24d14d3c09a5 (diff) | |
| download | RoughlyEnoughItems-e82ab958bc7d13e556d7426b7a1862ec76e23eba.tar.gz RoughlyEnoughItems-e82ab958bc7d13e556d7426b7a1862ec76e23eba.tar.bz2 RoughlyEnoughItems-e82ab958bc7d13e556d7426b7a1862ec76e23eba.zip | |
Initial port to 21w20a
25 files changed, 267 insertions, 96 deletions
diff --git a/build.gradle b/build.gradle index d8e0fb21f..a41934159 100755 --- a/build.gradle +++ b/build.gradle @@ -60,10 +60,7 @@ allprojects { tasks.withType(JavaCompile) { options.encoding = "UTF-8" - def targetVersion = 8 - if (JavaVersion.current().isJava9Compatible()) { - options.release = targetVersion - } + options.release = 16 } } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java index 325995f52..05f670dcf 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java @@ -44,7 +44,6 @@ import me.shedaniel.rei.api.client.registry.screen.ExclusionZones; import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry; import me.shedaniel.rei.api.client.registry.transfer.TransferHandlerRegistry; import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; import me.shedaniel.rei.api.common.util.CollectionUtils; import me.shedaniel.rei.api.common.util.EntryIngredients; import me.shedaniel.rei.api.common.util.EntryStacks; @@ -258,9 +257,6 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin DummyAxeItem.getStrippedBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> { registry.add(new DefaultStrippingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue()))); }); - DummyHoeItem.getTilledBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> { - registry.add(new DefaultTillingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock()))); - }); DummyShovelItem.getPathBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> { registry.add(new DefaultPathingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock()))); }); @@ -380,15 +376,4 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin return STRIPPABLES; } } - - public static class DummyHoeItem extends HoeItem { - public DummyHoeItem(Tier tier, int i, float f, Properties properties) { - super(tier, i, f, properties); - } - - public static Map<Block, BlockState> getTilledBlocksMap() { - return TILLABLES; - } - } - } diff --git a/fabric/src/main/resources/roughlyenoughitems.accessWidener b/fabric/src/main/resources/roughlyenoughitems.accessWidener index 555e7bc91..74966e6f4 100644 --- a/fabric/src/main/resources/roughlyenoughitems.accessWidener +++ b/fabric/src/main/resources/roughlyenoughitems.accessWidener @@ -32,4 +32,8 @@ accessible method net/minecraft/client/gui/screens/Screen accessible method net/minecraft/client/gui/screens/Screen insertText (Ljava/lang/String;Z)V accessible method net/minecraft/client/gui/screens/Screen isValidCharacterForName (Ljava/lang/String;CI)Z accessible field net/minecraft/client/gui/screens/inventory/AbstractContainerScreen draggingItem Lnet/minecraft/world/item/ItemStack; -mutable field net/minecraft/client/gui/screens/inventory/AbstractContainerScreen draggingItem Lnet/minecraft/world/item/ItemStack;
\ No newline at end of file +mutable field net/minecraft/client/gui/screens/inventory/AbstractContainerScreen draggingItem Lnet/minecraft/world/item/ItemStack; +extendable method net/minecraft/client/gui/screens/Screen init (Lnet/minecraft/client/Minecraft;II)V +accessible method net/minecraft/client/gui/screens/Screen addRenderableWidget (Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; +accessible method net/minecraft/client/gui/screens/Screen addRenderableOnly (Lnet/minecraft/client/gui/components/Widget;)Lnet/minecraft/client/gui/components/Widget; +accessible method net/minecraft/client/gui/screens/Screen addWidget (Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener;
\ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 25ff411b4..8b4fa6b01 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,14 @@ org.gradle.jvmargs=-Xmx3G base_version=6.0.0 unstable=true -supported_version=21w19a -minecraft_version=21w19a +supported_version=21w20a +minecraft_version=21w20a forgeEnabled=false forge_version=36.0.43 fabricloader_version=0.11.3 -cloth_config_version=5.0.23 +cloth_config_version=5.0.33 modmenu_version=2.0.0-beta.4 -fabric_api=0.34.4+1.17 -architectury_version=2.0.154 +fabric_api=0.34.5+1.17 +architectury_version=2.0.11 api_exculde= #api_include=me.shedaniel.cloth:cloth-events,me.shedaniel.cloth:config-2,me.sargunvohra.mcmods:autoconfig1u,org.jetbrains:annotations,net.fabricmc.fabric-api:fabric-
\ No newline at end of file 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; |
