Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Визуальная часть Watermark NightDLC/Omni skid onetap

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
5 Май 2025
Сообщения
22
Реакции
0
Выберите загрузчик игры
  1. OptiFine
Привет югейм, вот вам мой скид вантапа(мой первый скид, не бейте палками)
ss:
Снимок экрана 2025-11-20 173901.png

Мега крутой скид скачать обои онлайн::
Expand Collapse Copy
package dev.wh1tew1ndows.client.screen.hud2;

import dev.wh1tew1ndows.client.NightDLC;
import dev.wh1tew1ndows.client.api.client.Constants;
import dev.wh1tew1ndows.client.api.events.orbit.EventHandler;
import dev.wh1tew1ndows.client.managers.events.render.Render2DEvent;
import dev.wh1tew1ndows.client.managers.module.impl.render.InterFace;
import dev.wh1tew1ndows.client.screen.hud.IRenderer;
import dev.wh1tew1ndows.client.utils.animation.NumberTransition;
import dev.wh1tew1ndows.client.utils.math.Mathf;
import dev.wh1tew1ndows.client.utils.player.MoveUtil;
import dev.wh1tew1ndows.client.utils.player.PlayerUtil;
import dev.wh1tew1ndows.client.utils.render.color.ColorFormatting;
import dev.wh1tew1ndows.client.utils.render.color.ColorUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RectUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RenderUtil;
import dev.wh1tew1ndows.client.utils.render.draw.Round;
import dev.wh1tew1ndows.client.utils.render.font.Fonts;
import dev.wh1tew1ndows.client.utils.ПенисУтилита;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.util.Namespaced;
import net.mojang.blaze3d.matrix.MatrixStack;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

@Getter
public class WatermarkRender implements IRenderer {

    float tempFps = 0;
    float tempPing = 0;
    private float smoothY = -1.0F;
    private long lastTimeNs = 0L;
    private static final float SMOOTH_SPEED = 20.0F;
  
    private static final String CLIENT_NAME = "NightRework";
    private static final String COMPUTER_NAME = "Sofer";
    private static final String BUILD_VERSION = "Build: 1.1.4";

    @EventHandler
    public void render(Render2DEvent e) {
        MatrixStack ms = e.getMatrix();

        ms.push();

        float pos = 8;
        float fontSize = 6.5F;
        float height = 12;
        float barHeight = 1.0f;
        float padding = 5;
        float verticalOffset = 1.0F;

        tempFps = NumberTransition.result(tempFps, Minecraft.getDebugFPS());

        String fps = ColorFormatting.getColor(ColorUtil.getColor(255)) + "FPS: " + ((int) tempFps);

        String time = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"));

        String graySeparator = ColorFormatting.getColor(ColorUtil.getColor(255, 255, 255)) + " | ";

        int mainTextColor = ColorUtil.getColor(255);

        String textToDraw = CLIENT_NAME +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + COMPUTER_NAME +
                graySeparator +
                ColorFormatting.reset() + fps + // RESET используется для применения белого цвета из переменной fps
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + time +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + BUILD_VERSION;

        float totalWidth = Fonts.SF_BOLD.getWidth(textToDraw, fontSize) + 2 * padding;

        RenderUtil.Rounded.smooth(ms, pos + 1, pos, totalWidth, height, ColorUtil.BLACK, Round.of(0));

        RectUtil.drawRect(ms, pos + 1, pos, totalWidth, barHeight, InterFace.getInstance().themeColor());

        Fonts.SF_BOLD.draw(ms,
                textToDraw,
                pos + padding,
                pos + (height - Fonts.SF_BOLD.getHeight(fontSize)) / 2F + verticalOffset, // Смещение вниз
                mainTextColor,
                fontSize
        );


        double playerX = Mathf.round(mc.player.getPosX(), 1);
        double playerY = Mathf.round(mc.player.getPosY(), 1);
        double playerZ = Mathf.round(mc.player.getPosZ(), 1);
        String posString = playerX + ", " + playerY + ", " + playerZ;

        double bps = MoveUtil.speedSqrt() * 20.0F;
        String speedString = Mathf.round(bps, 1) + " bps";

        double tps = NightDLC.inst().serverTps().getTPS();
        String tpsString = Mathf.round(tps, 1) + " tps";

        String pingString = PlayerUtil.getPing(mc.player) + " ms";

        float statsFontSize = 8;
        float startX = 7;

        boolean isChatOpen = mc.currentScreen instanceof ChatScreen;

        float targetY = mc.getMainWindow().getScaledHeight() - statsFontSize - 15;
        if (isChatOpen) targetY -= 10;

        float dt = this.computeDtSeconds();
        if (this.smoothY < 0) this.smoothY = targetY;
        this.smoothY = this.smoothTowards(this.smoothY, targetY, dt, 20.0F);

        float y = this.smoothY;

        int mainColor = ColorUtil.getColor(200);
        int whiteColor = ColorUtil.getColor(150);
        int grayColor = ColorUtil.getColor(90, 90, 90);

        Fonts.SF_BOLD.draw(ms, "TPS » ", startX, y, mainColor, statsFontSize);

        float x = startX + Fonts.SF_BOLD.getWidth("TPS » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, tpsString, x, y, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(tpsString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Ping » ", x, y, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Ping » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, pingString, x, y, whiteColor, statsFontSize);

        float y2 = y + statsFontSize + 2;

        Fonts.SF_BOLD.draw(ms, "Pos » ", startX, y2, mainColor, statsFontSize);

        x = startX + Fonts.SF_BOLD.getWidth("Pos » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, posString, x, y2, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(posString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y2, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Speed » ", x, y2, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Speed » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, speedString, x, y2, whiteColor, statsFontSize);

        ms.pop();
    }

