aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeDisplayExporter.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/WarningAndErrorScreen.java31
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/entry/NoFilteringEntry.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java5
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java43
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java11
8 files changed, 41 insertions, 66 deletions
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<class_5348>() {
+ TextCollector collector = new TextCollector();
+
+ @Override
+ public Optional<class_5348> 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<List<EntryStack>> {
private List<EntryStack> defaultValue;
private List<EntryStack> configFiltered;
private Tooltip tooltip = null;
- @SuppressWarnings("rawtypes") private ClothConfigScreen.ListWidget lastList = null;
+ @SuppressWarnings("rawtypes") private DynamicEntryListWidget lastList = null;
private List<EntryStack> entryStacks = null;
private Rectangle innerBounds;
private List<EntryListEntry> entries = Collections.emptyList();
@@ -163,7 +163,7 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack>> {
@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<List<EntryStack>> {
@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<List<EntryStack>>
@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<Text> translators;
+ private List<class_5348> 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<Object>(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<Element> children = ImmutableList.of(this.buttonWidget);
-
- public Object getValue() {
- return null;
- }
-
- public Optional<Object> getDefaultValue() {
- return Optional.empty();
- }
-
- public void save() {
- }
-
- public List<? extends Element> 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<DefaultInforma
private static class ScrollableTextWidget extends WidgetWithBounds {
private Rectangle bounds;
- private List<Text> texts;
+ private List<class_5348> texts;
private final ScrollingContainer scrolling = new ScrollingContainer() {
@Override
public Rectangle getBounds() {
@@ -144,7 +145,7 @@ public class DefaultInformationCategory implements RecipeCategory<DefaultInforma
@Override
public int getMaxScrollHeight() {
int i = 2;
- for (Text entry : texts) {
+ for (class_5348 entry : texts) {
i += entry == null ? 4 : font.fontHeight;
}
return i;
@@ -154,7 +155,7 @@ public class DefaultInformationCategory implements RecipeCategory<DefaultInforma
public ScrollableTextWidget(Rectangle bounds, List<Text> 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<DefaultInforma
Rectangle innerBounds = scrolling.getScissorBounds();
ScissorsHandler.INSTANCE.scissor(innerBounds);
int currentY = (int) -scrolling.scrollAmount + innerBounds.y;
- for (Text text : texts) {
+ for (class_5348 text : texts) {
if (text != null && currentY + font.fontHeight >= innerBounds.y && currentY <= innerBounds.getMaxY()) {
font.draw(matrices, text, innerBounds.x + 2, currentY + 2, REIHelper.getInstance().isDarkThemeEnabled() ? 0xFFBBBBBB : 0xFF090909);
}