From 6b50609e7670f25662394e5d6f6ec8b974d07a3d Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 30 May 2020 00:47:22 +0800 Subject: 20w22a Signed-off-by: shedaniel --- .../shedaniel/rei/gui/PreRecipeViewingScreen.java | 3 +- .../shedaniel/rei/gui/RecipeDisplayExporter.java | 3 +- .../shedaniel/rei/gui/WarningAndErrorScreen.java | 31 +++++++++++----- .../rei/gui/config/entry/FilteringEntry.java | 8 ++-- .../rei/gui/config/entry/NoFilteringEntry.java | 3 +- .../rei/gui/credits/CreditsEntryListWidget.java | 5 ++- .../me/shedaniel/rei/impl/ConfigManagerImpl.java | 43 ---------------------- .../information/DefaultInformationCategory.java | 11 +++--- 8 files changed, 41 insertions(+), 66 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java index 603243fd2..d57a9bbfd 100644 --- a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java @@ -34,6 +34,7 @@ import me.shedaniel.rei.gui.config.RecipeScreenType; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.WidgetWithBounds; import me.shedaniel.rei.impl.ScreenHelper; +import net.minecraft.class_5348; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.Screen; @@ -127,7 +128,7 @@ public class PreRecipeViewingScreen extends Screen { this.drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 20, 16777215); if (showTips) { int i = 30; - for (Text s : this.textRenderer.wrapStringToWidthAsList(new TranslatableText("text.rei.recipe_screen_type.selection.sub").formatted(Formatting.GRAY), width - 30)) { + for (class_5348 s : this.textRenderer.wrapStringToWidthAsList(new TranslatableText("text.rei.recipe_screen_type.selection.sub").formatted(Formatting.GRAY), width - 30)) { this.drawCenteredText(matrices, this.textRenderer, s, width / 2, i, -1); i += 10; } diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeDisplayExporter.java b/src/main/java/me/shedaniel/rei/gui/RecipeDisplayExporter.java index b42bd6601..3d9b98081 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeDisplayExporter.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeDisplayExporter.java @@ -23,6 +23,7 @@ package me.shedaniel.rei.gui; +import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.gui.toast.ExportRecipeIdentifierToast; @@ -75,7 +76,7 @@ public final class RecipeDisplayExporter extends Widget { RenderSystem.pushMatrix(); MinecraftClient client = MinecraftClient.getInstance(); Window window = client.getWindow(); - Framebuffer framebuffer = new Framebuffer(window.getFramebufferWidth(), window.getFramebufferHeight(), false, false); + Framebuffer framebuffer = new Framebuffer(window.getFramebufferWidth(), window.getFramebufferHeight(), true, false); framebuffer.beginWrite(true); RenderSystem.viewport(0, 0, window.getFramebufferWidth(), window.getFramebufferHeight()); RenderSystem.clear(256, MinecraftClient.IS_SYSTEM_MAC); diff --git a/src/main/java/me/shedaniel/rei/gui/WarningAndErrorScreen.java b/src/main/java/me/shedaniel/rei/gui/WarningAndErrorScreen.java index 56bfed9a2..4f0fadedc 100644 --- a/src/main/java/me/shedaniel/rei/gui/WarningAndErrorScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/WarningAndErrorScreen.java @@ -25,6 +25,7 @@ package me.shedaniel.rei.gui; import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWidget; import me.shedaniel.rei.RoughlyEnoughItemsState; +import net.minecraft.class_5348; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.screen.Screen; @@ -32,9 +33,11 @@ import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.sound.PositionedSoundInstance; import net.minecraft.client.util.NarratorManager; +import net.minecraft.client.util.TextCollector; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.sound.SoundEvents; import net.minecraft.text.LiteralText; +import net.minecraft.text.Style; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Lazy; @@ -44,6 +47,7 @@ import org.jetbrains.annotations.ApiStatus; import java.net.URI; import java.net.URISyntaxException; +import java.util.Optional; @ApiStatus.Internal public class WarningAndErrorScreen extends Screen { @@ -66,14 +70,14 @@ public class WarningAndErrorScreen extends Screen { } private void addText(Text string) { - for (Text s : textRenderer.wrapStringToWidthAsList(string, width - 80)) { + for (class_5348 s : textRenderer.wrapStringToWidthAsList(string, width - 80)) { listWidget.creditsAddEntry(new TextItem(s)); } } private void addLink(Text string, String link) { - for (Text s : textRenderer.wrapStringToWidthAsList(string, width - 80)) { - listWidget.creditsAddEntry(new LinkItem(s.getString(), link)); + for (class_5348 s : textRenderer.wrapStringToWidthAsList(string, width - 80)) { + listWidget.creditsAddEntry(new LinkItem(s, link)); } } @@ -210,9 +214,9 @@ public class WarningAndErrorScreen extends Screen { } private static class TextItem extends StringItem { - private Text text; + private class_5348 text; - public TextItem(Text text) { + public TextItem(class_5348 text) { this.text = text; } @@ -238,11 +242,11 @@ public class WarningAndErrorScreen extends Screen { } private class LinkItem extends StringItem { - private String text; + private class_5348 text; private String link; private boolean contains; - public LinkItem(String text, String link) { + public LinkItem(class_5348 text, String link) { this.text = text; this.link = link; } @@ -252,7 +256,16 @@ public class WarningAndErrorScreen extends Screen { contains = mouseX >= x && mouseX <= x + entryWidth && mouseY >= y && mouseY <= y + entryHeight; if (contains) { WarningAndErrorScreen.this.renderTooltip(matrices, new LiteralText("Click to open link."), mouseX, mouseY); - MinecraftClient.getInstance().textRenderer.drawWithShadow(matrices, "§n" + text, x + 5, y, 0xff1fc3ff); + class_5348 underlined = text.visit(new class_5348.StyledVisitor() { + TextCollector collector = new TextCollector(); + + @Override + public Optional accept(Style style, String asString) { + collector.add(class_5348.method_29431(asString, style)); + return Optional.of(collector.getCombined()); + } + }, Style.EMPTY.withFormatting(Formatting.UNDERLINE)).orElse(text); + MinecraftClient.getInstance().textRenderer.drawWithShadow(matrices, underlined, x + 5, y, 0xff1fc3ff); } else { MinecraftClient.getInstance().textRenderer.drawWithShadow(matrices, text, x + 5, y, 0xff1fc3ff); } @@ -270,7 +283,7 @@ public class WarningAndErrorScreen extends Screen { @Override public int getWidth() { - return MinecraftClient.getInstance().textRenderer.getStringWidth(text) + 10; + return MinecraftClient.getInstance().textRenderer.getWidth(text) + 10; } @Override diff --git a/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java b/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java index 8b56fb1a2..5b8306c3f 100644 --- a/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java +++ b/src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java @@ -29,7 +29,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.clothconfig2.ClothConfigInitializer; import me.shedaniel.clothconfig2.api.AbstractConfigListEntry; import me.shedaniel.clothconfig2.api.ScrollingContainer; -import me.shedaniel.clothconfig2.gui.ClothConfigScreen; +import me.shedaniel.clothconfig2.gui.widget.DynamicEntryListWidget; import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWidget; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; @@ -87,7 +87,7 @@ public class FilteringEntry extends AbstractConfigListEntry> { private List defaultValue; private List configFiltered; private Tooltip tooltip = null; - @SuppressWarnings("rawtypes") private ClothConfigScreen.ListWidget lastList = null; + @SuppressWarnings("rawtypes") private DynamicEntryListWidget lastList = null; private List entryStacks = null; private Rectangle innerBounds; private List entries = Collections.emptyList(); @@ -163,7 +163,7 @@ public class FilteringEntry extends AbstractConfigListEntry> { @SuppressWarnings("rawtypes") public Rectangle getBounds() { - ClothConfigScreen.ListWidget listWidget = getParent(); + DynamicEntryListWidget listWidget = getParent(); return new Rectangle(listWidget.left, listWidget.top, listWidget.right - listWidget.left, listWidget.bottom - listWidget.top); } @@ -191,7 +191,7 @@ public class FilteringEntry extends AbstractConfigListEntry> { @SuppressWarnings("rawtypes") @Override public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) { - ClothConfigScreen.ListWidget parent = getParent(); + DynamicEntryListWidget parent = getParent(); Rectangle bounds = getBounds(); if (lastList != parent) { updateSearch(this.searchField.getText()); diff --git a/src/main/java/me/shedaniel/rei/gui/config/entry/NoFilteringEntry.java b/src/main/java/me/shedaniel/rei/gui/config/entry/NoFilteringEntry.java index d5e96c722..5e897e051 100644 --- a/src/main/java/me/shedaniel/rei/gui/config/entry/NoFilteringEntry.java +++ b/src/main/java/me/shedaniel/rei/gui/config/entry/NoFilteringEntry.java @@ -25,6 +25,7 @@ package me.shedaniel.rei.gui.config.entry; import me.shedaniel.clothconfig2.api.AbstractConfigListEntry; import me.shedaniel.clothconfig2.gui.ClothConfigScreen; +import me.shedaniel.clothconfig2.gui.widget.DynamicEntryListWidget; import me.shedaniel.rei.api.EntryStack; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; @@ -69,7 +70,7 @@ public class NoFilteringEntry extends AbstractConfigListEntry> @SuppressWarnings("rawtypes") @Override public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) { - ClothConfigScreen.ListWidget parent = getParent(); + DynamicEntryListWidget parent = getParent(); drawCenteredString(matrices, MinecraftClient.getInstance().textRenderer, I18n.translate("config.roughlyenoughitems.filteredEntries.loadWorldFirst"), (parent.right - parent.left) / 2 + parent.left, (parent.bottom - parent.top) / 2 + parent.top - 5, -1); } diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java index fd79e4f24..be8f9f653 100644 --- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.gui.credits; import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWidget; +import net.minecraft.class_5348; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.util.math.MatrixStack; @@ -108,7 +109,7 @@ public class CreditsEntryListWidget extends DynamicNewSmoothScrollingEntryListWi public static class TranslationCreditsItem extends CreditsItem { private Text language; - private List translators; + private List translators; private int maxWidth; public TranslationCreditsItem(Text language, Text translators, int width, int maxWidth) { @@ -121,7 +122,7 @@ public class CreditsEntryListWidget extends DynamicNewSmoothScrollingEntryListWi public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) { MinecraftClient.getInstance().textRenderer.drawWithShadow(matrices, language, x + 5, y + 5, -1); int yy = y + 5; - for (Text translator : translators) { + for (class_5348 translator : translators) { MinecraftClient.getInstance().textRenderer.drawWithShadow(matrices, translator, x + 5 + maxWidth, yy, -1); yy += 12; } diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java index 80b9a9378..35d419031 100644 --- a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java @@ -23,7 +23,6 @@ package me.shedaniel.rei.impl; -import com.google.common.collect.ImmutableList; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; @@ -37,12 +36,10 @@ import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.JsonObje import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.JsonPrimitive; import me.sargunvohra.mcmods.autoconfig1u.util.Utils; import me.shedaniel.cloth.hooks.ScreenHooks; -import me.shedaniel.clothconfig2.ClothConfigInitializer; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import me.shedaniel.clothconfig2.api.Modifier; import me.shedaniel.clothconfig2.api.ModifierKeyCode; import me.shedaniel.clothconfig2.gui.entries.KeyCodeEntry; -import me.shedaniel.clothconfig2.gui.entries.TooltipListEntry; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; import me.shedaniel.rei.gui.ConfigReloadingScreen; @@ -53,13 +50,9 @@ import me.shedaniel.rei.gui.config.entry.NoFilteringEntry; import me.shedaniel.rei.gui.config.entry.RecipeScreenTypeEntry; import me.shedaniel.rei.gui.credits.CreditsScreen; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.AbstractButtonWidget; -import net.minecraft.client.gui.widget.AbstractPressableButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.util.InputUtil; -import net.minecraft.client.util.Window; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.LiteralText; import net.minecraft.text.TranslatableText; @@ -69,7 +62,6 @@ import org.jetbrains.annotations.ApiStatus; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Optional; import static me.sargunvohra.mcmods.autoconfig1u.util.Utils.getUnsafely; import static me.sargunvohra.mcmods.autoconfig1u.util.Utils.setUnsafely; @@ -164,41 +156,6 @@ public class ConfigManagerImpl implements ConfigManager { provider.setOptionFunction((baseI13n, field) -> field.isAnnotationPresent(ConfigObjectImpl.DontApplyFieldName.class) ? baseI13n : String.format("%s.%s", baseI13n, field.getName())); provider.setCategoryFunction((baseI13n, categoryName) -> String.format("%s.%s", baseI13n, categoryName)); provider.setBuildFunction(builder -> { - builder.getOrCreateCategory(new TranslatableText("config.roughlyenoughitems.!general")).addEntry(new TooltipListEntry(new TranslatableText("config.roughlyenoughitems.smooth_scrolling"), null) { - int width = 220; - private AbstractButtonWidget buttonWidget = new AbstractPressableButtonWidget(0, 0, 0, 20, this.getFieldName()) { - public void onPress() { - Screen screen = ClothConfigInitializer.getConfigBuilder().setTitle(new LiteralText("Smooth Scrolling Settings")).build(); - MinecraftClient.getInstance().openScreen(screen); - } - }; - private List children = ImmutableList.of(this.buttonWidget); - - public Object getValue() { - return null; - } - - public Optional getDefaultValue() { - return Optional.empty(); - } - - public void save() { - } - - public List children() { - return this.children; - } - - public void render(MatrixStack 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 = MinecraftClient.getInstance().getWindow(); - this.buttonWidget.active = this.isEditable(); - this.buttonWidget.y = y; - this.buttonWidget.x = x + entryWidth / 2 - this.width / 2; - this.buttonWidget.setWidth(this.width); - this.buttonWidget.render(matrices, mouseX, mouseY, delta); - } - }); return builder.setAfterInitConsumer(screen -> { if (MinecraftClient.getInstance().getNetworkHandler() != null && MinecraftClient.getInstance().getNetworkHandler().getRecipeManager() != null) { ((ScreenHooks) screen).cloth_addButton(new net.minecraft.client.gui.widget.ButtonWidget(4, 4, 100, 20, new TranslatableText("text.rei.reload_config"), buttonWidget -> { diff --git a/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java b/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java index 6eeb85d0f..c2ee608e9 100644 --- a/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java @@ -27,6 +27,7 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.clothconfig2.ClothConfigInitializer; import me.shedaniel.clothconfig2.api.ScissorsHandler; +import me.shedaniel.clothconfig2.api.ScrollingContainer; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.EntryStack; @@ -34,11 +35,11 @@ import me.shedaniel.rei.api.REIHelper; import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.entries.RecipeEntry; -import me.shedaniel.clothconfig2.api.ScrollingContainer; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.WidgetWithBounds; import me.shedaniel.rei.impl.RenderingEntry; import me.shedaniel.rei.plugin.DefaultPlugin; +import net.minecraft.class_5348; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; import net.minecraft.client.render.BufferBuilder; @@ -133,7 +134,7 @@ public class DefaultInformationCategory implements RecipeCategory texts; + private List texts; private final ScrollingContainer scrolling = new ScrollingContainer() { @Override public Rectangle getBounds() { @@ -144,7 +145,7 @@ public class DefaultInformationCategory implements RecipeCategory texts) { this.bounds = Objects.requireNonNull(bounds); this.texts = Lists.newArrayList(); - for (Text text : texts) { + for (class_5348 text : texts) { if (!this.texts.isEmpty()) this.texts.add(null); this.texts.addAll(MinecraftClient.getInstance().textRenderer.wrapStringToWidthAsList(text, bounds.width - 11)); @@ -196,7 +197,7 @@ public class DefaultInformationCategory implements RecipeCategory= innerBounds.y && currentY <= innerBounds.getMaxY()) { font.draw(matrices, text, innerBounds.x + 2, currentY + 2, REIHelper.getInstance().isDarkThemeEnabled() ? 0xFFBBBBBB : 0xFF090909); } -- cgit