    private float smoothTowards(float var1, float ms, float var3, float var4) {
        if (Float.isFinite(var3) && !(var3 <= 0.0F)) {
            float var5 = 1.0F - (float) Math.exp(-var4 * var3);
            return var1 + (ms - var1) * var5;
        } else {
            return ms;
        }
    }

    private float computeDtSeconds() {
        long var1 = System.nanoTime();
        if (this.lastTimeNs == 0L) {
            this.lastTimeNs = var1;
            return 0.016666668F;
        } else {
            long var3 = var1 - this.lastTimeNs;
            this.lastTimeNs = var1;
            double var5 = Math.min(Math.max((double) var3 / (double) 1.0E9F, 0.0F), 0.1);
            return (float) var5;
        }
    }
}
 
Последнее редактирование:
Привет югейм, вот вам мой скид вантапа(мой первый скид, не бейте палками)
ss:
Посмотреть вложение 320451
Мега крутой скид скачать обои онлайн::
Expand Collapse Copy
package dev.wh1tew1ndows.client.screen.hud2;

import dev.wh1tew1ndows.client.NightDLC;
import dev.wh1tew1ndows.client.api.client.Constants;
import dev.wh1tew1ndows.client.api.events.orbit.EventHandler;
import dev.wh1tew1ndows.client.managers.events.render.Render2DEvent;
import dev.wh1tew1ndows.client.managers.module.impl.render.InterFace;
import dev.wh1tew1ndows.client.screen.hud.IRenderer;
import dev.wh1tew1ndows.client.utils.animation.NumberTransition;
import dev.wh1tew1ndows.client.utils.math.Mathf;
import dev.wh1tew1ndows.client.utils.player.MoveUtil;
import dev.wh1tew1ndows.client.utils.player.PlayerUtil;
import dev.wh1tew1ndows.client.utils.render.color.ColorFormatting;
import dev.wh1tew1ndows.client.utils.render.color.ColorUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RectUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RenderUtil;
import dev.wh1tew1ndows.client.utils.render.draw.Round;
import dev.wh1tew1ndows.client.utils.render.font.Fonts;
import dev.wh1tew1ndows.client.utils.ПенисУтилита;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.util.Namespaced;
import net.mojang.blaze3d.matrix.MatrixStack;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

@Getter
public class WatermarkRender implements IRenderer {

    float tempFps = 0;
    float tempPing = 0;
    private float smoothY = -1.0F;
    private long lastTimeNs = 0L;
    private static final float SMOOTH_SPEED = 20.0F;
  
    private static final String CLIENT_NAME = "NightRework";
    private static final String COMPUTER_NAME = "Sofer";
    private static final String BUILD_VERSION = "Build: 1.1.4";

