diff --git a/README.MD b/README.MD index 69811a4..95f8c49 100644 --- a/README.MD +++ b/README.MD @@ -1,5 +1,16 @@ -# SaturnClient +

+ OSUI +

+ +

Saturn Client

+ +

+ Saturn Client is a free and open source Minecraft client +

# Credits -- Cloak rendering: `IIpho3nix` +- Cloak rendering: `IIpho3nix` & `Dhyan Blum` +- Panton font (ui): `Ivan Petrov` & `Fontfabric` + +If any of the code or assets are in your name and you want to remove them, please submit an issue, we are still in alpha to have any artists so we would also appreciate if you could help us make some cosmetics diff --git a/src/main/java/org/saturnclient/saturnclient/cloaks/Cloaks.java b/src/main/java/org/saturnclient/saturnclient/cloaks/Cloaks.java index 0988011..07f32ff 100644 --- a/src/main/java/org/saturnclient/saturnclient/cloaks/Cloaks.java +++ b/src/main/java/org/saturnclient/saturnclient/cloaks/Cloaks.java @@ -43,6 +43,7 @@ public class Cloaks { public static void setCloak(String uuid, String cloakName) { SaturnSocket.setCloak(cloakName); setCloakSilent(uuid, cloakName); + SaturnClient.LOGGER.info("Cloak set to " + cloakName); } /** diff --git a/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java index c1f4b60..33ea532 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/CloaksMenu.java @@ -8,6 +8,7 @@ import org.saturnclient.ui.animations.FadeIn; import org.saturnclient.ui.widgets.SaturnClickableSprite; import org.saturnclient.ui.widgets.SaturnSprite; import org.saturnclient.ui.widgets.SaturnImage; +import org.saturnclient.ui.widgets.SaturnScroll; import net.minecraft.text.Text; @@ -43,35 +44,39 @@ public class CloaksMenu extends SaturnUi { int cloakWidth = 32; int cloakHeight = 70; - int modX = rectX + 15; - int modY = rectY + 10; + int modX = 0; + int modY = 0; int col = 0; - for (String cloak : Cloaks.availableCloaks) { - draw(new SaturnImage(Textures.getCloakPreview(cloak)) - .setX(modX) - .setY(modY) - .setWidth(cloakWidth) - .setHeight(cloakHeight)); + SaturnScroll modsScroll = new SaturnScroll(); - draw(new SaturnClickableSprite(Textures.BUTTON_BORDER, () -> { + for (String cloak : Cloaks.availableCloaks) { + modsScroll.draw(new SaturnClickableSprite(Textures.BUTTON_BORDER, () -> { Cloaks.setCloak(SaturnSocket.uuid, cloak); }) .setColor(10526880) - .setX(modX - 3) - .setY(modY - 3) + .setX(modX) + .setY(modY) .setWidth(cloakWidth + 6) .setHeight(cloakHeight + 6)); + modsScroll.draw(new SaturnImage(Textures.getCloakPreview(cloak)) + .setX(modX + 3) + .setY(modY + 3) + .setWidth(cloakWidth) + .setHeight(cloakHeight)); + col++; if (col < 6) { modX += cloakWidth + 21; } else { - modX = rectX + 15; + modX = 0; modY += cloakHeight + 20; col = 0; } } + + draw(modsScroll.setX(rectX + 17).setY(rectY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10)); } } diff --git a/src/main/java/org/saturnclient/saturnclient/menus/SettingsMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/SettingsMenu.java index 3da5fc0..d5ece81 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/SettingsMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/SettingsMenu.java @@ -1,11 +1,16 @@ package org.saturnclient.saturnclient.menus; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnmods.ModManager; +import org.saturnclient.saturnmods.SaturnMod; import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.Textures; import org.saturnclient.ui.animations.FadeIn; +import org.saturnclient.ui.animations.Slide; import org.saturnclient.ui.widgets.SaturnClickableImage; import org.saturnclient.ui.widgets.SaturnScroll; import org.saturnclient.ui.widgets.SaturnSprite; +import org.saturnclient.ui.widgets.SaturnText; import net.minecraft.text.Text; @@ -26,7 +31,7 @@ public class SettingsMenu extends SaturnUi { .setY(modsY) .setWidth(rectWidth) .setHeight(rectHeight) - .setAnimations(new FadeIn(1))); + .setAnimations(new Slide(1, 10))); int tabsX = (width - 43) / 2; int tabsY = modsY - 17; @@ -36,7 +41,7 @@ public class SettingsMenu extends SaturnUi { .setY(tabsY) .setWidth(43) .setHeight(15) - .setAnimations(new FadeIn(1))); + .setAnimations(new Slide(1, 10))); int tabSize = 9; tabsX = (width - tabSize) / 2; @@ -73,14 +78,19 @@ public class SettingsMenu extends SaturnUi { SaturnScroll modsScroll = new SaturnScroll(); - for (int i = 0; i < 30; i++) { + for (SaturnMod mod : ModManager.MODS) { modsScroll.draw(new SaturnClickableImage(Textures.MOD, (m) -> { + }) + .setSelected(mod.isEnabled()) .setX(modX) .setY(modY) .setWidth(86) .setHeight(20)); + modsScroll.draw(new SaturnText(mod.getName()).setX(modX + 27) + .setY(modY + (21 - SaturnClient.textRenderer.fontHeight) / 2)); + col++; if (col < 3) { @@ -92,6 +102,7 @@ public class SettingsMenu extends SaturnUi { } } - draw(modsScroll.setX(modsX + 17).setY(modsY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10)); + draw(modsScroll.setX(modsX + 17).setY(modsY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10) + .setAnimations(new Slide(1, 10))); } } \ No newline at end of file diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java index 35c3b98..ed54b69 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java @@ -9,6 +9,9 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; +import net.minecraft.text.Style; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; import net.minecraft.util.math.MathHelper; @@ -50,7 +53,8 @@ public class SaturnButton extends SaturnWidget { if (alpha != 0.0f) { int i = this.active ? 16777215 : 10526880; - context.drawText(minecraftClient.textRenderer, this.text, + context.drawText(minecraftClient.textRenderer, + Text.literal(text).setStyle(Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))), this.x + ((this.width - minecraftClient.textRenderer.getWidth(this.text)) / 2), this.y + ((this.height - minecraftClient.textRenderer.fontHeight + 1) / 2), hovering ? hoverColor : i | MathHelper.ceil(this.alpha * 255.0F) << 24, false); diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java b/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java index afd5efd..c55e856 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java @@ -8,6 +8,9 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; +import net.minecraft.text.Style; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; public class SaturnInputBox extends SaturnWidget { @@ -69,7 +72,7 @@ public class SaturnInputBox extends SaturnWidget { String visibleText = text.substring(scrollOffset); int textColor = focused ? 0xFFFFFF : 0xAAAAAA; - context.drawText(textRenderer, visibleText, x + 5, y + 5, textColor, false); + context.drawText(textRenderer, Text.literal(visibleText).setStyle(Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))), x + 5, y + 5, textColor, false); if (focused) { int cursorX = x + 5 + textRenderer.getWidth(visibleText.substring(0, cursorPosition - scrollOffset)); diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnScroll.java b/src/main/java/org/saturnclient/ui/widgets/SaturnScroll.java index 136c755..ae5a550 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnScroll.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnScroll.java @@ -51,6 +51,8 @@ public class SaturnScroll extends SaturnWidget { @Override public void click(int mouseX, int mouseY) { + mouseX = mouseX - x; + mouseY = mouseY - y; for (SaturnWidget child : children) { boolean isMouseInside = child.x < mouseX && child.x + child.width > mouseX && child.y < mouseY && child.y + child.height > mouseY; diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnText.java b/src/main/java/org/saturnclient/ui/widgets/SaturnText.java index 70f6d4b..85e543e 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnText.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnText.java @@ -2,12 +2,16 @@ package org.saturnclient.ui.widgets; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.ui.SaturnWidget; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; +import net.minecraft.text.Style; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; +import net.minecraft.util.math.MathHelper; public class SaturnText extends SaturnWidget { private String text; + private int color = ColorHelper.getWhite(1.0f); public SaturnText(String text) { this.text = text; @@ -15,8 +19,15 @@ public class SaturnText extends SaturnWidget { this.height = SaturnClient.textRenderer.fontHeight; } + public SaturnText(String text, int color) { + this(text); + this.color = color; + } + @Override public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - context.drawText(MinecraftClient.getInstance().textRenderer, text, x, y, ColorHelper.getWhite(alpha), false); + context.drawText(SaturnClient.textRenderer, + Text.literal(text).setStyle(Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))), x, y, + color | MathHelper.ceil(this.alpha * 255.0F) << 24, false); } }