From 90db3d3915236753c75de7a6fb6e440e346b6912 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sat, 7 Mar 2026 16:04:35 +0100 Subject: [PATCH] fixed saturnclient package --- .../saturnclient/SaturnClient.java | 38 +---- .../saturnclient/menus/HudEditor.java | 142 ------------------ .../saturnclient/mixin/SetScreenMixin.java | 5 +- .../saturnclient/ui/SaturnScreenFabric.java | 2 +- 4 files changed, 5 insertions(+), 182 deletions(-) delete mode 100644 versions/1.21.4/src/main/java/org/saturnclient/saturnclient/menus/HudEditor.java diff --git a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index a4c1828..655bcf3 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -3,9 +3,7 @@ package org.saturnclient.saturnclient; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; -import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.util.math.MatrixStack; import org.saturnclient.cosmetics.Emotes; import org.saturnclient.cosmetics.cloak.Cloaks; @@ -18,15 +16,9 @@ import org.saturnclient.common.minecraft.MinecraftProvider; import org.saturnclient.config.Config; import org.saturnclient.config.manager.ConfigManager; import org.saturnclient.saturnclient.event.KeyInputHandler; -import org.saturnclient.saturnclient.mixin.DrawContextAccessor; import org.saturnclient.ui.ElementRenderer; -import org.saturnclient.ui.RenderScope; -import org.saturnclient.ui.RenderScopeImpl; -import org.saturnclient.ui.SaturnScreen; +import org.saturnclient.ui.SaturnScreenFabric; import org.saturnclient.ui.components.ElementRendererImpl; -import org.saturnclient.ui.elements.ImageTexture; -import org.saturnclient.ui.resources.Textures; -import org.saturnclient.ui.screens.TitleMenu; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,35 +49,7 @@ public class SaturnClient implements ModInitializer { ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save()); - ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> { - if (screen != null && !(screen instanceof TitleMenu)) { - if (screen instanceof SaturnScreenFabric) { - ((SaturnScreenFabric) screen).draw(new ImageTexture(Textures.LOGO_TEXT_BIG).dimensions(180, 18) - .position(screen.width - 180 - 20, screen.height - 18 - 20)); - } else { - ScreenEvents.afterRender(screen).register((screen1, context, mouseX, mouseY, tickDelta) -> { - RenderScope renderScope = new RenderScopeImpl(context.getMatrices(), - ((DrawContextAccessor) context).getVertexConsumers()); - - int width = context.getScaledWindowWidth(); - int height = context.getScaledWindowHeight(); - - float scaleX = (float) screen1.width / width; - float scaleY = (float) screen1.height / height; - - MatrixStack matrixStack = context.getMatrices(); - matrixStack.push(); - matrixStack.translate(width - 95, height - 14, 0); - matrixStack.scale(0.5f / scaleX, 0.5f / scaleY, 1.0f); - renderScope.drawTexture(Textures.LOGO_TEXT_BIG, 0, 0, 0, 0, 180, 18); - matrixStack.pop(); - }); - } - } - }); - ClientTickEvents.END_CLIENT_TICK.register(client -> { - // Only iterate over enabled modules for (org.saturnclient.modules.Module m : ModManager.ENABLED_MODS) { m.tick(); } diff --git a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/menus/HudEditor.java b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/menus/HudEditor.java deleted file mode 100644 index ff5a836..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/menus/HudEditor.java +++ /dev/null @@ -1,142 +0,0 @@ -package org.saturnclient.saturnclient.menus; - -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.text.Text; - -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.ModManager; -import org.saturnclient.modules.Module; -import org.saturnclient.config.manager.ConfigManager; -import org.saturnclient.saturnclient.mixin.DrawContextAccessor; -import org.saturnclient.ui.RenderScope; -import org.saturnclient.ui.RenderScopeImpl; -import org.saturnclient.ui.SaturnScreen; - -import java.util.ArrayList; -import java.util.List; - -public class HudEditor extends Screen { - private final List hudMods = new ArrayList<>(); - private HudMod draggingMod = null; - private boolean resizing = false; - private int offsetX, offsetY; - private static final int RESIZE_MARGIN = 3; - - public HudEditor() { - super(Text.literal("HUD Editor")); - for (Module m : ModManager.ENABLED_MODS) { - if (m.isEnabled() && m instanceof HudMod) { - hudMods.add((HudMod) m); - } - } - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (button == 0) { - for (int m = hudMods.size() - 1; m >= 0; m--) { - HudMod mod = hudMods.get(m); - ModDimensions dim = mod.getDimensions(); - - // Check if clicking the corner for resizing - if (isCorner(mouseX, mouseY, dim)) { - draggingMod = mod; - resizing = true; - offsetX = (int) (mouseX - (dim.x.value + dim.width * dim.scale.value)); - offsetY = (int) (mouseY - (dim.y.value + dim.height * dim.scale.value)); - return true; - } - - // Check if clicking inside the mod - if (isInside(mouseX, mouseY, dim)) { - draggingMod = mod; - resizing = false; - offsetX = (int) (mouseX - dim.x.value); - offsetY = (int) (mouseY - dim.y.value); - return true; - } - } - } - return super.mouseClicked(mouseX, mouseY, button); - } - - @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (button == 0) { - draggingMod = null; - resizing = false; - } - return super.mouseReleased(mouseX, mouseY, button); - } - - @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (draggingMod != null) { - ModDimensions dim = draggingMod.getDimensions(); - - if (resizing) { - // Scale based on cursor movement - float newScale = Math.max(0.5f, ((float) (mouseX - dim.x.value) / dim.width)); - dim.scale.value = newScale; - } else { - // Move the mod - dim.x.value = (int) mouseX - offsetX; - dim.y.value = (int) mouseY - offsetY; - } - } - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); - } - - @Override - public void render(DrawContext context, int mouseX, int mouseY, float delta) { - if (client.world == null && client.getCurrentServerEntry() == null) { - SaturnScreenFabric.ROTATING_PANORAMA_RENDERER.render(context, this.width, this.height, 1.0F, delta); - } - - RenderScope scope = new RenderScopeImpl(context.getMatrices(), - ((DrawContextAccessor) context).getVertexConsumers()); - - for (HudMod mod : hudMods) { - ModDimensions dim = mod.getDimensions(); - MatrixStack matrices = context.getMatrices(); - matrices.push(); - - matrices.translate(dim.x.value, dim.y.value, 0); - matrices.scale(dim.scale.value, dim.scale.value, 1.0f); - - // Render the mod - mod.renderDummy(scope); - - matrices.pop(); - - // Draw border around mod - int borderX = dim.x.value; - int borderY = dim.y.value; - int borderW = (int) (dim.width * dim.scale.value); - int borderH = (int) (dim.height * dim.scale.value); - - context.drawBorder(borderX, borderY, borderW, borderH, 0xFFFFFFFF); // White border - } - } - - private boolean isInside(double mouseX, double mouseY, ModDimensions dim) { - return mouseX >= dim.x.value && mouseX <= dim.x.value + (dim.width * dim.scale.value) && - mouseY >= dim.y.value && mouseY <= dim.y.value + (dim.height * dim.scale.value); - } - - private boolean isCorner(double mouseX, double mouseY, ModDimensions dim) { - float rightX = dim.x.value + dim.width * dim.scale.value; - float bottomY = dim.y.value + dim.height * dim.scale.value; - - return Math.abs(mouseX - rightX) < RESIZE_MARGIN && Math.abs(mouseY - bottomY) < RESIZE_MARGIN; - } - - @Override - public void close() { - ConfigManager.save(); - super.close(); - } -} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/SetScreenMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/SetScreenMixin.java index 645e6b3..01f2b84 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/SetScreenMixin.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/saturnclient/mixin/SetScreenMixin.java @@ -1,6 +1,7 @@ package org.saturnclient.saturnclient.mixin; import org.saturnclient.config.Config; +import org.saturnclient.ui.SaturnScreenFabric; import org.saturnclient.ui.screens.TitleMenu; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -16,9 +17,9 @@ public class SetScreenMixin { private Screen replaceTitleScreen(Screen screen) { if (Config.saturnTitleScreen.value) { if (screen instanceof TitleScreen) - return new TitleMenu(); + return new SaturnScreenFabric(new TitleMenu()); if (screen == null && ((MinecraftClient) (Object) this).world == null) - return new TitleMenu(); + return new SaturnScreenFabric(new TitleMenu()); } return screen; diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/SaturnScreenFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/SaturnScreenFabric.java index 631300c..47d128d 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/SaturnScreenFabric.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/ui/SaturnScreenFabric.java @@ -19,7 +19,7 @@ import net.minecraft.client.util.Pool; import net.minecraft.text.Text; import net.minecraft.util.Identifier; -public abstract class SaturnScreenFabric extends Screen implements ScreenProvider { +public class SaturnScreenFabric extends Screen implements ScreenProvider { protected static final Identifier PANORAMA = Identifier.of("saturnclient", "textures/gui/title/background/panorama"); protected static final CubeMapRenderer PANORAMA_RENDERER = new CubeMapRenderer(PANORAMA);