    @EventHandler
    public void render(Render2DEvent e) {
        MatrixStack ms = e.getMatrix();

        ms.push();

        float pos = 8;
        float fontSize = 6.5F;
        float height = 12;
        float barHeight = 1.0f;
        float padding = 5;
        float verticalOffset = 1.0F;

        tempFps = NumberTransition.result(tempFps, Minecraft.getDebugFPS());

        String fps = ColorFormatting.getColor(ColorUtil.getColor(255)) + "FPS: " + ((int) tempFps);

        String time = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"));

        String graySeparator = ColorFormatting.getColor(ColorUtil.getColor(255, 255, 255)) + " | ";

        int mainTextColor = ColorUtil.getColor(255);

        String textToDraw = CLIENT_NAME +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + COMPUTER_NAME +
                graySeparator +
                ColorFormatting.reset() + fps + // RESET используется для применения белого цвета из переменной fps
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + time +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + BUILD_VERSION;

        float totalWidth = Fonts.SF_BOLD.getWidth(textToDraw, fontSize) + 2 * padding;

        RenderUtil.Rounded.smooth(ms, pos + 1, pos, totalWidth, height, ColorUtil.BLACK, Round.of(0));

        RectUtil.drawRect(ms, pos + 1, pos, totalWidth, barHeight, InterFace.getInstance().themeColor());

        Fonts.SF_BOLD.draw(ms,
                textToDraw,
                pos + padding,
                pos + (height - Fonts.SF_BOLD.getHeight(fontSize)) / 2F + verticalOffset, // Смещение вниз
                mainTextColor,
                fontSize
        );


        double playerX = Mathf.round(mc.player.getPosX(), 1);
        double playerY = Mathf.round(mc.player.getPosY(), 1);
        double playerZ = Mathf.round(mc.player.getPosZ(), 1);
        String posString = playerX + ", " + playerY + ", " + playerZ;

        double bps = MoveUtil.speedSqrt() * 20.0F;
        String speedString = Mathf.round(bps, 1) + " bps";

        double tps = NightDLC.inst().serverTps().getTPS();
        String tpsString = Mathf.round(tps, 1) + " tps";

        String pingString = PlayerUtil.getPing(mc.player) + " ms";

        float statsFontSize = 8;
        float startX = 7;

        boolean isChatOpen = mc.currentScreen instanceof ChatScreen;

        float targetY = mc.getMainWindow().getScaledHeight() - statsFontSize - 15;
        if (isChatOpen) targetY -= 10;

        float dt = this.computeDtSeconds();
        if (this.smoothY < 0) this.smoothY = targetY;
        this.smoothY = this.smoothTowards(this.smoothY, targetY, dt, 20.0F);

        float y = this.smoothY;

        int mainColor = ColorUtil.getColor(200);
        int whiteColor = ColorUtil.getColor(150);
        int grayColor = ColorUtil.getColor(90, 90, 90);

        Fonts.SF_BOLD.draw(ms, "TPS » ", startX, y, mainColor, statsFontSize);

        float x = startX + Fonts.SF_BOLD.getWidth("TPS » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, tpsString, x, y, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(tpsString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Ping » ", x, y, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Ping » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, pingString, x, y, whiteColor, statsFontSize);

        float y2 = y + statsFontSize + 2;

        Fonts.SF_BOLD.draw(ms, "Pos » ", startX, y2, mainColor, statsFontSize);

        x = startX + Fonts.SF_BOLD.getWidth("Pos » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, posString, x, y2, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(posString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y2, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Speed » ", x, y2, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Speed » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, speedString, x, y2, whiteColor, statsFontSize);

        ms.pop();
    }

    private float smoothTowards(float var1, float ms, float var3, float var4) {
        if (Float.isFinite(var3) && !(var3 <= 0.0F)) {
            float var5 = 1.0F - (float) Math.exp(-var4 * var3);
            return var1 + (ms - var1) * var5;
        } else {
            return ms;
        }
    }

    private float computeDtSeconds() {
        long var1 = System.nanoTime();
        if (this.lastTimeNs == 0L) {
            this.lastTimeNs = var1;
            return 0.016666668F;
        } else {
            long var3 = var1 - this.lastTimeNs;
            this.lastTimeNs = var1;
            double var5 = Math.min(Math.max((double) var3 / (double) 1.0E9F, 0.0F), 0.1);
            return (float) var5;
        }
    }
}
/del сливали 1 в 1
 
Привет югейм, вот вам мой скид вантапа(мой первый скид, не бейте палками)
ss:
Посмотреть вложение 320451
Мега крутой скид скачать обои онлайн::
Expand Collapse Copy
package dev.wh1tew1ndows.client.screen.hud2;

