Начинающий
- Статус
- Оффлайн
- Регистрация
- 8 Дек 2024
- Сообщения
- 36
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
сделал за 3 минутыЮ,Юне бейте палками первая работа фул на чатегпт
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 im.expensive.utils.text.GradientUtil;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class WatermarkRenderer implements ElementRenderer {
final ResourceLocation logo = new ResourceLocation("expensive/images/hud/logo.png");
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
float posX = 6;
float posY = 6;
float paddingX = 6f;
float paddingY = 2f;
float iconSize = 14f;
float fontSize = 7f;
Minecraft mc = Minecraft.getInstance();
int fps = mc.getDebugFPS();
int ping = 0;
if (mc.player != null && mc.getConnection() != null) {
ping = mc.getConnection().getPlayerInfo(mc.player.getUniqueID()).getResponseTime();
}
// Получаем текущий стиль клиента
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();
// Цвета из темы
int backgroundColor = ColorUtils.rgba(21, 21, 21, 220); // Можно сделать прозрачный чёрный
int borderColor = style.getFirstColor().getRGB(); // Цвет обводки из темы
int shadowColor = ColorUtils.rgba(0, 0, 0, 150);
String textStr = "Vexora | " + fps + " FPS | " + ping + " ms";
ITextComponent text = GradientUtil.gradient(textStr);
float textWidth = Fonts.sfui.getWidth(text, fontSize);
float totalWidth = paddingX * 2 + iconSize + 6f + textWidth;
float totalHeight = paddingY * 2 + iconSize;
DisplayUtils.drawRoundedRect(posX - 1, posY - 1, totalWidth + 2, totalHeight + 2, totalHeight / 2f + 2, borderColor);
DisplayUtils.drawRoundedRect(posX, posY, totalWidth, totalHeight, totalHeight / 2f, backgroundColor);
float logoX = posX + paddingX;
float logoY = posY + (totalHeight - iconSize) / 2f;
DisplayUtils.drawImage(logo, logoX, logoY, iconSize, iconSize, ColorUtils.rgb(255, 255, 255));
float textX = logoX + iconSize + 6f;
float textY = posY + (totalHeight - fontSize) / 2f;
Fonts.sfui.drawText(ms, text, textX + 0.5f, textY + 0.5f, fontSize, shadowColor);
Fonts.sfui.drawText(ms, text, textX, textY, fontSize, 255);
}
}