Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Визуальная часть Watermark hud sk3d wild 1.21.4

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2025
Сообщения
97
Реакции
2
Выберите загрузчик игры
  1. Vanilla
вообще похоже но не похоже короче говно ну хз

SS -
1773419571520.png


Code -
сарделька:
Expand Collapse Copy
package dev.sk3d.display.hud;

import dev.sk3d.features.impl.render.Hud;
import dev.sk3d.utils.display.render.geometry.Render2D;
import dev.sk3d.utils.display.render.post.KawaseBlur;
import dev.sk3d.utils.theme.ThemeManager;
import com.google.common.base.Suppliers;
import dev.sk3d.utils.client.managers.api.draggable.AbstractDraggable;
import dev.sk3d.utils.display.atlasfont.msdf.MsdfFont;
import dev.sk3d.utils.display.render.shape.ShapeProperties;
import dev.sk3d.utils.display.render.systemrender.builders.Builder;
import dev.sk3d.utils.display.color.ColorAssist;
import dev.sk3d.utils.display.render.font.FontRenderer;
import dev.sk3d.utils.display.render.font.Fonts;
import dev.sk3d.utils.display.scissor.ScissorAssist;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import org.joml.Matrix4f;
import org.joml.Vector4f;

import java.awt.Color;
import java.util.function.Supplier;

