Начинающий
- Статус
- Оффлайн
- Регистрация
- 29 Июн 2024
- Сообщения
- 37
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
Привет YouGame
Решил сделать вторую попытку "скида" пульса, получилось вроде неплохо
ss моя втшка
Решил сделать вторую попытку "скида" пульса, получилось вроде неплохо
ss моя втшка
pulsev2:
package runtime.minecraft.developer.funtime.client.ui.hud.impl;
import runtime.minecraft.developer.funtime.client.events.impl.EventRender2D;
import runtime.minecraft.developer.funtime.client.ui.hud.HudElement;
import runtime.minecraft.developer.funtime.client.managers.ThemeManager;
import runtime.minecraft.developer.funtime.client.util.renderer.Render2D;
import runtime.minecraft.developer.funtime.client.util.renderer.fonts.Fonts;
import runtime.minecraft.developer.funtime.client.util.renderer.fonts.Font;
import runtime.minecraft.developer.funtime.client.util.perf.Perf;
import runtime.minecraft.developer.funtime.AmethystVisuals;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.Identifier;
import java.awt.Color;
public class Watermark extends HudElement implements ThemeManager.ThemeChangeListener {
private final ThemeManager themeManager;
private final MinecraftClient mc = MinecraftClient.getInstance();
private static final Identifier LOGO = AmethystVisuals.id("hud/logo.png");
private float w, h;
private int frames = 0;
private int currentFps = 0;
private long lastSecond = System.nanoTime();
public Watermark() {
super("Watermark");
themeManager = ThemeManager.getInstance();
themeManager.addThemeChangeListener(this);
}
@Override
public void onThemeChanged(ThemeManager.Theme t) {}
private long getPing() {
try {
var entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
return entry != null ? entry.getLatency() : 0;
} catch (Exception e) {
return 0;
}
}
@Override
public void onRender2D(EventRender2D e) {
if (fullNullCheck() || closed()) return;
Perf.tryBeginFrame();
try (var __ = Perf.scopeCpu("Watermark.onRender2D")) {
frames++;
long now = System.nanoTime();
if (now - lastSecond >= 1_000_000_000L) {
currentFps = frames;
frames = 0;
lastSecond = now;
}
var mat = e.getContext().getMatrices();
Font regular = Fonts.REGULAR;
Color accent = themeManager.getCurrentTheme().getAccentColor();
String site = "AmethystVisuals";
String ping = getPing() + " ms";
String fps = currentFps + " FPS";
float sz = 8f;
float icoSz = 11f;
float pad = 8f;
float gap = 6f;
float radius = 6f;
float siteW = regular.getWidth(site, sz);
float sepW = regular.getWidth("/", sz);
float pingW = regular.getWidth(ping, sz);
float fpsW = regular.getWidth(fps, sz);
w = pad + icoSz + gap + siteW + gap + sepW + gap + pingW + gap + sepW + gap + fpsW + pad;
h = pad * 2 + sz;
setBounds(getX(), getY(), w, h);
Render2D.drawRoundedRect(mat, getX(), getY(), w, h, radius,
new Color(0, 0, 0, 255));
Render2D.drawRoundedRect(mat, getX(), getY(), w, 2f, radius,
accent);
float icoX = getX() + pad;
float icoY = getY() + (h - icoSz) / 2f;
float textY = getY() + (h - sz) / 2f;
Render2D.drawGlowOutline(mat, icoX, icoY, icoSz, icoSz,
icoSz * 2f, accent, 120, 12);
Render2D.drawTexture(mat, icoX, icoY, icoSz, icoSz,
0f, 0f, 0f, 1f, 1f, LOGO,
new Color(255, 255, 255, 255));
float x = icoX + icoSz + gap;
Render2D.drawFont(mat, regular.getFont(sz), site, x, textY,
new Color(220, 220, 225));
x += siteW + gap;
Render2D.drawFont(mat, regular.getFont(sz), "/", x, textY,
new Color(90, 90, 100));
x += sepW + gap;
Render2D.drawFont(mat, regular.getFont(sz), ping, x, textY,
new Color(220, 220, 225));
x += pingW + gap;
Render2D.drawFont(mat, regular.getFont(sz), "/", x, textY,
new Color(90, 90, 100));
x += sepW + gap;
Render2D.drawFont(mat, regular.getFont(sz), fps, x, textY,
new Color(220, 220, 225));
super.onRender2D(e);
}
}
}