ui update

This commit is contained in:
2025-03-23 17:10:06 +01:00
parent 3ff01d9fff
commit 48d9fbe1e5
13 changed files with 425 additions and 139 deletions
@@ -4,12 +4,11 @@ import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnclient.auth.SaturnSocket;
import org.saturnclient.saturnclient.cloaks.Cloaks;
import org.saturnclient.saturnclient.config.ConfigManager;
import org.saturnclient.saturnclient.event.KeyInputHandler;
import org.saturnclient.saturnmods.ModManager;
import org.saturnclient.saturnclient.auth.SaturnSocket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -18,19 +17,26 @@ import org.slf4j.LoggerFactory;
* Originally created by IIpho3nix and modified for Saturn Client by leo.
*/
public class SaturnClient implements ModInitializer {
public static final String MOD_ID = "saturnclient";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
public static int COLOR = ColorHelper.getArgb(255, 251, 60, 79);
public static int WHITE = ColorHelper.getArgb(255, 255, 255, 255);
public static int NORMAL = ColorHelper.getArgb(255, 182, 182, 182);
public static TextRenderer textRenderer = null;
public static int getWhite(float alpha) {
return ((int) (alpha * 255) << 24) | (NORMAL & 0x00FFFFFF);
}
@Override
public void onInitialize() {
LOGGER.info("Initializing " + MOD_ID);
ModManager.init();
ConfigManager.load();
ClientLifecycleEvents.CLIENT_STOPPING.register(c -> ConfigManager.save());
ClientLifecycleEvents.CLIENT_STOPPING.register(c -> ConfigManager.save()
);
KeyInputHandler.register();
if (SaturnSocket.authenticate()) {
@@ -1,11 +1,11 @@
package org.saturnclient.ui;
public class SaturnAnimation {
public int delay = 0;
public int lastTick = 0;
public void init(SaturnWidget widget) {
}
public void init(SaturnWidget widget) {}
public boolean run(SaturnWidget widget, int tick) {
return true;
@@ -3,6 +3,7 @@ package org.saturnclient.ui;
import net.minecraft.client.gui.DrawContext;
public class SaturnWidget {
public int x = 0;
public int y = 0;
public int width = 0;
@@ -11,24 +12,27 @@ public class SaturnWidget {
public SaturnAnimation[] animations = null;
public boolean visible = true;
public void init() {
}
public void init() {}
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
}
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {}
public void click(int mouseX, int mouseY) {
}
public void click(int mouseX, int mouseY) {}
public void keyPressed(int keyCode, int scanCode, int modifiers) {
}
public void keyPressed(int keyCode, int scanCode, int modifiers) {}
public void charTyped(char typedChar) {
}
public void charTyped(char typedChar) {}
public void mouseScrolled(int mouseX, int mouseY, double horizontalAmount,
double verticalAmount) {
}
public void mouseScrolled(
int mouseX,
int mouseY,
double horizontalAmount,
double verticalAmount
) {}
public SaturnWidget setX(int x) {
this.x = x;
@@ -1,5 +1,9 @@
package org.saturnclient.ui.components;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.menus.ConfigEditor;
import org.saturnclient.saturnmods.SaturnMod;
@@ -7,12 +11,8 @@ import org.saturnclient.ui.SaturnUi;
import org.saturnclient.ui.SaturnWidget;
import org.saturnclient.ui.Textures;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.math.ColorHelper;
public class SaturnModComp extends SaturnWidget {
SaturnMod mod;
public SaturnModComp(SaturnMod mod) {
@@ -20,39 +20,97 @@ public class SaturnModComp extends SaturnWidget {
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
boolean enabled = mod.isEnabled();
boolean hovering_settings = settingsHovering(mouseX, mouseY);
int color = !hovering_settings && (enabled || hovering) ? SaturnClient.COLOR : ColorHelper.getWhite(alpha);
int color = !hovering_settings && (enabled || hovering)
? SaturnClient.COLOR
: SaturnClient.getWhite(alpha);
int size = 12;
if (enabled) {
context.drawTexture(RenderLayer::getGuiTextured, Textures.MOD_BG, x, y, 0, 0, 86, 20, 86,
20, SaturnClient.COLOR);
context.drawTexture(
RenderLayer::getGuiTextured,
Textures.MOD_BG,
x,
y,
0,
0,
86,
20,
86,
20,
SaturnClient.COLOR
);
}
context.drawTexture(RenderLayer::getGuiTextured, Textures.MOD, x, y, 0, 0, 86, 20, 86,
20, color);
context.drawTexture(
RenderLayer::getGuiTextured,
Textures.MOD,
x,
y,
0,
0,
86,
20,
86,
20,
color
);
context.drawTexture(RenderLayer::getGuiTextured, mod.getIconTexture(), x + 4, y + 4, 0, 0, size, size,
size,
size, color);
context.drawTexture(
RenderLayer::getGuiTextured,
mod.getIconTexture(),
x + 4,
y + 4,
0,
0,
size,
size,
size,
size,
color
);
context.drawText(SaturnClient.textRenderer, SaturnUi.text(mod.getName()), x + 20,
y + (21 - SaturnClient.textRenderer.fontHeight) / 2,
color, false);
context.drawText(
SaturnClient.textRenderer,
SaturnUi.text(mod.getName()),
x + 20,
y + (21 - SaturnClient.textRenderer.fontHeight) / 2,
color,
false
);
context.drawTexture(RenderLayer::getGuiTextured, Textures.SETTINGS, x + 77,
y + 11, 0, 0, 7, 7, 7, 7, hovering_settings ? SaturnClient.COLOR : ColorHelper.getWhite(alpha));
context.drawTexture(
RenderLayer::getGuiTextured,
Textures.SETTINGS,
x + 77,
y + 11,
0,
0,
7,
7,
7,
7,
hovering_settings
? SaturnClient.COLOR
: SaturnClient.getWhite(alpha)
);
}
@Override
public void click(int mouseX, int mouseY) {
if (settingsHovering(mouseX, mouseY)) {
MinecraftClient.getInstance().setScreen(new ConfigEditor(mod.getConfig()));
MinecraftClient.getInstance()
.setScreen(new ConfigEditor(mod.getConfig()));
} else {
mod.setEnabled(!mod.isEnabled());
}
@@ -63,7 +121,11 @@ public class SaturnModComp extends SaturnWidget {
int sY = y + 11;
int size = 7;
return sX < mouseX && sX + size > mouseX
&& sY < mouseY && sY + size > mouseY;
return (
sX < mouseX &&
sX + size > mouseX &&
sY < mouseY &&
sY + size > mouseY
);
}
}
@@ -1,15 +1,15 @@
package org.saturnclient.ui.components;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.config.Property;
import org.saturnclient.ui.SaturnWidget;
import org.saturnclient.ui.Textures;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.math.ColorHelper;
public class SaturnToggle extends SaturnWidget {
Property<Boolean> prop;
public SaturnToggle(Property<Boolean> prop) {
@@ -19,17 +19,46 @@ public class SaturnToggle extends SaturnWidget {
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
int color = prop.value ? SaturnClient.COLOR : ColorHelper.getWhite(alpha);
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
int color = prop.value
? SaturnClient.COLOR
: SaturnClient.getWhite(alpha);
int w = 16;
int h = 6;
int s = 8;
context.drawTexture(RenderLayer::getGuiTextured, Textures.TOGGLE_BG, x,
y + 1, 0, 0, w, h, w, h, color);
context.drawTexture(
RenderLayer::getGuiTextured,
Textures.TOGGLE_BG,
x,
y + 1,
0,
0,
w,
h,
w,
h,
color
);
context.drawTexture(RenderLayer::getGuiTextured, Textures.TOGGLE_INDICATOR, prop.value ? x + 8 : x,
y, 0, 0, s, s, s, s, color);
context.drawTexture(
RenderLayer::getGuiTextured,
Textures.TOGGLE_INDICATOR,
prop.value ? x + 8 : x,
y,
0,
0,
s,
s,
s,
s,
color
);
}
@Override
@@ -1,19 +1,20 @@
package org.saturnclient.ui.widgets;
import java.util.function.Consumer;
import org.lwjgl.opengl.GL11;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnUi;
import org.saturnclient.ui.SaturnWidget;
import org.saturnclient.ui.Textures;
import com.mojang.blaze3d.systems.RenderSystem;
import java.util.function.Consumer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.MathHelper;
import org.lwjgl.opengl.GL11;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnUi;
import org.saturnclient.ui.SaturnWidget;
import org.saturnclient.ui.Textures;
public class SaturnButton extends SaturnWidget {
public boolean active = true;
public String text;
public Consumer<SaturnButton> onPress;
@@ -25,37 +26,73 @@ public class SaturnButton extends SaturnWidget {
}
public SaturnButton(String text, Runnable onPress) {
this(text, (b) -> {
this(text, b -> {
onPress.run();
});
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
MinecraftClient minecraftClient = MinecraftClient.getInstance();
int hoverColor = ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF);
int hoverColor =
((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF);
if (background) {
RenderSystem.setShaderTexture(0, Textures.BUTTON);
RenderSystem.texParameter(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_LINEAR);
RenderSystem.texParameter(
GL11.GL_TEXTURE_2D,
GL11.GL_TEXTURE_MIN_FILTER,
GL11.GL_LINEAR_MIPMAP_LINEAR
);
context.drawGuiTexture(RenderLayer::getGuiTextured, Textures.BUTTON, this.x,
this.y, this.width, this.height, ColorHelper.getWhite(this.alpha));
context.drawGuiTexture(
RenderLayer::getGuiTextured,
Textures.BUTTON,
this.x,
this.y,
this.width,
this.height,
SaturnClient.getWhite(this.alpha)
);
if (hovering) {
context.drawGuiTexture(RenderLayer::getGuiTextured, Textures.BUTTON_BORDER, this.x,
this.y, this.width, this.height, hoverColor);
context.drawGuiTexture(
RenderLayer::getGuiTextured,
Textures.BUTTON_BORDER,
this.x,
this.y,
this.width,
this.height,
hoverColor
);
}
}
if (alpha != 0.0f) {
int i = this.active ? 16777215 : 10526880;
context.drawText(minecraftClient.textRenderer,
SaturnUi.text(text),
this.x + ((this.width - minecraftClient.textRenderer.getWidth(SaturnUi.text(text))) / 2),
this.y + ((this.height - minecraftClient.textRenderer.fontHeight + 1) / 2),
hovering ? hoverColor : i | MathHelper.ceil(this.alpha * 255.0F) << 24, false);
context.drawText(
minecraftClient.textRenderer,
SaturnUi.text(text),
this.x +
((this.width -
minecraftClient.textRenderer.getWidth(
SaturnUi.text(text)
)) /
2),
this.y +
((this.height - minecraftClient.textRenderer.fontHeight + 1) /
2),
hovering
? hoverColor
: i | (MathHelper.ceil(this.alpha * 255.0F) << 24),
false
);
}
}
@@ -1,38 +1,57 @@
package org.saturnclient.ui.widgets;
import java.util.function.Consumer;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnWidget;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.MathHelper;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnWidget;
public class SaturnClickableImage extends SaturnWidget {
public Identifier texture;
public boolean selected = false;
public Consumer<SaturnClickableImage> onPress;
public int color = ColorHelper.getWhite(1.0f);
public int color = SaturnClient.getWhite(1.0f);
public int hoverColor = SaturnClient.COLOR;
public SaturnClickableImage(Identifier texture, Consumer<SaturnClickableImage> onPress) {
public SaturnClickableImage(
Identifier texture,
Consumer<SaturnClickableImage> onPress
) {
this.texture = texture;
this.onPress = onPress;
}
public SaturnClickableImage(Identifier texture, Runnable onPress) {
this(texture, (m) -> {
this(texture, m -> {
onPress.run();
});
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
context.drawTexture(RenderLayer::getGuiTextured, texture, x, y, 0, 0, width, height, width,
height, (hovering || selected ? hoverColor : color) | MathHelper.ceil(this.alpha * 255.0F) << 24);
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
context.drawTexture(
RenderLayer::getGuiTextured,
texture,
x,
y,
0,
0,
width,
height,
width,
height,
(hovering || selected ? hoverColor : color) |
(MathHelper.ceil(this.alpha * 255.0F) << 24)
);
}
@Override
@@ -44,5 +63,4 @@ public class SaturnClickableImage extends SaturnWidget {
this.selected = selected;
return this;
}
}
@@ -1,39 +1,53 @@
package org.saturnclient.ui.widgets;
import java.util.function.Consumer;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnWidget;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.MathHelper;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnWidget;
public class SaturnClickableSprite extends SaturnWidget {
public Identifier sprite;
public boolean selected = false;
public Consumer<SaturnClickableSprite> onPress;
public int color = ColorHelper.getWhite(1.0f);
public int color = SaturnClient.getWhite(1.0f);
public int hoverColor = SaturnClient.COLOR;
public SaturnClickableSprite(Identifier sprite, Consumer<SaturnClickableSprite> onPress) {
public SaturnClickableSprite(
Identifier sprite,
Consumer<SaturnClickableSprite> onPress
) {
this.sprite = sprite;
this.onPress = onPress;
}
public SaturnClickableSprite(Identifier sprite, Runnable onPress) {
this(sprite, (m) -> {
this(sprite, m -> {
onPress.run();
});
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
context.drawGuiTexture(RenderLayer::getGuiTextured, sprite, this.x,
this.y, this.width, this.height,
(hovering || selected ? hoverColor : color) | MathHelper.ceil(this.alpha * 255.0F) << 24);
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
context.drawGuiTexture(
RenderLayer::getGuiTextured,
sprite,
this.x,
this.y,
this.width,
this.height,
(hovering || selected ? hoverColor : color) |
(MathHelper.ceil(this.alpha * 255.0F) << 24)
);
}
@Override
@@ -1,13 +1,14 @@
package org.saturnclient.ui.widgets;
import org.saturnclient.ui.SaturnWidget;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnWidget;
public class SaturnImage extends SaturnWidget {
private final Identifier sprite;
public SaturnImage(Identifier sprite) {
@@ -15,8 +16,24 @@ public class SaturnImage extends SaturnWidget {
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
context.drawTexture(RenderLayer::getGuiTextured, sprite, x, y, 0, 0, width, height, width,
height, ColorHelper.getWhite(alpha));
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
context.drawTexture(
RenderLayer::getGuiTextured,
sprite,
x,
y,
0,
0,
width,
height,
width,
height,
ColorHelper.getWhite(alpha)
);
}
}
@@ -1,42 +1,68 @@
package org.saturnclient.ui.widgets;
import java.util.function.Consumer;
import org.saturnclient.saturnclient.SaturnClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnclient.SaturnClient;
public class SaturnImageButton extends SaturnButton {
public Identifier sprite;
public int imageWidth;
public int imageHeight;
public Consumer<SaturnImageButton> onPress;
public SaturnImageButton(Identifier sprite, int imageWidth, int imageHeight, Consumer<SaturnImageButton> onPress) {
super("", (b) -> {
});
public SaturnImageButton(
Identifier sprite,
int imageWidth,
int imageHeight,
Consumer<SaturnImageButton> onPress
) {
super("", b -> {});
this.sprite = sprite;
this.imageWidth = imageWidth;
this.imageHeight = imageHeight;
this.onPress = onPress;
}
public SaturnImageButton(Identifier sprite, int imageWidth, int imageHeight, Runnable onPress) {
this(sprite, imageWidth, imageHeight, (b) -> {
public SaturnImageButton(
Identifier sprite,
int imageWidth,
int imageHeight,
Runnable onPress
) {
this(sprite, imageWidth, imageHeight, b -> {
onPress.run();
});
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
super.render(context, hovering, mouseX, mouseY);
int hoverColor = ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF);
int hoverColor =
((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF);
context.drawTexture(RenderLayer::getGuiTextured, sprite, (x + (width - imageWidth) / 2),
(y + (height - imageHeight) / 2), 0, 0, imageWidth, imageHeight, imageWidth,
imageHeight, hovering ? hoverColor : ColorHelper.getWhite(alpha));
context.drawTexture(
RenderLayer::getGuiTextured,
sprite,
(x + (width - imageWidth) / 2),
(y + (height - imageHeight) / 2),
0,
0,
imageWidth,
imageHeight,
imageWidth,
imageHeight,
hovering ? hoverColor : SaturnClient.getWhite(alpha)
);
}
@Override
@@ -1,24 +1,32 @@
package org.saturnclient.ui.widgets;
import org.lwjgl.glfw.GLFW;
import org.saturnclient.ui.SaturnUi;
import org.saturnclient.ui.SaturnWidget;
import org.saturnclient.ui.Textures;
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.util.math.ColorHelper;
import org.lwjgl.glfw.GLFW;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnUi;
import org.saturnclient.ui.SaturnWidget;
import org.saturnclient.ui.Textures;
public class SaturnInputBox extends SaturnWidget {
public String text = "";
public String placeholder = "";
public int cursorPosition = 0;
public boolean focused = false;
private TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
private TextRenderer textRenderer = MinecraftClient.getInstance()
.textRenderer;
public SaturnInputBox(String placeholder, int x, int y, int width, int height) {
public SaturnInputBox(
String placeholder,
int x,
int y,
int width,
int height
) {
this.x = x;
this.y = y;
this.width = width;
@@ -34,8 +42,10 @@ public class SaturnInputBox extends SaturnWidget {
@Override
public void charTyped(char chr) {
if (focused) {
text = text.substring(0, cursorPosition) + chr
+ text.substring(cursorPosition);
text =
text.substring(0, cursorPosition) +
chr +
text.substring(cursorPosition);
cursorPosition++;
}
@@ -46,7 +56,9 @@ public class SaturnInputBox extends SaturnWidget {
if (focused) {
if (keyCode == GLFW.GLFW_KEY_BACKSPACE) {
if (cursorPosition > 0) {
text = text.substring(0, cursorPosition - 1) + text.substring(cursorPosition);
text =
text.substring(0, cursorPosition - 1) +
text.substring(cursorPosition);
cursorPosition--;
}
} else if (keyCode == GLFW.GLFW_KEY_LEFT) {
@@ -62,22 +74,51 @@ public class SaturnInputBox extends SaturnWidget {
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
context.drawGuiTexture(RenderLayer::getGuiTextured, Textures.BUTTON, this.x,
this.y, this.width, this.height, ColorHelper.getWhite(this.alpha));
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
context.drawGuiTexture(
RenderLayer::getGuiTextured,
Textures.BUTTON,
this.x,
this.y,
this.width,
this.height,
SaturnClient.getWhite(this.alpha)
);
int scrollOffset = getScrollOffset();
String visibleText = text.substring(scrollOffset);
int textColor = focused ? 0xFFFFFF : 0xAAAAAA;
context.drawText(textRenderer,
SaturnUi.text(visibleText), x + 5,
y + 5, textColor, false);
context.drawText(
textRenderer,
SaturnUi.text(visibleText),
x + 5,
y + 5,
textColor,
false
);
if (focused) {
int cursorX = x + 5
+ textRenderer.getWidth(SaturnUi.text(visibleText.substring(0, cursorPosition - scrollOffset)));
context.fill(cursorX, y + 3, cursorX + 1, y + height - 3, 0xFFFFFFFF);
int cursorX =
x +
5 +
textRenderer.getWidth(
SaturnUi.text(
visibleText.substring(0, cursorPosition - scrollOffset)
)
);
context.fill(
cursorX,
y + 3,
cursorX + 1,
y + height - 3,
0xFFFFFFFF
);
}
}
@@ -94,11 +135,19 @@ public class SaturnInputBox extends SaturnWidget {
int offset = 0;
if (cursorPosition == text.length()) {
while (textRenderer.getWidth(SaturnUi.text(text.substring(offset))) > width) {
while (
textRenderer.getWidth(SaturnUi.text(text.substring(offset))) >
width
) {
offset++;
}
} else {
while (textRenderer.getWidth(SaturnUi.text(text.substring(offset, cursorPosition))) > width) {
while (
textRenderer.getWidth(
SaturnUi.text(text.substring(offset, cursorPosition))
) >
width
) {
offset++;
}
}
@@ -1,13 +1,14 @@
package org.saturnclient.ui.widgets;
import org.saturnclient.ui.SaturnWidget;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnWidget;
public class SaturnSprite extends SaturnWidget {
private final Identifier sprite;
public SaturnSprite(Identifier sprite) {
@@ -15,8 +16,20 @@ public class SaturnSprite extends SaturnWidget {
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
context.drawGuiTexture(RenderLayer::getGuiTextured, sprite, this.x,
this.y, this.width, this.height, ColorHelper.getWhite(this.alpha));
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
context.drawGuiTexture(
RenderLayer::getGuiTextured,
sprite,
this.x,
this.y,
this.width,
this.height,
ColorHelper.getWhite(this.alpha)
);
}
}
@@ -1,12 +1,13 @@
package org.saturnclient.ui.widgets;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.util.math.ColorHelper;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnUi;
import org.saturnclient.ui.SaturnWidget;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.util.math.ColorHelper;
public class SaturnText extends SaturnWidget {
private String text;
public SaturnText(String text) {
@@ -20,9 +21,19 @@ public class SaturnText extends SaturnWidget {
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
context.drawText(SaturnClient.textRenderer,
SaturnUi.text(text), x, y,
ColorHelper.getWhite(alpha), false);
public void render(
DrawContext context,
boolean hovering,
int mouseX,
int mouseY
) {
context.drawText(
SaturnClient.textRenderer,
SaturnUi.text(text),
x,
y,
SaturnClient.getWhite(alpha),
false
);
}
}