diff options
Diffstat (limited to 'runtime')
49 files changed, 187 insertions, 166 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java index 43204cec1..9877f9343 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java @@ -47,7 +47,6 @@ import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; import me.shedaniel.rei.api.common.util.EntryStacks; import me.shedaniel.rei.api.common.util.FormattingUtils; import me.shedaniel.rei.impl.ClientInternals; -import me.shedaniel.rei.impl.VersionAdapter; import me.shedaniel.rei.impl.client.gui.screen.CompositeDisplayViewingScreen; import me.shedaniel.rei.impl.client.gui.screen.DefaultDisplayViewingScreen; import me.shedaniel.rei.impl.client.view.ViewsImpl; @@ -226,7 +225,7 @@ public class ClientHelperImpl implements ClientHelper { madeUpCommand = og.replaceAll("\\{player_name}", Minecraft.getInstance().player.getScoreboardName()).replaceAll("\\{item_name}", identifier.getPath()).replaceAll("\\{item_identifier}", identifier.toString()).replaceAll("\\{nbt}", "").replaceAll("\\{count}", String.valueOf(cheatedStack.getCount())); Minecraft.getInstance().player.displayClientMessage(Component.translatable("text.rei.too_long_nbt"), false); } - VersionAdapter.INSTANCE.sendCommand(StringUtils.removeStart(madeUpCommand, "/")); + Minecraft.getInstance().player.connection.sendCommand(StringUtils.removeStart(madeUpCommand, "/")); return true; } } 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 f69b56d9a..faa56785e 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 @@ -46,7 +46,6 @@ import me.shedaniel.clothconfig2.gui.AbstractConfigScreen; import me.shedaniel.clothconfig2.gui.GlobalizedClothConfigScreen; import me.shedaniel.clothconfig2.gui.entries.KeyCodeEntry; import me.shedaniel.clothconfig2.gui.entries.TextListEntry; -import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.client.REIRuntime; import me.shedaniel.rei.api.client.config.ConfigManager; import me.shedaniel.rei.api.client.config.addon.ConfigAddonRegistry; @@ -90,6 +89,7 @@ import org.jetbrains.annotations.ApiStatus; import java.util.*; import java.util.function.Consumer; +import java.util.function.Supplier; import static me.shedaniel.autoconfig.util.Utils.getUnsafely; import static me.shedaniel.autoconfig.util.Utils.setUnsafely; @@ -422,7 +422,7 @@ public class ConfigManagerImpl implements ConfigManager { ScreenHooks.addRenderableWidget(screen, new Button(screen.width - 104, 4, 100, 20, Component.translatable("text.rei.credits"), button -> { CreditsScreen creditsScreen = new CreditsScreen(screen); Minecraft.getInstance().setScreen(creditsScreen); - })); + }, Button.NO_TOOLTIP, Supplier::get) {}); }).setSavingRunnable(() -> { saveConfig(); EntryRegistry.getInstance().refilter(); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java index 0fe6a4e85..85329ac9f 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java @@ -41,6 +41,7 @@ import net.minecraft.resources.ResourceLocation; import java.util.Collections; import java.util.List; +import java.util.function.Supplier; public class ConfigAddonsScreen extends Screen { private AddonsList rulesList; @@ -56,9 +57,9 @@ public class ConfigAddonsScreen extends Screen { super.init(); { Component backText = Component.literal("↩ ").append(Component.translatable("gui.back")); - addRenderableWidget(new Button(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20, backText, button -> { + addRenderableWidget(Button.builder(backText, button -> { minecraft.setScreen(parent); - })); + }).bounds(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20).build()); } rulesList = addWidget(new AddonsList(minecraft, width, height, 30, height, BACKGROUND_LOCATION)); ConfigAddonRegistryImpl addonRegistry = (ConfigAddonRegistryImpl) ConfigAddonRegistry.getInstance(); @@ -138,12 +139,12 @@ public class ConfigAddonsScreen extends Screen { this.addon = addon; this.configureButton = new Button(0, 0, 20, 20, Component.nullToEmpty(null), button -> { Minecraft.getInstance().setScreen(this.addon.createScreen(Minecraft.getInstance().screen)); - }) { + }, Button.NO_TOOLTIP, Supplier::get) { @Override protected void renderBg(PoseStack matrices, Minecraft client, int mouseX, int mouseY) { super.renderBg(matrices, client, mouseX, mouseY); RenderSystem.setShaderTexture(0, InternalTextures.CHEST_GUI_TEXTURE); - blit(matrices, x + 3, y + 3, 0, 0, 14, 14); + blit(matrices, getX() + 3, getY() + 3, 0, 0, 14, 14); } }; } @@ -171,8 +172,8 @@ public class ConfigAddonsScreen extends Screen { client.font.drawShadow(matrices, subtitle.getVisualOrderText(), x + 2, y + 12, 8421504); } } - configureButton.x = x + entryWidth - 25; - configureButton.y = y + 1; + configureButton.setX(x + entryWidth - 25); + configureButton.setY(y + 1); configureButton.render(matrices, mouseX, mouseY, delta); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigAddonsEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigAddonsEntry.java index 8062b1ea0..a1eaf5c78 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigAddonsEntry.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigAddonsEntry.java @@ -40,13 +40,14 @@ import org.jetbrains.annotations.ApiStatus; import java.util.List; import java.util.Optional; +import java.util.function.Supplier; @ApiStatus.Internal public class ConfigAddonsEntry extends AbstractConfigListEntry<Unit> { private int width; private AbstractWidget buttonWidget = new Button(0, 0, 0, 20, Component.empty(), button -> { Minecraft.getInstance().setScreen(new ConfigAddonsScreen(Minecraft.getInstance().screen)); - }); + }, Button.NO_TOOLTIP, Supplier::get) {}; private List<AbstractWidget> children = ImmutableList.of(buttonWidget); public ConfigAddonsEntry(int width) { @@ -77,8 +78,8 @@ public class ConfigAddonsEntry extends AbstractConfigListEntry<Unit> { Window window = Minecraft.getInstance().getWindow(); this.buttonWidget.active = REIRuntime.getInstance().getPreviousContainerScreen() != null && Minecraft.getInstance().getConnection() != null && Minecraft.getInstance().getConnection().getRecipeManager() != null && this.isEditable(); - this.buttonWidget.y = y; - this.buttonWidget.x = x + entryWidth / 2 - width / 2; + this.buttonWidget.setY(y); + this.buttonWidget.setX(x + entryWidth / 2 - width / 2); this.buttonWidget.setWidth(width); this.buttonWidget.render(matrices, mouseX, mouseY, delta); } 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 080bbc292..68cb9cc0c 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 @@ -41,6 +41,7 @@ import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.function.BiFunction; +import java.util.function.Supplier; public class FilteringAddRuleScreen extends Screen { private final FilteringEntry entry; @@ -60,7 +61,7 @@ public class FilteringAddRuleScreen extends Screen { addRenderableWidget(new Button(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20, backText, button -> { minecraft.setScreen(parent); this.parent = null; - })); + }, Button.NO_TOOLTIP, Supplier::get) {}); } rulesList = addWidget(new RulesList(minecraft, width, height, 30, height, BACKGROUND_LOCATION)); for (FilteringRule<?> rule : FilteringRule.REGISTRY.values()) { @@ -154,7 +155,7 @@ public class FilteringAddRuleScreen extends Screen { entry.edited = true; Minecraft.getInstance().setScreen(this.screenFunction.apply(entry, parent)); entry.rules.add(0, rule); - }); + }, Button.NO_TOOLTIP, Supplier::get) {}; addButton.active = this.screenFunction != null; } @@ -181,8 +182,8 @@ public class FilteringAddRuleScreen extends Screen { client.font.drawShadow(matrices, subtitle.getVisualOrderText(), x + 2, y + 12, 8421504); } } - addButton.x = x + entryWidth - 25; - addButton.y = y + 1; + addButton.setX(x + entryWidth - 25); + addButton.setY(y + 1); addButton.render(matrices, mouseX, mouseY, delta); } 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 52171b53a..97715ad23 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 @@ -41,6 +41,7 @@ import org.jetbrains.annotations.ApiStatus; import java.util.*; import java.util.function.Consumer; +import java.util.function.Supplier; @ApiStatus.Internal public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>>> { @@ -56,7 +57,7 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>>> private final AbstractWidget buttonWidget = new Button(0, 0, 0, 20, Component.translatable("config.roughlyenoughitems.filteringScreen"), button -> { filteringRulesScreen.parent = Minecraft.getInstance().screen; Minecraft.getInstance().setScreen(filteringRulesScreen); - }); + }, Button.NO_TOOLTIP, Supplier::get) {}; 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) { @@ -92,8 +93,8 @@ public class FilteringEntry extends AbstractConfigListEntry<List<EntryStack<?>>> super.render(matrices, index, y, x, entryWidth, entryHeight, mouseX, mouseY, isSelected, delta); Window window = Minecraft.getInstance().getWindow(); this.buttonWidget.active = this.isEditable(); - this.buttonWidget.y = y; - this.buttonWidget.x = x + entryWidth / 2 - width / 2; + this.buttonWidget.setY(y); + this.buttonWidget.setX(x + entryWidth / 2 - width / 2); this.buttonWidget.setWidth(width); this.buttonWidget.render(matrices, mouseX, mouseY, delta); } 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 86429e437..157c13a08 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 @@ -72,7 +72,7 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext addRenderableWidget(new Button(this.width - 4 - width - 10, 4, width + 10, 20, doneText, button -> { save(); minecraft.setScreen(parent); - })); + }, Button.NO_TOOLTIP, Supplier::get) {}); } rulesList = addWidget(new RulesList(minecraft, width, height, 30, height, BACKGROUND_LOCATION)); addEntries(ruleEntry -> rulesList.addItem(ruleEntry)); @@ -200,8 +200,8 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext @Override public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isHovered, float delta) { - widget.x = x + 2; - widget.y = y + 2; + widget.setX(x + 2); + widget.setY(y + 2); widget.render(matrices, mouseX, mouseY, delta); } @@ -235,7 +235,7 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext this.widget = new Button(0, 0, 100, 20, textFunction.apply(b), button -> { this.b = !this.b; button.setMessage(textFunction.apply(this.b)); - }); + }, Button.NO_TOOLTIP, Supplier::get) {}; } public boolean getBoolean() { @@ -244,8 +244,8 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext @Override public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isHovered, float delta) { - widget.x = x + 2; - widget.y = y; + widget.setX(x + 2); + widget.setY(y); widget.render(matrices, mouseX, mouseY, delta); } 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 d3da37ef2..74920f783 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 @@ -45,6 +45,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.function.BiFunction; +import java.util.function.Supplier; public class FilteringRulesScreen extends Screen { private final FilteringEntry entry; @@ -64,7 +65,7 @@ public class FilteringRulesScreen extends Screen { addRenderableWidget(new Button(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20, backText, button -> { minecraft.setScreen(parent); this.parent = null; - })); + }, Button.NO_TOOLTIP, Supplier::get) {}); } { Component addText = Component.literal(" + "); @@ -72,7 +73,7 @@ public class FilteringRulesScreen extends Screen { FilteringAddRuleScreen screen = new FilteringAddRuleScreen(entry); screen.parent = this; minecraft.setScreen(screen); - })); + }, Button.NO_TOOLTIP, Supplier::get) {}); } rulesList = addWidget(new RulesList(minecraft, width, height, 30, height, BACKGROUND_LOCATION)); for (int i = entry.rules.size() - 1; i >= 0; i--) { @@ -186,12 +187,12 @@ public class FilteringRulesScreen extends Screen { configureButton = new Button(0, 0, 20, 20, Component.nullToEmpty(null), button -> { entry.edited = true; Minecraft.getInstance().setScreen(this.screenFunction.apply(entry, Minecraft.getInstance().screen)); - }) { + }, Button.NO_TOOLTIP, Supplier::get) { @Override protected void renderBg(PoseStack matrices, Minecraft client, int mouseX, int mouseY) { super.renderBg(matrices, client, mouseX, mouseY); RenderSystem.setShaderTexture(0, InternalTextures.CHEST_GUI_TEXTURE); - blit(matrices, x + 3, y + 3, 0, 0, 14, 14); + blit(matrices, getX() + 3, getY() + 3, 0, 0, 14, 14); } }; { @@ -201,7 +202,7 @@ public class FilteringRulesScreen extends Screen { entry.edited = true; entry.rules.remove(rule); screen.init(Minecraft.getInstance(), screen.width, screen.height); - }); + }, Button.NO_TOOLTIP, Supplier::get) {}; } configureButton.active = this.screenFunction != null; deleteButton.active = !(rule instanceof ManualFilteringRule); @@ -230,11 +231,11 @@ public class FilteringRulesScreen extends Screen { client.font.drawShadow(matrices, subtitle.getVisualOrderText(), x + 2, y + 12, 8421504); } } - configureButton.x = x + entryWidth - 25; - configureButton.y = y + 1; + configureButton.setX(x + entryWidth - 25); + configureButton.setY(y + 1); configureButton.render(matrices, mouseX, mouseY, delta); - deleteButton.x = x + entryWidth - 27 - deleteButton.getWidth(); - deleteButton.y = y + 1; + deleteButton.setX(x + entryWidth - 27 - deleteButton.getWidth()); + deleteButton.setY(y + 1); deleteButton.render(matrices, mouseX, mouseY, delta); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java index 0e37743d4..9804af2ed 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java @@ -27,7 +27,6 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; -import com.mojang.math.Matrix4f; import me.shedaniel.clothconfig2.ClothConfigInitializer; import me.shedaniel.clothconfig2.api.ScissorsHandler; import me.shedaniel.clothconfig2.api.scroll.ScrollingContainer; @@ -56,6 +55,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; import java.util.ArrayList; import java.util.Collections; @@ -113,52 +113,62 @@ public class FilteringScreen extends Screen { this.searchField = new OverlaySearchField(0, 0, 0, 0); { Component selectAllText = Component.translatable("config.roughlyenoughitems.filteredEntries.selectAll"); - this.selectAllButton = new Button(0, 0, Minecraft.getInstance().font.width(selectAllText) + 10, 20, selectAllText, button -> { - this.points.clear(); - this.points.add(new PointPair(new Point(-Integer.MAX_VALUE / 2, -Integer.MAX_VALUE / 2), new Point(Integer.MAX_VALUE / 2, Integer.MAX_VALUE / 2))); - }); + this.selectAllButton = Button.builder(selectAllText, button -> { + this.points.clear(); + this.points.add(new PointPair(new Point(-Integer.MAX_VALUE / 2, -Integer.MAX_VALUE / 2), new Point(Integer.MAX_VALUE / 2, Integer.MAX_VALUE / 2))); + }) + .bounds(0, 0, Minecraft.getInstance().font.width(selectAllText) + 10, 20) + .build(); } { Component selectNoneText = Component.translatable("config.roughlyenoughitems.filteredEntries.selectNone"); |