public class    Watermark extends AbstractDraggable {
    private int fpsCount = 0;
    private static final Supplier<MsdfFont> ICONS_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("icons").data("icons").build());
    private static final Supplier<MsdfFont> ICONS_FONT_1 = Suppliers.memoize(() -> MsdfFont.builder().atlas("clienticon1").data("clienticon1").build());
    private static final Supplier<MsdfFont> BOLD_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("medium").data("medium").build());
    private static final Supplier<MsdfFont> ICONS = Suppliers.memoize(() -> MsdfFont.builder().atlas("medium").data("medium").build());
    private static final Supplier<MsdfFont> HAWEN_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("hawen").data("hawen").build());
    private static final Supplier<MsdfFont> LITKA_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("litkaicons").data("litkaicons").build());
    private static final Supplier<MsdfFont> MEDIUM_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("suisseintlmedium").data("suisseintlmedium").build());
    private static final Supplier<MsdfFont> REGULAR_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("suisseintlregular").data("suisseintlregular").build());

    public Watermark() {
        super("Watermark", 10, 10, 92, 16, true);
    }

    @Override
    public void tick() {
        fpsCount = mc.getCurrentFps();
    }

    @Override
    public void drawDraggable(DrawContext e) {
        MatrixStack matrix = e.getMatrices();
        Matrix4f matrix4f = matrix.peek().getPositionMatrix();
        

        String username = mc.player != null ? mc.player.getName().getString() : "Player";
        String fpsNumber = String.valueOf(fpsCount);
        String fpsLabel = "fps";
        

        java.time.LocalTime currentTime = java.time.LocalTime.now();
        String timeText = String.format("%02d:%02d", currentTime.getHour(), currentTime.getMinute());
        
 
        String pingNumber = "1337";
        

        String userIcon = "A";
        String fpsIcon = "E";
        String timeIcon = "C";
        String pingIcon = "H";
        

        float iconSizeSmall = 14f;
        float iconSizeLarge = 14f;
        float textSize = 6.5f;
        float innerPadding = 6f;
        float gap = 1f;
        float panelHeight = 22f;
        float innerBlockHeight = 16f;
        float outerPadding = 2f;
        float blockSpacing = 3f;
        float logoSpacing = 1f;
        float endPadding = 5f;
        

        FontRenderer kefirebalFontSmall = Fonts.getSize((int)iconSizeSmall, Fonts.Type.KEFIREBAL);
        FontRenderer kefirebalFontLarge = Fonts.getSize((int)iconSizeLarge, Fonts.Type.KEFIREBAL);
        float iconWidthSmall = kefirebalFontSmall.getStringWidth(userIcon);
        float iconWidthLarge = kefirebalFontLarge.getStringWidth(timeIcon);
        float usernameWidth = MEDIUM_FONT.get().getWidth(username, textSize);
        float fpsNumberWidth = MEDIUM_FONT.get().getWidth(fpsNumber, textSize);
        float fpsLabelWidth = MEDIUM_FONT.get().getWidth(fpsLabel, textSize);
        float fpsWidth = fpsNumberWidth + fpsLabelWidth;
        float timeWidth = MEDIUM_FONT.get().getWidth(timeText, textSize);
        float pingWidth = MEDIUM_FONT.get().getWidth(pingNumber, textSize);
        
        float logoBlockWidth = 22f;
        float usernameBlockWidth = iconWidthSmall + gap + usernameWidth + innerPadding * 2;
        float fpsBlockWidth = iconWidthSmall + gap + fpsWidth + innerPadding * 2;
        float timeBlockWidth = iconWidthLarge + gap + timeWidth + innerPadding * 2;
        float pingBlockWidth = iconWidthLarge + gap + pingWidth + innerPadding * 2;
        
        float totalWidth = outerPadding * 2 + logoBlockWidth + logoSpacing + usernameBlockWidth + blockSpacing + fpsBlockWidth + blockSpacing + timeBlockWidth + blockSpacing + pingBlockWidth + endPadding;
        
        setWidth((int) totalWidth);
        setHeight((int) panelHeight);
        
        float panelX = getX();
        float panelY = getY();
        

        if (Hud.blur.isValue()) {
            Render2D.rectangleWithMask(matrix4f, panelX, panelY, totalWidth, panelHeight, 7f, 0, KawaseBlur.INSTANCE.fbos.getFirst().getColorAttachment());
        }

        rectangle.render(ShapeProperties.create(matrix, panelX, panelY, totalWidth, panelHeight)
                .round(8f)
                .softness(1)
                .color(ThemeManager.BackgroundGui.getColor())
                .build());
        
        float currentX = panelX + outerPadding;
        float blockY = panelY + (panelHeight - innerBlockHeight) / 2f;
        

        float logoWidth = 18f;
        float logoHeight = 16f;
        float logoX = currentX + (logoBlockWidth - logoWidth) / 2f;
        float logoY = blockY + (innerBlockHeight - logoHeight) / 2f;
        

        int gradientColor1 = ColorAssist.getClientColor();
        int gradientColor2 = ColorAssist.getClientColor2();
        
        rectangle.render(ShapeProperties.create(matrix, logoX, logoY, logoWidth, logoHeight)
                .round(3f)
                .color(gradientColor1, gradientColor2, gradientColor1, gradientColor2)
                .build());

        float iconLogoSize = 35f;
        FontRenderer windaezkaFont = Fonts.getSize((int)iconLogoSize, Fonts.Type.WINDAEZKA1);
        String logoText = "A";
        float iconLogoWidth = windaezkaFont.getStringWidth(logoText);
        float iconLogoX = logoX + (logoWidth - iconLogoWidth) / 2f + 1f;
        float iconLogoY = logoY + (logoHeight - iconLogoSize) / 2f + 14f;
        

        windaezkaFont.drawString(matrix, logoText, iconLogoX, iconLogoY, -1);
        
        currentX += logoBlockWidth + logoSpacing;
        
        float textBaselineHeight = HAWEN_FONT.get().getMetrics().baselineHeight();
        float contentY = blockY + (innerBlockHeight / 2f) - (textBaselineHeight * textSize / 2f) - 0.5f;
        float iconY = contentY + 3f;
        
        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, usernameBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
        
        float iconX = currentX + innerPadding;
        
        FontRenderer kefirebalIconFontSmall = Fonts.getSize((int)iconSizeSmall, Fonts.Type.KEFIREBAL);
        kefirebalIconFontSmall.drawString(matrix, userIcon, iconX, iconY, ColorAssist.getClientColor());
        
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(username)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap, contentY);
        } catch (Exception ignored) {}
        
        currentX += usernameBlockWidth + blockSpacing;
        

        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, fpsBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
        
        iconX = currentX + innerPadding;
        
        kefirebalIconFontSmall.drawString(matrix, fpsIcon, iconX, iconY, ColorAssist.getClientColor());
        
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(fpsNumber)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap, contentY);
        } catch (Exception ignored) {}
        
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(fpsLabel)
                    .size(textSize)
                    .rainbow(true).rainbowColors(ColorAssist.getClientColor(), ColorAssist.getClientColor2())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap + fpsNumberWidth, contentY);
        } catch (Exception ignored) {}
        
        currentX += fpsBlockWidth + blockSpacing;
        
        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, timeBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
        
        iconX = currentX + innerPadding;
        
        FontRenderer kefirebalIconFontLarge = Fonts.getSize((int)iconSizeLarge, Fonts.Type.KEFIREBAL);
        kefirebalIconFontLarge.drawString(matrix, timeIcon, iconX, iconY, ColorAssist.getClientColor());
        
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(timeText)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthLarge + gap, contentY);
        } catch (Exception ignored) {}
        
        currentX += timeBlockWidth + blockSpacing;
        

        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, pingBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
        
        iconX = currentX + innerPadding;
        
        kefirebalIconFontLarge.drawString(matrix, pingIcon, iconX, iconY, ColorAssist.getClientColor());
        
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(pingNumber)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthLarge + gap, contentY);
        } catch (Exception ignored) {}
    }
}
 