import dev.wh1tew1ndows.client.NightDLC;
import dev.wh1tew1ndows.client.api.client.Constants;
import dev.wh1tew1ndows.client.api.events.orbit.EventHandler;
import dev.wh1tew1ndows.client.managers.events.render.Render2DEvent;
import dev.wh1tew1ndows.client.managers.module.impl.render.InterFace;
import dev.wh1tew1ndows.client.screen.hud.IRenderer;
import dev.wh1tew1ndows.client.utils.animation.NumberTransition;
import dev.wh1tew1ndows.client.utils.math.Mathf;
import dev.wh1tew1ndows.client.utils.player.MoveUtil;
import dev.wh1tew1ndows.client.utils.player.PlayerUtil;
import dev.wh1tew1ndows.client.utils.render.color.ColorFormatting;
import dev.wh1tew1ndows.client.utils.render.color.ColorUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RectUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RenderUtil;
import dev.wh1tew1ndows.client.utils.render.draw.Round;
import dev.wh1tew1ndows.client.utils.render.font.Fonts;
import dev.wh1tew1ndows.client.utils.ПенисУтилита;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.util.Namespaced;
import net.mojang.blaze3d.matrix.MatrixStack;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

@Getter
public class WatermarkRender implements IRenderer {

    float tempFps = 0;
    float tempPing = 0;
    private float smoothY = -1.0F;
    private long lastTimeNs = 0L;
    private static final float SMOOTH_SPEED = 20.0F;
  
    private static final String CLIENT_NAME = "NightRework";
    private static final String COMPUTER_NAME = "Sofer";
    private static final String BUILD_VERSION = "Build: 1.1.4";

    @EventHandler
    public void render(Render2DEvent e) {
        MatrixStack ms = e.getMatrix();

        ms.push();

        float pos = 8;
        float fontSize = 6.5F;
        float height = 12;
        float barHeight = 1.0f;
        float padding = 5;
        float verticalOffset = 1.0F;

        tempFps = NumberTransition.result(tempFps, Minecraft.getDebugFPS());

        String fps = ColorFormatting.getColor(ColorUtil.getColor(255)) + "FPS: " + ((int) tempFps);

        String time = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"));

        String graySeparator = ColorFormatting.getColor(ColorUtil.getColor(255, 255, 255)) + " | ";

        int mainTextColor = ColorUtil.getColor(255);

        String textToDraw = CLIENT_NAME +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + COMPUTER_NAME +
                graySeparator +
                ColorFormatting.reset() + fps + // RESET используется для применения белого цвета из переменной fps
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + time +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + BUILD_VERSION;

        float totalWidth = Fonts.SF_BOLD.getWidth(textToDraw, fontSize) + 2 * padding;

        RenderUtil.Rounded.smooth(ms, pos + 1, pos, totalWidth, height, ColorUtil.BLACK, Round.of(0));

        RectUtil.drawRect(ms, pos + 1, pos, totalWidth, barHeight, InterFace.getInstance().themeColor());

        Fonts.SF_BOLD.draw(ms,
                textToDraw,
                pos + padding,
                pos + (height - Fonts.SF_BOLD.getHeight(fontSize)) / 2F + verticalOffset, // Смещение вниз
                mainTextColor,
                fontSize
        );


        double playerX = Mathf.round(mc.player.getPosX(), 1);
        double playerY = Mathf.round(mc.player.getPosY(), 1);
        double playerZ = Mathf.round(mc.player.getPosZ(), 1);
        String posString = playerX + ", " + playerY + ", " + playerZ;

        double bps = MoveUtil.speedSqrt() * 20.0F;
        String speedString = Mathf.round(bps, 1) + " bps";

        double tps = NightDLC.inst().serverTps().getTPS();
        String tpsString = Mathf.round(tps, 1) + " tps";

        String pingString = PlayerUtil.getPing(mc.player) + " ms";

        float statsFontSize = 8;
        float startX = 7;

        boolean isChatOpen = mc.currentScreen instanceof ChatScreen;

        float targetY = mc.getMainWindow().getScaledHeight() - statsFontSize - 15;
        if (isChatOpen) targetY -= 10;

        float dt = this.computeDtSeconds();
        if (this.smoothY < 0) this.smoothY = targetY;
        this.smoothY = this.smoothTowards(this.smoothY, targetY, dt, 20.0F);

        float y = this.smoothY;

        int mainColor = ColorUtil.getColor(200);
        int whiteColor = ColorUtil.getColor(150);
        int grayColor = ColorUtil.getColor(90, 90, 90);

        Fonts.SF_BOLD.draw(ms, "TPS » ", startX, y, mainColor, statsFontSize);

        float x = startX + Fonts.SF_BOLD.getWidth("TPS » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, tpsString, x, y, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(tpsString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Ping » ", x, y, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Ping » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, pingString, x, y, whiteColor, statsFontSize);

        float y2 = y + statsFontSize + 2;

        Fonts.SF_BOLD.draw(ms, "Pos » ", startX, y2, mainColor, statsFontSize);

        x = startX + Fonts.SF_BOLD.getWidth("Pos » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, posString, x, y2, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(posString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y2, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Speed » ", x, y2, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Speed » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, speedString, x, y2, whiteColor, statsFontSize);

        ms.pop();
    }

