From 64ab0918074160795668070416d99ce4449be047 Mon Sep 17 00:00:00 2001 From: Kr4ight Date: Tue, 7 Apr 2026 21:47:14 +0200 Subject: [PATCH] Fix 3 --- .../impl/ui/SaturnScreenFabric.java | 30 +++++++----- .../saturnclient/event/KeyInputHandler.java | 22 +++++---- .../saturnclient/mixin/NameTagMixin.java | 49 ++++--------------- .../mixin/SplashOverlayMixin.java | 3 +- 4 files changed, 42 insertions(+), 62 deletions(-) diff --git a/versions/1.21.9/src/main/java/org/saturnclient/impl/ui/SaturnScreenFabric.java b/versions/1.21.9/src/main/java/org/saturnclient/impl/ui/SaturnScreenFabric.java index 3717c6f..91d5a74 100644 --- a/versions/1.21.9/src/main/java/org/saturnclient/impl/ui/SaturnScreenFabric.java +++ b/versions/1.21.9/src/main/java/org/saturnclient/impl/ui/SaturnScreenFabric.java @@ -8,10 +8,12 @@ import org.saturnclient.ui.SaturnScreen; import org.saturnclient.ui.SaturnScreen.ScreenProvider; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.Click; import net.minecraft.client.gui.CubeMapRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.RotatingCubeMapRenderer; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.input.KeyInput; import net.minecraft.client.texture.ResourceTexture; import net.minecraft.client.texture.TextureManager; import net.minecraft.text.Text; @@ -71,27 +73,30 @@ public class SaturnScreenFabric extends Screen implements ScreenProvider { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (screen.mouseClicked(mouseX, mouseY, button)) { + public boolean mouseClicked(Click click, boolean doubled) { + if (screen.mouseClicked(click.x(), click.y(), click.button())) { return true; } - return super.mouseClicked(mouseX, mouseY, button); + + return super.mouseClicked(click, doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (screen.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) { + public boolean mouseDragged(Click click, double offsetX, double offsetY) { + if (screen.mouseDragged(click.x(), click.y(), click.button(), 0.0, 0.0)) { return true; } - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + + return super.mouseDragged(click, offsetX, offsetY); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (screen.mouseReleased(mouseX, mouseY, button)) { + public boolean mouseReleased(Click click) { + if (screen.mouseReleased(click.x(), click.y(), click.button())) { return true; } - return super.mouseReleased(mouseX, mouseY, button); + + return super.mouseReleased(click); } @Override @@ -103,11 +108,12 @@ public class SaturnScreenFabric extends Screen implements ScreenProvider { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (screen.keyPressed(keyCode, scanCode, modifiers)) { + public boolean keyPressed(KeyInput input) { + if (screen.keyPressed(input.getKeycode(), input.scancode(), input.modifiers())) { return true; } - return super.keyPressed(keyCode, scanCode, modifiers); + + return super.keyPressed(input); } @Override diff --git a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/event/KeyInputHandler.java b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/event/KeyInputHandler.java index b1bae03..2ca0362 100644 --- a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/event/KeyInputHandler.java +++ b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/event/KeyInputHandler.java @@ -4,6 +4,7 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.minecraft.client.option.KeyBinding; import net.minecraft.client.util.InputUtil; +import net.minecraft.util.Identifier; import org.saturnclient.config.Config; import org.saturnclient.saturnclient.SaturnClient; @@ -21,17 +22,17 @@ import org.lwjgl.glfw.GLFW; * Manages keybindings and their associated actions. */ public class KeyInputHandler { - private static final String KEY_CATEGORY = "key.category.saturnclient"; + private static final Identifier KEY_CATEGORY = Identifier.of("saturnclient", "key.category.saturnclient"); private static final String MAIN_MENU_KEY_ID = "key.saturnclient.main_menu"; private static final int DEFAULT_MENU_KEY = GLFW.GLFW_KEY_RIGHT_SHIFT; private static KeyBinding mainMenuKeyBinding; public static void register() { - mainMenuKeyBinding = KeyBindingHelper.registerKeyBinding(new KeyBinding( - MAIN_MENU_KEY_ID, - InputUtil.Type.KEYSYM, - DEFAULT_MENU_KEY, - KEY_CATEGORY)); + mainMenuKeyBinding = KeyBindingHelper.registerKeyBinding( + new KeyBinding( + MAIN_MENU_KEY_ID, + DEFAULT_MENU_KEY, + KeyBinding.Category.create(KEY_CATEGORY))); // Register the event handler for the main menu key ClientTickEvents.END_CLIENT_TICK.register(client -> { @@ -40,15 +41,16 @@ public class KeyInputHandler { } if (Config.openEmoteWheel.wasKeyPressed() && client.currentScreen == null - && !InputUtil.isKeyPressed(client.getWindow().getHandle(), GLFW.GLFW_KEY_F3)) { + && !InputUtil.isKeyPressed(client.getWindow(), GLFW.GLFW_KEY_F3)) { Providers.saturn.getClient().setScreen(new EmoteWheel()); } if (SaturnClient.client.player != null && SaturnClient.client.player.isSneaking()) { - // AnimationStack animationStack = PlayerAnimationAccess.getPlayerAnimLayer(SaturnClient.client.player); + // AnimationStack animationStack = + // PlayerAnimationAccess.getPlayerAnimLayer(SaturnClient.client.player); // if (animationStack.isActive() && animationStack.getPriority() == 1000) { - // animationStack.removeLayer(1000); - // ServiceClient.emote(""); + // animationStack.removeLayer(1000); + // ServiceClient.emote(""); // } } }); diff --git a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java index 518494c..a6d755a 100644 --- a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java +++ b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/NameTagMixin.java @@ -1,25 +1,21 @@ package org.saturnclient.saturnclient.mixin; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.font.TextRenderer.TextLayerType; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; +import net.minecraft.client.render.entity.EntityRenderManager; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.state.EntityRenderState; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; -import net.minecraft.util.math.Vec3d; import org.saturnclient.client.player.Roles; import org.saturnclient.client.player.SaturnPlayer; -import org.saturnclient.saturnclient.SaturnClient; import java.util.UUID; -import org.joml.Matrix4f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.At; @@ -29,7 +25,7 @@ import org.spongepowered.asm.mixin.Shadow; @Mixin(value = EntityRenderer.class, priority = 1800) public abstract class NameTagMixin { @Shadow - public EntityRenderDispatcher dispatcher; + public EntityRenderManager dispatcher; /** * @author HexLeo @@ -37,19 +33,18 @@ public abstract class NameTagMixin { * with Saturn Client */ @Inject(method = "renderLabelIfPresent(Lnet/minecraft/client/render/entity/state/EntityRenderState;Lnet/minecraft/text/Text;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At("HEAD"), cancellable = true) - private void onRenderLabelIfPresent(S state, Text text, MatrixStack matrices, - VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) { - + protected void renderLabelIfPresent(S state, MatrixStack matrices, OrderedRenderCommandQueue queue, + CameraRenderState cameraRenderState, CallbackInfo ci) { UUID uuid = isSaturn(state); if (uuid != null) { MutableText iconText = Text.literal(Roles.getSaturnIndicator()) .styled(style -> style.withColor(Roles.getIconColor(uuid))); - Text nameText = text.copy().styled(style -> style.withColor(Formatting.WHITE)); + Text nameText = state.displayName.copy().styled(style -> style.withColor(Formatting.WHITE)); - renderLabel(state, iconText.append(nameText), matrices, - vertexConsumers, light); + queue.submitLabel(matrices, state.nameLabelPos, 0, iconText.append(nameText), !state.sneaking, state.light, + state.squaredDistanceToCamera, cameraRenderState); ci.cancel(); } @@ -57,7 +52,7 @@ public abstract class NameTagMixin { private UUID isSaturn(S state) { if (state instanceof PlayerEntityRenderState) { - String name = ((PlayerEntityRenderState) state).name; + String name = ((PlayerEntityRenderState) state).displayName.getString(); SaturnPlayer player = SaturnPlayer.get(name); if (player != null) { return player.uuid; @@ -66,28 +61,4 @@ public abstract class NameTagMixin { return null; } - - private void renderLabel(S state, Text text, MatrixStack matrices, - VertexConsumerProvider vertexConsumers, int light) { - Vec3d vec3d = state.nameLabelPos; - if (vec3d != null) { - boolean bl = !state.sneaking; - int i = "deadmau5".equals(text.getString()) ? -10 : 0; - matrices.push(); - matrices.translate(vec3d.x, vec3d.y + 0.5, vec3d.z); - matrices.multiply(this.dispatcher.getRotation()); - matrices.scale(0.025F, -0.025F, 0.025F); - Matrix4f matrix4f = matrices.peek().getPositionMatrix(); - TextRenderer textRenderer = SaturnClient.client.textRenderer; - float f = (float) (-textRenderer.getWidth(text)) / 2.0F; - int j = (int) (SaturnClient.client.options.getTextBackgroundOpacity(0.25F) * 255.0F) << 24; - textRenderer.draw(text, f, (float) i, -2130706433, false, matrix4f, vertexConsumers, - bl ? TextLayerType.SEE_THROUGH : TextLayerType.NORMAL, j, light); - if (bl) { - textRenderer.draw(text, f, (float) i, -1, false, matrix4f, vertexConsumers, TextLayerType.NORMAL, 0, - light); - } - matrices.pop(); - } - } } diff --git a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java index ecc4823..cd463fd 100644 --- a/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java +++ b/versions/1.21.9/src/main/java/org/saturnclient/saturnclient/mixin/SplashOverlayMixin.java @@ -124,7 +124,8 @@ public abstract class SplashOverlayMixin { private void renderProgressBar(RenderScope scope, DrawContext context, int screenWidth, int screenHeight, int alpha) { int progressY = ((screenHeight - 5) / 2) + 25; - context.drawBorder((screenWidth - 120) / 2, progressY, 120, 5, Theme.withAlpha(alpha, 0xFFFFFFFF)); + // context.drawBorder((screenWidth - 120) / 2, progressY, 120, 5, + // Theme.withAlpha(alpha, 0xFFFFFFFF)); int progressWidth = Math.min((int) (progress * 120), 120); int progressX = (screenWidth - 120) / 2;