вообще похоже но не похоже короче говно ну хз

SS - Посмотреть вложение 330215

Code -
сарделька:
Expand Collapse Copy
package dev.sk3d.display.hud;

import dev.sk3d.features.impl.render.Hud;
import dev.sk3d.utils.display.render.geometry.Render2D;
import dev.sk3d.utils.display.render.post.KawaseBlur;
import dev.sk3d.utils.theme.ThemeManager;
import com.google.common.base.Suppliers;
import dev.sk3d.utils.client.managers.api.draggable.AbstractDraggable;
import dev.sk3d.utils.display.atlasfont.msdf.MsdfFont;
import dev.sk3d.utils.display.render.shape.ShapeProperties;
import dev.sk3d.utils.display.render.systemrender.builders.Builder;
import dev.sk3d.utils.display.color.ColorAssist;
import dev.sk3d.utils.display.render.font.FontRenderer;
import dev.sk3d.utils.display.render.font.Fonts;
import dev.sk3d.utils.display.scissor.ScissorAssist;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import org.joml.Matrix4f;
import org.joml.Vector4f;

import java.awt.Color;
import java.util.function.Supplier;

public class    Watermark extends AbstractDraggable {
    private int fpsCount = 0;
    private static final Supplier<MsdfFont> ICONS_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("icons").data("icons").build());
    private static final Supplier<MsdfFont> ICONS_FONT_1 = Suppliers.memoize(() -> MsdfFont.builder().atlas("clienticon1").data("clienticon1").build());
    private static final Supplier<MsdfFont> BOLD_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("medium").data("medium").build());
    private static final Supplier<MsdfFont> ICONS = Suppliers.memoize(() -> MsdfFont.builder().atlas("medium").data("medium").build());
    private static final Supplier<MsdfFont> HAWEN_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("hawen").data("hawen").build());
    private static final Supplier<MsdfFont> LITKA_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("litkaicons").data("litkaicons").build());
    private static final Supplier<MsdfFont> MEDIUM_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("suisseintlmedium").data("suisseintlmedium").build());
    private static final Supplier<MsdfFont> REGULAR_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("suisseintlregular").data("suisseintlregular").build());

    public Watermark() {
        super("Watermark", 10, 10, 92, 16, true);
    }

    @Override
    public void tick() {
        fpsCount = mc.getCurrentFps();
    }

    @Override
    public void drawDraggable(DrawContext e) {
        MatrixStack matrix = e.getMatrices();
        Matrix4f matrix4f = matrix.peek().getPositionMatrix();
       

        String username = mc.player != null ? mc.player.getName().getString() : "Player";
        String fpsNumber = String.valueOf(fpsCount);
        String fpsLabel = "fps";
       

        java.time.LocalTime currentTime = java.time.LocalTime.now();
        String timeText = String.format("%02d:%02d", currentTime.getHour(), currentTime.getMinute());
       
 
        String pingNumber = "1337";
       

        String userIcon = "A";
        String fpsIcon = "E";
        String timeIcon = "C";
        String pingIcon = "H";
       

        float iconSizeSmall = 14f;
        float iconSizeLarge = 14f;
        float textSize = 6.5f;
        float innerPadding = 6f;
        float gap = 1f;
        float panelHeight = 22f;
        float innerBlockHeight = 16f;
        float outerPadding = 2f;
        float blockSpacing = 3f;
        float logoSpacing = 1f;
        float endPadding = 5f;
       

        FontRenderer kefirebalFontSmall = Fonts.getSize((int)iconSizeSmall, Fonts.Type.KEFIREBAL);
        FontRenderer kefirebalFontLarge = Fonts.getSize((int)iconSizeLarge, Fonts.Type.KEFIREBAL);
        float iconWidthSmall = kefirebalFontSmall.getStringWidth(userIcon);
        float iconWidthLarge = kefirebalFontLarge.getStringWidth(timeIcon);
        float usernameWidth = MEDIUM_FONT.get().getWidth(username, textSize);
        float fpsNumberWidth = MEDIUM_FONT.get().getWidth(fpsNumber, textSize);
        float fpsLabelWidth = MEDIUM_FONT.get().getWidth(fpsLabel, textSize);
        float fpsWidth = fpsNumberWidth + fpsLabelWidth;
        float timeWidth = MEDIUM_FONT.get().getWidth(timeText, textSize);
        float pingWidth = MEDIUM_FONT.get().getWidth(pingNumber, textSize);
       
        float logoBlockWidth = 22f;
        float usernameBlockWidth = iconWidthSmall + gap + usernameWidth + innerPadding * 2;
        float fpsBlockWidth = iconWidthSmall + gap + fpsWidth + innerPadding * 2;
        float timeBlockWidth = iconWidthLarge + gap + timeWidth + innerPadding * 2;
        float pingBlockWidth = iconWidthLarge + gap + pingWidth + innerPadding * 2;
       
        float totalWidth = outerPadding * 2 + logoBlockWidth + logoSpacing + usernameBlockWidth + blockSpacing + fpsBlockWidth + blockSpacing + timeBlockWidth + blockSpacing + pingBlockWidth + endPadding;
       
        setWidth((int) totalWidth);
        setHeight((int) panelHeight);
       
        float panelX = getX();
        float panelY = getY();
       

        if (Hud.blur.isValue()) {
            Render2D.rectangleWithMask(matrix4f, panelX, panelY, totalWidth, panelHeight, 7f, 0, KawaseBlur.INSTANCE.fbos.getFirst().getColorAttachment());
        }

        rectangle.render(ShapeProperties.create(matrix, panelX, panelY, totalWidth, panelHeight)
                .round(8f)
                .softness(1)
                .color(ThemeManager.BackgroundGui.getColor())
                .build());
       
        float currentX = panelX + outerPadding;
        float blockY = panelY + (panelHeight - innerBlockHeight) / 2f;
       

        float logoWidth = 18f;
        float logoHeight = 16f;
        float logoX = currentX + (logoBlockWidth - logoWidth) / 2f;
        float logoY = blockY + (innerBlockHeight - logoHeight) / 2f;
       

        int gradientColor1 = ColorAssist.getClientColor();
        int gradientColor2 = ColorAssist.getClientColor2();
       
        rectangle.render(ShapeProperties.create(matrix, logoX, logoY, logoWidth, logoHeight)
                .round(3f)
                .color(gradientColor1, gradientColor2, gradientColor1, gradientColor2)
                .build());

        float iconLogoSize = 35f;
        FontRenderer windaezkaFont = Fonts.getSize((int)iconLogoSize, Fonts.Type.WINDAEZKA1);
        String logoText = "A";
        float iconLogoWidth = windaezkaFont.getStringWidth(logoText);
        float iconLogoX = logoX + (logoWidth - iconLogoWidth) / 2f + 1f;
        float iconLogoY = logoY + (logoHeight - iconLogoSize) / 2f + 14f;
       

        windaezkaFont.drawString(matrix, logoText, iconLogoX, iconLogoY, -1);
       
        currentX += logoBlockWidth + logoSpacing;
       
        float textBaselineHeight = HAWEN_FONT.get().getMetrics().baselineHeight();
        float contentY = blockY + (innerBlockHeight / 2f) - (textBaselineHeight * textSize / 2f) - 0.5f;
        float iconY = contentY + 3f;
       
        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, usernameBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        float iconX = currentX + innerPadding;
       
        FontRenderer kefirebalIconFontSmall = Fonts.getSize((int)iconSizeSmall, Fonts.Type.KEFIREBAL);
        kefirebalIconFontSmall.drawString(matrix, userIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(username)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap, contentY);
        } catch (Exception ignored) {}
       
        currentX += usernameBlockWidth + blockSpacing;
       

        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, fpsBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        iconX = currentX + innerPadding;
       
        kefirebalIconFontSmall.drawString(matrix, fpsIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(fpsNumber)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap, contentY);
        } catch (Exception ignored) {}
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(fpsLabel)
                    .size(textSize)
                    .rainbow(true).rainbowColors(ColorAssist.getClientColor(), ColorAssist.getClientColor2())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap + fpsNumberWidth, contentY);
        } catch (Exception ignored) {}
       
        currentX += fpsBlockWidth + blockSpacing;
       
        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, timeBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        iconX = currentX + innerPadding;
       
        FontRenderer kefirebalIconFontLarge = Fonts.getSize((int)iconSizeLarge, Fonts.Type.KEFIREBAL);
        kefirebalIconFontLarge.drawString(matrix, timeIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(timeText)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthLarge + gap, contentY);
        } catch (Exception ignored) {}
       
        currentX += timeBlockWidth + blockSpacing;
       

        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, pingBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        iconX = currentX + innerPadding;
       
        kefirebalIconFontLarge.drawString(matrix, pingIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(pingNumber)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthLarge + gap, contentY);
        } catch (Exception ignored) {}
    }
}
А нахуя ты заливаешь если это "Говно"
 
