From 6cb4fbd65205a3d19524989221f32b5caa7cbe24 Mon Sep 17 00:00:00 2001 From: RettichLP Date: Thu, 16 Apr 2026 11:30:33 +0200 Subject: [PATCH 1/2] bump: update dependencies (Minecraft, yarn mappings, fabric API) and adjust code to Minecraft 1.21.11 --- gradle.properties | 6 ++-- .../screens/components/ItemButtonWidget.java | 8 ++--- .../components/ToggleButtonWidget.java | 12 +++++--- .../screens/options/NameTagOptionsScreen.java | 10 ++++--- .../common/gui/widgets/CarLockedWidget.java | 3 +- .../ucutils/common/models/Sound.java | 6 ++-- .../common/services/RenderService.java | 30 +++++++++---------- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/gradle.properties b/gradle.properties index b2b7a353..f73660f5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,8 +7,8 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.10 -yarn_mappings=1.21.10+build.3 +minecraft_version=1.21.11 +yarn_mappings=1.21.11+build.4 loader_version=0.19.2 loom_version=1.16.1 @@ -17,4 +17,4 @@ mod_version=2.3.0 maven_group=de.rettichlp # Dependencies -fabric_api_version=0.138.4+1.21.10 +fabric_api_version=0.141.3+1.21.11 diff --git a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java index 4beef24b..271ff894 100644 --- a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java +++ b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java @@ -5,8 +5,8 @@ import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; +import static net.minecraft.text.Text.empty; import static net.minecraft.text.Text.translatable; public class ItemButtonWidget extends ButtonWidget { @@ -14,15 +14,13 @@ public class ItemButtonWidget extends ButtonWidget { private final Item item; public ItemButtonWidget(String key, Item item, PressAction onPress) { - super(0, 0, 20, 20, Text.empty(), onPress, DEFAULT_NARRATION_SUPPLIER); + super(0, 0, 20, 20, empty(), onPress, DEFAULT_NARRATION_SUPPLIER); this.item = item; setTooltip(Tooltip.of(translatable(key))); } @Override - protected void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { - super.renderWidget(context, mouseX, mouseY, delta); - + protected void drawIcon(DrawContext context, int mouseX, int mouseY, float deltaTicks) { int x = getX() + (getWidth() / 2) - 8; int y = getY() + (getHeight() / 2) - 8; diff --git a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java index a96b0a2a..0cf83d30 100644 --- a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java +++ b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java @@ -1,8 +1,8 @@ package de.rettichlp.ucutils.common.gui.screens.components; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.input.AbstractInput; -import net.minecraft.text.Text; import java.util.function.Consumer; @@ -16,11 +16,11 @@ public class ToggleButtonWidget extends ButtonWidget { - private final Text text; + private final net.minecraft.text.Text text; private final Consumer changeListener; private boolean state; - public ToggleButtonWidget(Text text, Consumer changeListener, boolean defaultState) { + public ToggleButtonWidget(net.minecraft.text.Text text, Consumer changeListener, boolean defaultState) { super(0, 0, 150, 20, empty(), button -> {}, DEFAULT_NARRATION_SUPPLIER); this.text = text; this.changeListener = changeListener; @@ -36,11 +36,15 @@ public void onPress(AbstractInput input) { setMessage(getText()); } + @Override + protected void drawIcon(DrawContext context, int mouseX, int mouseY, float deltaTicks) { + } + public void updateText() { setMessage(getText()); } - private Text getText() { + private net.minecraft.text.Text getText() { return this.text.copy() .append(of(":").copy().formatted(GRAY)).append(" ") .append(this.state ? ON.copy().formatted(GREEN) : OFF.copy().formatted(RED)); diff --git a/src/main/java/de/rettichlp/ucutils/common/gui/screens/options/NameTagOptionsScreen.java b/src/main/java/de/rettichlp/ucutils/common/gui/screens/options/NameTagOptionsScreen.java index 6c0070c6..82ae3580 100644 --- a/src/main/java/de/rettichlp/ucutils/common/gui/screens/options/NameTagOptionsScreen.java +++ b/src/main/java/de/rettichlp/ucutils/common/gui/screens/options/NameTagOptionsScreen.java @@ -79,10 +79,12 @@ public void initBody() { stream(Faction.values()) .filter(faction -> faction != NULL) - .map(faction -> new CyclingButtonWidget.Builder<>(Color::getDisplayName) - .values(Color.values()) - .initially(configuration.getOptions().nameTag().highlightFactions().getOrDefault(faction, WHITE)) - .build(of(faction.getDisplayName()), (button, value) -> configuration.getOptions().nameTag().highlightFactions().put(faction, value))) + .map(faction -> { + Color initialValue = configuration.getOptions().nameTag().highlightFactions().getOrDefault(faction, WHITE); + return new CyclingButtonWidget.Builder<>(Color::getDisplayName, () -> initialValue) + .values(Color.values()) + .build(of(faction.getDisplayName()), (button, value) -> configuration.getOptions().nameTag().highlightFactions().put(faction, value)); + }) .forEach(adder::add); return gridWidget; diff --git a/src/main/java/de/rettichlp/ucutils/common/gui/widgets/CarLockedWidget.java b/src/main/java/de/rettichlp/ucutils/common/gui/widgets/CarLockedWidget.java index 492fe0b0..b87a1d13 100644 --- a/src/main/java/de/rettichlp/ucutils/common/gui/widgets/CarLockedWidget.java +++ b/src/main/java/de/rettichlp/ucutils/common/gui/widgets/CarLockedWidget.java @@ -81,9 +81,8 @@ public static class Configuration extends UCUtilsWidgetConfiguration implements @Override public Widget optionsWidget() { - return CyclingButtonWidget.builder(Style::getDisplayName) + return CyclingButtonWidget.builder(Style::getDisplayName, this.style) .values(Style.values()) - .initially(this.style) .tooltip(Style::getTooltip) .build(WIDGETS_CAR_LOCKED_OPTIONS_STYLE_NAME, (button, style) -> this.style = style); } diff --git a/src/main/java/de/rettichlp/ucutils/common/models/Sound.java b/src/main/java/de/rettichlp/ucutils/common/models/Sound.java index 4964cf09..6e53e17a 100644 --- a/src/main/java/de/rettichlp/ucutils/common/models/Sound.java +++ b/src/main/java/de/rettichlp/ucutils/common/models/Sound.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull; import static de.rettichlp.ucutils.UCUtils.configuration; -import static net.minecraft.client.sound.PositionedSoundInstance.master; +import static net.minecraft.client.sound.PositionedSoundInstance.ui; @Getter @AllArgsConstructor @@ -36,14 +36,14 @@ public enum Sound { public void play() { if (configuration.getOptions().customSounds()) { - PositionedSoundInstance positionedSoundInstance = master(getSoundEvent(), 1.0F, 1.0F); + PositionedSoundInstance positionedSoundInstance = ui(getSoundEvent(), 1.0F, 1.0F); MinecraftClient.getInstance().getSoundManager().play(positionedSoundInstance); } } public void play(float pitch, float volume) { if (configuration.getOptions().customSounds()) { - PositionedSoundInstance positionedSoundInstance = master(getSoundEvent(), pitch, volume); + PositionedSoundInstance positionedSoundInstance = ui(getSoundEvent(), pitch, volume); MinecraftClient.getInstance().getSoundManager().play(positionedSoundInstance); } } diff --git a/src/main/java/de/rettichlp/ucutils/common/services/RenderService.java b/src/main/java/de/rettichlp/ucutils/common/services/RenderService.java index 969aae7a..95e3046e 100644 --- a/src/main/java/de/rettichlp/ucutils/common/services/RenderService.java +++ b/src/main/java/de/rettichlp/ucutils/common/services/RenderService.java @@ -38,8 +38,8 @@ import static java.util.stream.StreamSupport.stream; import static net.minecraft.client.font.TextRenderer.TextLayerType.SEE_THROUGH; import static net.minecraft.client.gui.widget.DirectionalLayoutWidget.horizontal; -import static net.minecraft.client.render.RenderLayer.getDebugQuads; -import static net.minecraft.client.render.RenderLayer.getLines; +import static net.minecraft.client.render.RenderLayers.debugQuads; +import static net.minecraft.client.render.RenderLayers.lines; import static net.minecraft.item.Items.COMPARATOR; import static net.minecraft.util.math.RotationAxis.POSITIVE_Y; import static org.atteo.classindex.ClassIndex.getAnnotated; @@ -73,9 +73,9 @@ public void drawOutline(@NotNull MatrixStack matrices, double z2, Color color) { Camera camera = MinecraftClient.getInstance().gameRenderer.getCamera(); - double camX = camera.getPos().x; - double camY = camera.getPos().y; - double camZ = camera.getPos().z; + double camX = camera.getCameraPos().x; + double camY = camera.getCameraPos().y; + double camZ = camera.getCameraPos().z; float minX = (float) (x1 - camX); float minY = (float) (y1 - camY); @@ -84,7 +84,7 @@ public void drawOutline(@NotNull MatrixStack matrices, float maxY = (float) (y2 - camY); float maxZ = (float) (z2 - camZ); - VertexConsumer consumer = vertexConsumers.getBuffer(getLines()); + VertexConsumer consumer = vertexConsumers.getBuffer(lines()); Matrix4f matrix = matrices.peek().getPositionMatrix(); drawLine(consumer, matrix, minX, minY, minZ, maxX, minY, minZ, color); @@ -111,15 +111,15 @@ public void drawArea(@NotNull MatrixStack matrices, float z, @NotNull Color color) { Camera camera = MinecraftClient.getInstance().gameRenderer.getCamera(); - double camX = camera.getPos().x; - double camY = camera.getPos().y; - double camZ = camera.getPos().z; + double camX = camera.getCameraPos().x; + double camY = camera.getCameraPos().y; + double camZ = camera.getCameraPos().z; float modifiedX = (float) (x - camX); float modifiedY = (float) (y - camY); float modifiedZ = (float) (z - camZ); - VertexConsumer consumer = vertexConsumers.getBuffer(getDebugQuads()); + VertexConsumer consumer = vertexConsumers.getBuffer(debugQuads()); Matrix4f matrix = matrices.peek().getPositionMatrix(); Color alphaColor = new Color(color.getRed(), color.getGreen(), color.getBlue(), 50); @@ -215,9 +215,9 @@ public void renderTextAt(@NotNull MatrixStack matrices, matrices.push(); Camera camera = MinecraftClient.getInstance().gameRenderer.getCamera(); - double camX = camera.getPos().x; - double camY = camera.getPos().y; - double camZ = camera.getPos().z; + double camX = camera.getCameraPos().x; + double camY = camera.getCameraPos().y; + double camZ = camera.getCameraPos().z; matrices.translate(x - camX, y - camY, z - camZ); @@ -278,9 +278,9 @@ public void addCyclingButton(@NotNull Directional BiConsumer onValueChange, @NotNull Function currentValue, int width) { - CyclingButtonWidget cyclingButton = CyclingButtonWidget.builder(displayNameFunction) + E initialValue = currentValue.apply(configuration.getOptions()); + CyclingButtonWidget cyclingButton = CyclingButtonWidget.builder(displayNameFunction, initialValue) .values(values) - .initially(currentValue.apply(configuration.getOptions())) .tooltip(CyclingButtonEntry::getTooltip) .build(name, (button, value) -> onValueChange.accept(configuration.getOptions(), value)); From 16d338a90b209f415d09956a5a0630014ad860ef Mon Sep 17 00:00:00 2001 From: RettichLP Date: Sun, 26 Apr 2026 14:57:35 +0200 Subject: [PATCH 2/2] fix: ensure proper rendering of button and label in ToggleButtonWidget and ItemButtonWidget --- .../common/gui/screens/components/ItemButtonWidget.java | 2 ++ .../common/gui/screens/components/ToggleButtonWidget.java | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java index 271ff894..e6bcbd8d 100644 --- a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java +++ b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ItemButtonWidget.java @@ -21,6 +21,8 @@ public ItemButtonWidget(String key, Item item, PressAction onPress) { @Override protected void drawIcon(DrawContext context, int mouseX, int mouseY, float deltaTicks) { + drawButton(context); + int x = getX() + (getWidth() / 2) - 8; int y = getY() + (getHeight() / 2) - 8; diff --git a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java index 0cf83d30..59cbbc73 100644 --- a/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java +++ b/src/main/java/de/rettichlp/ucutils/common/gui/screens/components/ToggleButtonWidget.java @@ -6,6 +6,7 @@ import java.util.function.Consumer; +import static net.minecraft.client.gui.DrawContext.HoverType.NONE; import static net.minecraft.screen.ScreenTexts.OFF; import static net.minecraft.screen.ScreenTexts.ON; import static net.minecraft.text.Text.empty; @@ -38,6 +39,8 @@ public void onPress(AbstractInput input) { @Override protected void drawIcon(DrawContext context, int mouseX, int mouseY, float deltaTicks) { + drawButton(context); + drawLabel(context.getHoverListener(this, NONE)); } public void updateText() {