    private float smoothTowards(float var1, float ms, float var3, float var4) {
        if (Float.isFinite(var3) && !(var3 <= 0.0F)) {
            float var5 = 1.0F - (float) Math.exp(-var4 * var3);
            return var1 + (ms - var1) * var5;
        } else {
            return ms;
        }
    }

    private float computeDtSeconds() {
        long var1 = System.nanoTime();
        if (this.lastTimeNs == 0L) {
            this.lastTimeNs = var1;
            return 0.016666668F;
        } else {
            long var3 = var1 - this.lastTimeNs;
            this.lastTimeNs = var1;
            double var5 = Math.min(Math.max((double) var3 / (double) 1.0E9F, 0.0F), 0.1);
            return (float) var5;
        }
    }
}
где вантап
 
Последнее редактирование:
Привет югейм, вот вам мой скид вантапа(мой первый скид, не бейте палками)
ss:
Посмотреть вложение 320451
Мега крутой скид скачать обои онлайн::
Expand Collapse Copy
package dev.wh1tew1ndows.client.screen.hud2;

import dev.wh1tew1ndows.client.NightDLC;
import dev.wh1tew1ndows.client.api.client.Constants;
import dev.wh1tew1ndows.client.api.events.orbit.EventHandler;
import dev.wh1tew1ndows.client.managers.events.render.Render2DEvent;
import dev.wh1tew1ndows.client.managers.module.impl.render.InterFace;
import dev.wh1tew1ndows.client.screen.hud.IRenderer;
import dev.wh1tew1ndows.client.utils.animation.NumberTransition;
import dev.wh1tew1ndows.client.utils.math.Mathf;
import dev.wh1tew1ndows.client.utils.player.MoveUtil;
import dev.wh1tew1ndows.client.utils.player.PlayerUtil;
import dev.wh1tew1ndows.client.utils.render.color.ColorFormatting;
import dev.wh1tew1ndows.client.utils.render.color.ColorUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RectUtil;
import dev.wh1tew1ndows.client.utils.render.draw.RenderUtil;
import dev.wh1tew1ndows.client.utils.render.draw.Round;
import dev.wh1tew1ndows.client.utils.render.font.Fonts;
import dev.wh1tew1ndows.client.utils.ПенисУтилита;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.util.Namespaced;
import net.mojang.blaze3d.matrix.MatrixStack;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

@Getter
public class WatermarkRender implements IRenderer {

    float tempFps = 0;
    float tempPing = 0;
    private float smoothY = -1.0F;
    private long lastTimeNs = 0L;
    private static final float SMOOTH_SPEED = 20.0F;
  
    private static final String CLIENT_NAME = "NightRework";
    private static final String COMPUTER_NAME = "Sofer";
    private static final String BUILD_VERSION = "Build: 1.1.4";

