package im.expensive.ui.display.impl;
import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.Expensive;
import im.expensive.events.EventDisplay;
import im.expensive.events.EventUpdate;
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;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class CoordsRenderer implements ElementRenderer {
@Subscribe
public void update(EventUpdate e) {}
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();
float fontSize = 7.0f;
float padding = 5f;
float elementHeight = 16f;
float spacing = 3f;
// Очко
String coordsText = (int) mc.player.getPosX() + ", " + (int) mc.player.getPosY() + ", " + (int) mc.player.getPosZ();
String bpsText = String.format("%.2f", Math.hypot(mc.player.getPosX() - mc.player.prevPosX, mc.player.getPosZ() - mc.player.prevPosZ) * 20);
String fullText = "XYZ: " + coordsText + " | BPS: " + bpsText;
float textWidth = Fonts.sfbold.getWidth(fullText, fontSize);
float width = textWidth + padding * 2;
float radius = 3f;
// Расположение эаэаэа этой фигн
float posX = 5f;
float posY = window.getScaledHeight() - elementHeight - 5f;
// Шрифты
drawFullRect(posX, posY, width, elementHeight, radius);
float textPosX = posX + padding;
float textPosY = posY + (elementHeight - fontSize) / 2f + 1f;
Fonts.sfbold.drawTextWithOutline(ms, "XYZ: ", textPosX, textPosY, style.getSecondColor().getRGB(), fontSize, 0.05f);
textPosX += Fonts.sfbold.getWidth("XYZ: ", fontSize);
Fonts.sfbold.drawTextWithOutline(ms, coordsText, textPosX, textPosY, ColorUtils.rgb(158, 255, 185), fontSize, 0.05f);
textPosX += Fonts.sfbold.getWidth(coordsText, fontSize) + Fonts.sfbold.getWidth(" | ", fontSize);
Fonts.sfbold.drawTextWithOutline(ms, "BPS: ", textPosX, textPosY, style.getSecondColor().getRGB(), fontSize, 0.05f);
textPosX += Fonts.sfbold.getWidth("BPS: ", fontSize);
Fonts.sfbold.drawTextWithOutline(ms, bpsText, textPosX, textPosY, ColorUtils.rgb(158, 255, 185), fontSize, 0.05f);
}
private void drawFullRect(float x, float y, float width, float height, float radius) {
DisplayUtils.drawRoundedRect(x, y, width, height, radius, ColorUtils.rgb(10, 15, 13));
DisplayUtils.drawShadow(x + 3, y + 3, width, height, 4, ColorUtils.rgba(0, 0, 0, 90));
}
}