Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Июн 2024
- Сообщения
- 40
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
EvaWareWidget:
package killse.dest.client.ui.widget.overlay;
import net.minecraft.client.util.math.MatrixStack;
import killse.dest.api.utils.math.MathUtil;
import killse.dest.api.utils.color.UIColors;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.utils.render.fonts.Font;
import killse.dest.client.ui.widget.Widget;
import java.awt.*;
public class EvaWareWidget extends Widget {
private float animFps;
@Override
public String getName() {
return "Watermark";
}
@Override
public void tick() {
}
public EvaWareWidget() {
super(3f, 3f);
}
@Override
public void render(MatrixStack matrixStack) {
float x = getDraggable().getX();
float y = getDraggable().getY();
String clientName = "Destruct";
String version = " Beta";
animFps = MathUtil.interpolate((int) animFps, mc.getCurrentFps(), 0.2f);
String fpsText = (int) animFps + " FPS";
String serverText = getServerName();
Font font = getSemiBoldFont();
float fontSize = scaled(7f);
float clientWidth = font.getWidth(clientName, fontSize);
float versionWidth = font.getWidth(version, fontSize);
float fpsWidth = font.getWidth(fpsText, fontSize);
float serverWidth = font.getWidth(serverText, fontSize);
float spacing = scaled(6f);
float totalWidth = clientWidth + versionWidth + spacing + fpsWidth + spacing + serverWidth;
float padding = scaled(4f);
float backgroundWidth = totalWidth + padding * 2f;
float backgroundHeight = fontSize + scaled(3f);
float gap = getGap() * 0.4f;
float finalWidth = backgroundWidth + gap * 2f;
float finalHeight = backgroundHeight + gap * 2f;
float round = finalHeight * 0.3f;
RenderUtil.BLUR_RECT.draw(matrixStack, x, y, finalWidth, finalHeight, round, new Color(12, 12, 18, 240));
float innerX = x + gap;
float innerWidth = finalWidth - gap * 2f;
float textX = innerX + (innerWidth - totalWidth) / 2f;
float textY = y + (finalHeight - fontSize) / 2f;
font.drawGradientText(matrixStack, clientName, textX, textY, fontSize, UIColors.primary(), UIColors.secondary(), clientWidth / 4f);
float versionX = textX + clientWidth;
font.drawText(matrixStack, version, versionX, textY, fontSize, UIColors.inactiveTextColor());
float fpsX = versionX + versionWidth + spacing;
Color fpsColor = animFps >= 60 ? UIColors.positiveColor() :
animFps >= 30 ? UIColors.middleColor() : UIColors.negativeColor();
font.drawText(matrixStack, fpsText, fpsX, textY, fontSize, fpsColor);
float serverX = fpsX + fpsWidth + spacing;
font.drawText(matrixStack, serverText, serverX, textY, fontSize, UIColors.textColor());
getDraggable().setWidth(finalWidth);
getDraggable().setHeight(finalHeight);
}
private String getServerName() {
if (mc.getCurrentServerEntry() != null) {
String address = mc.getCurrentServerEntry().address;
if (address.contains("mc.reallyworld.ru") || address.contains("reallyworld.ru")) {
return "reallyworld";
}
return address;
}
return "Singleplayer";
}
}