    @EventHandler
    public void render(Render2DEvent e) {
        MatrixStack ms = e.getMatrix();

        ms.push();

        float pos = 8;
        float fontSize = 6.5F;
        float height = 12;
        float barHeight = 1.0f;
        float padding = 5;
        float verticalOffset = 1.0F;

        tempFps = NumberTransition.result(tempFps, Minecraft.getDebugFPS());

        String fps = ColorFormatting.getColor(ColorUtil.getColor(255)) + "FPS: " + ((int) tempFps);

        String time = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"));

        String graySeparator = ColorFormatting.getColor(ColorUtil.getColor(255, 255, 255)) + " | ";

        int mainTextColor = ColorUtil.getColor(255);

        String textToDraw = CLIENT_NAME +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + COMPUTER_NAME +
                graySeparator +
                ColorFormatting.reset() + fps + // RESET используется для применения белого цвета из переменной fps
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + time +
                graySeparator +
                ColorFormatting.getColor(mainTextColor) + BUILD_VERSION;

        float totalWidth = Fonts.SF_BOLD.getWidth(textToDraw, fontSize) + 2 * padding;

        RenderUtil.Rounded.smooth(ms, pos + 1, pos, totalWidth, height, ColorUtil.BLACK, Round.of(0));

        RectUtil.drawRect(ms, pos + 1, pos, totalWidth, barHeight, InterFace.getInstance().themeColor());

        Fonts.SF_BOLD.draw(ms,
                textToDraw,
                pos + padding,
                pos + (height - Fonts.SF_BOLD.getHeight(fontSize)) / 2F + verticalOffset, // Смещение вниз
                mainTextColor,
                fontSize
        );


        double playerX = Mathf.round(mc.player.getPosX(), 1);
        double playerY = Mathf.round(mc.player.getPosY(), 1);
        double playerZ = Mathf.round(mc.player.getPosZ(), 1);
        String posString = playerX + ", " + playerY + ", " + playerZ;

        double bps = MoveUtil.speedSqrt() * 20.0F;
        String speedString = Mathf.round(bps, 1) + " bps";

        double tps = NightDLC.inst().serverTps().getTPS();
        String tpsString = Mathf.round(tps, 1) + " tps";

        String pingString = PlayerUtil.getPing(mc.player) + " ms";

        float statsFontSize = 8;
        float startX = 7;

        boolean isChatOpen = mc.currentScreen instanceof ChatScreen;

        float targetY = mc.getMainWindow().getScaledHeight() - statsFontSize - 15;
        if (isChatOpen) targetY -= 10;

        float dt = this.computeDtSeconds();
        if (this.smoothY < 0) this.smoothY = targetY;
        this.smoothY = this.smoothTowards(this.smoothY, targetY, dt, 20.0F);

        float y = this.smoothY;

        int mainColor = ColorUtil.getColor(200);
        int whiteColor = ColorUtil.getColor(150);
        int grayColor = ColorUtil.getColor(90, 90, 90);

        Fonts.SF_BOLD.draw(ms, "TPS » ", startX, y, mainColor, statsFontSize);

        float x = startX + Fonts.SF_BOLD.getWidth("TPS » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, tpsString, x, y, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(tpsString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Ping » ", x, y, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Ping » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, pingString, x, y, whiteColor, statsFontSize);

        float y2 = y + statsFontSize + 2;

        Fonts.SF_BOLD.draw(ms, "Pos » ", startX, y2, mainColor, statsFontSize);

        x = startX + Fonts.SF_BOLD.getWidth("Pos » ", statsFontSize);
        Fonts.SF_BOLD.draw(ms, posString, x, y2, whiteColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(posString, statsFontSize);

        Fonts.SF_BOLD.draw(ms, " | ", x, y2, grayColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth(" | ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, "Speed » ", x, y2, mainColor, statsFontSize);
        x += Fonts.SF_BOLD.getWidth("Speed » ", statsFontSize);

        Fonts.SF_BOLD.draw(ms, speedString, x, y2, whiteColor, statsFontSize);

        ms.pop();
    }

    private float smoothTowards(float var1, float ms, float var3, float var4) {
        if (Float.isFinite(var3) && !(var3 <= 0.0F)) {
            float var5 = 1.0F - (float) Math.exp(-var4 * var3);
            return var1 + (ms - var1) * var5;
        } else {
            return ms;
        }
    }

    private float computeDtSeconds() {
        long var1 = System.nanoTime();
        if (this.lastTimeNs == 0L) {
            this.lastTimeNs = var1;
            return 0.016666668F;
        } else {
            long var3 = var1 - this.lastTimeNs;
            this.lastTimeNs = var1;
            double var5 = Math.min(Math.max((double) var3 / (double) 1.0E9F, 0.0F), 0.1);
            return (float) var5;
        }
    }
}
ай сигма лев просто
 
Назад
Сверху Снизу