diff --git a/gradle.properties b/gradle.properties index 964bd7a..04e1dc0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties - # check these on https://fabricmc.net/use - minecraft_version=1.19 - yarn_mappings=1.19+build.1 - loader_version=0.14.6 + # check these on https://fabricmc.net/develop + minecraft_version=1.19.3 + yarn_mappings=1.19.3+build.2 + loader_version=0.14.11 # Mod Properties mod_version = 1.1.5 @@ -14,8 +14,8 @@ org.gradle.jvmargs=-Xmx1G # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.55.2+1.19 - modmenu_version=4.0.0 + fabric_version=0.68.1+1.19.3 + modmenu_version=5.0.2 # Publishing metadata modrinth_id=kYq5qkSL diff --git a/src/main/java/link/infra/borderlessmining/config/ConfigScreen.java b/src/main/java/link/infra/borderlessmining/config/ConfigScreen.java index b8d3a83..f523a4a 100644 --- a/src/main/java/link/infra/borderlessmining/config/ConfigScreen.java +++ b/src/main/java/link/infra/borderlessmining/config/ConfigScreen.java @@ -12,7 +12,6 @@ import net.minecraft.client.gui.widget.ElementListWidget; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.option.SimpleOption; -import net.minecraft.client.util.OrderableTooltip; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.screen.ScreenTexts; import net.minecraft.text.Style; @@ -23,6 +22,7 @@ import java.util.function.Predicate; import java.util.function.Supplier; + public abstract class ConfigScreen extends Screen { private final Screen parent; private ConfigListWidget entries; @@ -37,10 +37,11 @@ protected final void init() { entries = new ConfigListWidget(client, width, height, 32, height - 32, 25); addElements(); addDrawableChild(entries); - addDrawableChild(new ButtonWidget(width / 2 - 100, height - 27, 200, 20, ScreenTexts.DONE, (button) -> { - save(); - client.setScreen(parent); - })); + addDrawableChild(ButtonWidget.builder(ScreenTexts.DONE, (button) -> {save(); client.setScreen(parent);}) + .position(this.width / 2 - 100, this.height - 27) + .size(200, 20) + .build() + ); } private static class ConfigListWidget extends ElementListWidget { @@ -67,19 +68,6 @@ protected int getScrollbarPositionX() { return super.getScrollbarPositionX() + 32; } - public Element getHoveredButton(int mouseX, int mouseY) { - Optional hovered = hoveredElement(mouseX, mouseY); - if (hovered.isPresent()) { - List buttons = ((ConfigListEntry)hovered.get()).children(); - for (Element button : buttons) { - if (button.isMouseOver(mouseX, mouseY)) { - return button; - } - } - } - return null; - } - public Style getHoveredStyle(int mouseX, int mouseY) { Optional hovered = hoveredElement(mouseX, mouseY); //noinspection OptionalIsPresent @@ -100,7 +88,7 @@ public ConfigListEntry(List buttons) { @Override public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { for (ClickableWidget widget : buttons) { - widget.y = y; + widget.setY(y); widget.render(matrices, mouseX, mouseY, tickDelta); } } @@ -139,10 +127,6 @@ public final void removed() { @Override public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { super.render(matrices, mouseX, mouseY, delta); - Element hoveredButton = entries.getHoveredButton(mouseX, mouseY); - if (hoveredButton instanceof OrderableTooltip) { - renderOrderedTooltip(matrices, ((OrderableTooltip)hoveredButton).getOrderedTooltip(), mouseX, mouseY); - } Style hoveredStyle = entries.getHoveredStyle(mouseX, mouseY); if (hoveredStyle != null) { renderTextHoverEffect(matrices, hoveredStyle, mouseX, mouseY); @@ -253,7 +237,7 @@ public ConfigListTextField(TextRenderer textRenderer, int x, int y, int width, i private static TextFieldWidget makeField(TextRenderer textRenderer, int x, int y, int width, int height, Text description) { return new TextFieldWidget(textRenderer, x + (width / 2) + 7, y, (width / 2) - 8, height, description) { @Override - public void appendNarrations(NarrationMessageBuilder builder) { + public void appendClickableNarrations(NarrationMessageBuilder builder) { builder.put(NarrationPart.TITLE, getNarrationMessage()); // Use the narration message which includes the description } }; diff --git a/src/main/java/link/infra/borderlessmining/mixin/FullScreenOptionMixin.java b/src/main/java/link/infra/borderlessmining/mixin/FullScreenOptionMixin.java index 8fe3f00..108fd28 100644 --- a/src/main/java/link/infra/borderlessmining/mixin/FullScreenOptionMixin.java +++ b/src/main/java/link/infra/borderlessmining/mixin/FullScreenOptionMixin.java @@ -15,7 +15,7 @@ public abstract class FullScreenOptionMixin { // Modify the constructor call to add an extra option for Borderless Fullscreen @ModifyArgs(method = "init", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/SimpleOption;(Ljava/lang/String;Lnet/minecraft/client/option/SimpleOption$TooltipFactoryGetter;Lnet/minecraft/client/option/SimpleOption$ValueTextGetter;Lnet/minecraft/client/option/SimpleOption$Callbacks;Ljava/lang/Object;Ljava/util/function/Consumer;)V")) + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/SimpleOption;(Ljava/lang/String;Lnet/minecraft/client/option/SimpleOption$TooltipFactory;Lnet/minecraft/client/option/SimpleOption$ValueTextGetter;Lnet/minecraft/client/option/SimpleOption$Callbacks;Ljava/lang/Object;Ljava/util/function/Consumer;)V")) private void modifyOption(Args args) { if (!ConfigHandler.getInstance().addToVanillaVideoSettings) { return;