package im.expensive.ui.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.Expensive;
import im.expensive.events.EventDisplay;
import im.expensive.ui.display.ElementRenderer;
import im.expensive.ui.styles.Style;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;
import im.expensive.utils.render.font.Fonts;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
import net.minecraft.client.multiplayer.ServerData;
import java.text.SimpleDateFormat;
import java.util.Date;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class WatermarkRenderer implements ElementRenderer {
final Minecraft mc = Minecraft.getInstance();
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
float posX = 3;
float posY = 3;
float padding = 3;
float fontSize = 8f;
float localHeight = fontSize + padding * 2;
final ResourceLocation logo = new ResourceLocation("expensive/images/hud/logapon.png");
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();
int fps = mc.getDebugFPS();
String username = mc.session.getUsername();
// Получаем текущее время
String currentTime = new SimpleDateFormat("HH
ss").format(new Date());
// Получаем IP сервера
ServerData serverData = mc.getCurrentServerData();
String serverIP = serverData != null ? serverData.ip : "Local";
// Получаем BPS (примерный расчет, нужно реализовать логику расчета)
float bps = getBPS();
// Подсчитываем ширину текста
float textWidth = Fonts.sfui.getWidth("sakura.dlc - " + username + " " + fps + " FPS | " + bps + " BPS | " + serverIP + " | " + currentTime, fontSize);
// Отрисовка фона и текста
DisplayUtils.drawShadow(posX, posY, textWidth + padding, localHeight + 2, 15, ColorUtils.rgba(0, 0, 0, 100));
drawStyledRect(posX, posY, textWidth + padding, localHeight + 2, 3);
// Отображение текста с нужными данными
Fonts.sfui.drawText(ms, "sakura.dlc - " + username + " " + fps + " FPS | " + bps + " BPS | " + serverIP + " | " + currentTime, posX + padding + 1, posY + padding + 1, ColorUtils.rgb(255, 255, 255), fontSize);
DisplayUtils.drawImage(logo, 4, 4, 12, 13, ColorUtils.rgb(255, 255, 255));
}
private void drawStyledRect(float x, float y, float width, float height, float radius) {
DisplayUtils.drawRoundedRect(x, y, width + 10, height, radius, ColorUtils.rgba(0, 0, 0, 255));
}
// Метод для получения текущей скорости передвижения (BPS - Blocks Per Second)
private float getBPS() {
// Реализуйте метод для получения текущей скорости игрока в блоках в секунду
return 0.0f; // Заглушка, замените на реальный расчет BPS
}
}```
Во тебе чел, не благодари