вообще похоже но не похоже короче говно ну хз

SS - Посмотреть вложение 330215

Code -
сарделька:
Expand Collapse Copy
package dev.sk3d.display.hud;

import dev.sk3d.features.impl.render.Hud;
import dev.sk3d.utils.display.render.geometry.Render2D;
import dev.sk3d.utils.display.render.post.KawaseBlur;
import dev.sk3d.utils.theme.ThemeManager;
import com.google.common.base.Suppliers;
import dev.sk3d.utils.client.managers.api.draggable.AbstractDraggable;
import dev.sk3d.utils.display.atlasfont.msdf.MsdfFont;
import dev.sk3d.utils.display.render.shape.ShapeProperties;
import dev.sk3d.utils.display.render.systemrender.builders.Builder;
import dev.sk3d.utils.display.color.ColorAssist;
import dev.sk3d.utils.display.render.font.FontRenderer;
import dev.sk3d.utils.display.render.font.Fonts;
import dev.sk3d.utils.display.scissor.ScissorAssist;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import org.joml.Matrix4f;
import org.joml.Vector4f;

import java.awt.Color;
import java.util.function.Supplier;

public class    Watermark extends AbstractDraggable {
    private int fpsCount = 0;
    private static final Supplier<MsdfFont> ICONS_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("icons").data("icons").build());
    private static final Supplier<MsdfFont> ICONS_FONT_1 = Suppliers.memoize(() -> MsdfFont.builder().atlas("clienticon1").data("clienticon1").build());
    private static final Supplier<MsdfFont> BOLD_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("medium").data("medium").build());
    private static final Supplier<MsdfFont> ICONS = Suppliers.memoize(() -> MsdfFont.builder().atlas("medium").data("medium").build());
    private static final Supplier<MsdfFont> HAWEN_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("hawen").data("hawen").build());
    private static final Supplier<MsdfFont> LITKA_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("litkaicons").data("litkaicons").build());
    private static final Supplier<MsdfFont> MEDIUM_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("suisseintlmedium").data("suisseintlmedium").build());
    private static final Supplier<MsdfFont> REGULAR_FONT = Suppliers.memoize(() -> MsdfFont.builder().atlas("suisseintlregular").data("suisseintlregular").build());

    public Watermark() {
        super("Watermark", 10, 10, 92, 16, true);
    }

    @Override
    public void tick() {
        fpsCount = mc.getCurrentFps();
    }

    @Override
    public void drawDraggable(DrawContext e) {
        MatrixStack matrix = e.getMatrices();
        Matrix4f matrix4f = matrix.peek().getPositionMatrix();
       

        String username = mc.player != null ? mc.player.getName().getString() : "Player";
        String fpsNumber = String.valueOf(fpsCount);
        String fpsLabel = "fps";
       

        java.time.LocalTime currentTime = java.time.LocalTime.now();
        String timeText = String.format("%02d:%02d", currentTime.getHour(), currentTime.getMinute());
       
 
        String pingNumber = "1337";
       

        String userIcon = "A";
        String fpsIcon = "E";
        String timeIcon = "C";
        String pingIcon = "H";
       

        float iconSizeSmall = 14f;
        float iconSizeLarge = 14f;
        float textSize = 6.5f;
        float innerPadding = 6f;
        float gap = 1f;
        float panelHeight = 22f;
        float innerBlockHeight = 16f;
        float outerPadding = 2f;
        float blockSpacing = 3f;
        float logoSpacing = 1f;
        float endPadding = 5f;
       

        FontRenderer kefirebalFontSmall = Fonts.getSize((int)iconSizeSmall, Fonts.Type.KEFIREBAL);
        FontRenderer kefirebalFontLarge = Fonts.getSize((int)iconSizeLarge, Fonts.Type.KEFIREBAL);
        float iconWidthSmall = kefirebalFontSmall.getStringWidth(userIcon);
        float iconWidthLarge = kefirebalFontLarge.getStringWidth(timeIcon);
        float usernameWidth = MEDIUM_FONT.get().getWidth(username, textSize);
        float fpsNumberWidth = MEDIUM_FONT.get().getWidth(fpsNumber, textSize);
        float fpsLabelWidth = MEDIUM_FONT.get().getWidth(fpsLabel, textSize);
        float fpsWidth = fpsNumberWidth + fpsLabelWidth;
        float timeWidth = MEDIUM_FONT.get().getWidth(timeText, textSize);
        float pingWidth = MEDIUM_FONT.get().getWidth(pingNumber, textSize);
       
        float logoBlockWidth = 22f;
        float usernameBlockWidth = iconWidthSmall + gap + usernameWidth + innerPadding * 2;
        float fpsBlockWidth = iconWidthSmall + gap + fpsWidth + innerPadding * 2;
        float timeBlockWidth = iconWidthLarge + gap + timeWidth + innerPadding * 2;
        float pingBlockWidth = iconWidthLarge + gap + pingWidth + innerPadding * 2;
       
        float totalWidth = outerPadding * 2 + logoBlockWidth + logoSpacing + usernameBlockWidth + blockSpacing + fpsBlockWidth + blockSpacing + timeBlockWidth + blockSpacing + pingBlockWidth + endPadding;
       
        setWidth((int) totalWidth);
        setHeight((int) panelHeight);
       
        float panelX = getX();
        float panelY = getY();
       

        if (Hud.blur.isValue()) {
            Render2D.rectangleWithMask(matrix4f, panelX, panelY, totalWidth, panelHeight, 7f, 0, KawaseBlur.INSTANCE.fbos.getFirst().getColorAttachment());
        }

        rectangle.render(ShapeProperties.create(matrix, panelX, panelY, totalWidth, panelHeight)
                .round(8f)
                .softness(1)
                .color(ThemeManager.BackgroundGui.getColor())
                .build());
       
        float currentX = panelX + outerPadding;
        float blockY = panelY + (panelHeight - innerBlockHeight) / 2f;
       

        float logoWidth = 18f;
        float logoHeight = 16f;
        float logoX = currentX + (logoBlockWidth - logoWidth) / 2f;
        float logoY = blockY + (innerBlockHeight - logoHeight) / 2f;
       

        int gradientColor1 = ColorAssist.getClientColor();
        int gradientColor2 = ColorAssist.getClientColor2();
       
        rectangle.render(ShapeProperties.create(matrix, logoX, logoY, logoWidth, logoHeight)
                .round(3f)
                .color(gradientColor1, gradientColor2, gradientColor1, gradientColor2)
                .build());

        float iconLogoSize = 35f;
        FontRenderer windaezkaFont = Fonts.getSize((int)iconLogoSize, Fonts.Type.WINDAEZKA1);
        String logoText = "A";
        float iconLogoWidth = windaezkaFont.getStringWidth(logoText);
        float iconLogoX = logoX + (logoWidth - iconLogoWidth) / 2f + 1f;
        float iconLogoY = logoY + (logoHeight - iconLogoSize) / 2f + 14f;
       

        windaezkaFont.drawString(matrix, logoText, iconLogoX, iconLogoY, -1);
       
        currentX += logoBlockWidth + logoSpacing;
       
        float textBaselineHeight = HAWEN_FONT.get().getMetrics().baselineHeight();
        float contentY = blockY + (innerBlockHeight / 2f) - (textBaselineHeight * textSize / 2f) - 0.5f;
        float iconY = contentY + 3f;
       
        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, usernameBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        float iconX = currentX + innerPadding;
       
        FontRenderer kefirebalIconFontSmall = Fonts.getSize((int)iconSizeSmall, Fonts.Type.KEFIREBAL);
        kefirebalIconFontSmall.drawString(matrix, userIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(username)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap, contentY);
        } catch (Exception ignored) {}
       
        currentX += usernameBlockWidth + blockSpacing;
       

        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, fpsBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        iconX = currentX + innerPadding;
       
        kefirebalIconFontSmall.drawString(matrix, fpsIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(fpsNumber)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap, contentY);
        } catch (Exception ignored) {}
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(fpsLabel)
                    .size(textSize)
                    .rainbow(true).rainbowColors(ColorAssist.getClientColor(), ColorAssist.getClientColor2())
                    .build()
                    .render(matrix4f, iconX + iconWidthSmall + gap + fpsNumberWidth, contentY);
        } catch (Exception ignored) {}
       
        currentX += fpsBlockWidth + blockSpacing;
       
        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, timeBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        iconX = currentX + innerPadding;
       
        FontRenderer kefirebalIconFontLarge = Fonts.getSize((int)iconSizeLarge, Fonts.Type.KEFIREBAL);
        kefirebalIconFontLarge.drawString(matrix, timeIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(timeText)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthLarge + gap, contentY);
        } catch (Exception ignored) {}
       
        currentX += timeBlockWidth + blockSpacing;
       

        rectangle.render(ShapeProperties.create(matrix, currentX, blockY, pingBlockWidth, innerBlockHeight)
                .round(3f)
                .softness(1)
                .color(ThemeManager.BackgroundSettings.getColor())
                .build());
       
        iconX = currentX + innerPadding;
       
        kefirebalIconFontLarge.drawString(matrix, pingIcon, iconX, iconY, ColorAssist.getClientColor());
       
        try {
            Builder.text()
                    .font(MEDIUM_FONT.get())
                    .text(pingNumber)
                    .size(textSize)
                    .color(ThemeManager.textColor.getColor())
                    .build()
                    .render(matrix4f, iconX + iconWidthLarge + gap, contentY);
        } catch (Exception ignored) {}
    }
}
так себе
 

Похожие темы

Назад
Сверху Снизу