Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Watermark | Expensive 3.1

  • Автор темы Автор темы LKDS
  • Дата начала Дата начала
Новичок
Новичок
Статус
Оффлайн
Регистрация
21 Мар 2024
Сообщения
1
Реакции
0
говно код сделанный нейросетью

SS:
Пожалуйста, авторизуйтесь для просмотра ссылки.


CODE:

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.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

@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 = 1; // Начальная позиция X
float posY = 3; // Начальная позиция Y
float padding = 4; // Отступ между окнами
float boxHeight = 15; // Высота прямоугольного окна
float minBoxWidth = 60; // Минимальная ширина прямоугольного окна
float fontSize = 5.0f; // Размер шрифта

PlayerEntity player = mc.player;

if (player != null) {
String playerName = player.getName().getString();
int fps = mc.getDebugFPS();

ITextComponent nameText = GradientUtil.gradient("Name: " + playerName);
ITextComponent fpsText = GradientUtil.gradient("FPS: " + fps);
ITextComponent titleText = GradientUtil.gradient("Expensive");

// Вычисляем размеры текста
float titleWidth = Fonts.sfui.getWidth(titleText.getString(), fontSize);
float nameWidth = Fonts.sfui.getWidth(nameText.getString(), fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText.getString(), fontSize);

// Ширина окна должна быть как минимум minBoxWidth и расширяться, если текст не вмещается
float titleBoxWidth = Math.max(minBoxWidth, titleWidth + padding * 2);
float nameBoxWidth = Math.max(minBoxWidth, nameWidth + padding * 2);
float fpsBoxWidth = Math.max(minBoxWidth, fpsWidth + padding * 2);

// Получение ширины экрана
int screenWidth = mc.getMainWindow().getScaledWidth();

// Отображаем название "Expensive" в прямоугольном окне
drawStyledRect(ms, posX, posY, titleBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, titleText, posX + (titleBoxWidth - titleWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем имя игрока в следующем прямоугольном окне
float nextPosX = posX + titleBoxWidth + padding;
if (nextPosX + nameBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
nextPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, nextPosX, posY, nameBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, nameText, nextPosX + (nameBoxWidth - nameWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем FPS в следующем прямоугольном окне
float lastPosX = nextPosX + nameBoxWidth + padding;
if (lastPosX + fpsBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
lastPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, lastPosX, posY, fpsBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, fpsText, lastPosX + (fpsBoxWidth - fpsWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);
}
}

private void drawStyledRect(MatrixStack ms, float x, float y, float width, float height, float radius) {
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 2.5f, ColorUtils.getColor(0)); // outline
DisplayUtils.drawRoundedRect(x, y, width, height, radius + 2.5f, ColorUtils.rgba(21, 21, 21, 255));
}
}



ЕСЛИ У ВАС ДЛИННЫЙ НИК ЭТО ПРЕДУСМОТРЕНО
 
Последнее редактирование:
говно переделывай, я не видел ватермарки хуже этой
 
Блять, мои глаза
Ладно, у профиля 1 сообщение :NotLikeThis:
 
ебать -глаза и это хуйня делаеться меньше чем за 5 минут
 
Полная хуйня у меня глаза заболели!
 
говно код сделанный нейросетью

SS:
Пожалуйста, авторизуйтесь для просмотра ссылки.


CODE:

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.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

@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 = 1; // Начальная позиция X
float posY = 3; // Начальная позиция Y
float padding = 4; // Отступ между окнами
float boxHeight = 15; // Высота прямоугольного окна
float minBoxWidth = 60; // Минимальная ширина прямоугольного окна
float fontSize = 5.0f; // Размер шрифта

PlayerEntity player = mc.player;

if (player != null) {
String playerName = player.getName().getString();
int fps = mc.getDebugFPS();

ITextComponent nameText = GradientUtil.gradient("Name: " + playerName);
ITextComponent fpsText = GradientUtil.gradient("FPS: " + fps);
ITextComponent titleText = GradientUtil.gradient("Expensive");

// Вычисляем размеры текста
float titleWidth = Fonts.sfui.getWidth(titleText.getString(), fontSize);
float nameWidth = Fonts.sfui.getWidth(nameText.getString(), fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText.getString(), fontSize);

// Ширина окна должна быть как минимум minBoxWidth и расширяться, если текст не вмещается
float titleBoxWidth = Math.max(minBoxWidth, titleWidth + padding * 2);
float nameBoxWidth = Math.max(minBoxWidth, nameWidth + padding * 2);
float fpsBoxWidth = Math.max(minBoxWidth, fpsWidth + padding * 2);

// Получение ширины экрана
int screenWidth = mc.getMainWindow().getScaledWidth();

// Отображаем название "Expensive" в прямоугольном окне
drawStyledRect(ms, posX, posY, titleBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, titleText, posX + (titleBoxWidth - titleWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем имя игрока в следующем прямоугольном окне
float nextPosX = posX + titleBoxWidth + padding;
if (nextPosX + nameBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
nextPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, nextPosX, posY, nameBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, nameText, nextPosX + (nameBoxWidth - nameWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем FPS в следующем прямоугольном окне
float lastPosX = nextPosX + nameBoxWidth + padding;
if (lastPosX + fpsBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
lastPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, lastPosX, posY, fpsBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, fpsText, lastPosX + (fpsBoxWidth - fpsWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);
}
}

private void drawStyledRect(MatrixStack ms, float x, float y, float width, float height, float radius) {
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 2.5f, ColorUtils.getColor(0)); // outline
DisplayUtils.drawRoundedRect(x, y, width, height, radius + 2.5f, ColorUtils.rgba(21, 21, 21, 255));
}
}



ЕСЛИ У ВАС ДЛИННЫЙ НИК ЭТО ПРЕДУСМОТРЕНО
задумка хуйня, исполнение хуйня спасибо тебе большое , чтобы ты умер
 
/del нахуй глаза себе вырежи
 
говно код сделанный нейросетью

SS:
Пожалуйста, авторизуйтесь для просмотра ссылки.


CODE:

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.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

@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 = 1; // Начальная позиция X
float posY = 3; // Начальная позиция Y
float padding = 4; // Отступ между окнами
float boxHeight = 15; // Высота прямоугольного окна
float minBoxWidth = 60; // Минимальная ширина прямоугольного окна
float fontSize = 5.0f; // Размер шрифта

PlayerEntity player = mc.player;

if (player != null) {
String playerName = player.getName().getString();
int fps = mc.getDebugFPS();

ITextComponent nameText = GradientUtil.gradient("Name: " + playerName);
ITextComponent fpsText = GradientUtil.gradient("FPS: " + fps);
ITextComponent titleText = GradientUtil.gradient("Expensive");

// Вычисляем размеры текста
float titleWidth = Fonts.sfui.getWidth(titleText.getString(), fontSize);
float nameWidth = Fonts.sfui.getWidth(nameText.getString(), fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText.getString(), fontSize);

// Ширина окна должна быть как минимум minBoxWidth и расширяться, если текст не вмещается
float titleBoxWidth = Math.max(minBoxWidth, titleWidth + padding * 2);
float nameBoxWidth = Math.max(minBoxWidth, nameWidth + padding * 2);
float fpsBoxWidth = Math.max(minBoxWidth, fpsWidth + padding * 2);

// Получение ширины экрана
int screenWidth = mc.getMainWindow().getScaledWidth();

// Отображаем название "Expensive" в прямоугольном окне
drawStyledRect(ms, posX, posY, titleBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, titleText, posX + (titleBoxWidth - titleWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем имя игрока в следующем прямоугольном окне
float nextPosX = posX + titleBoxWidth + padding;
if (nextPosX + nameBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
nextPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, nextPosX, posY, nameBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, nameText, nextPosX + (nameBoxWidth - nameWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем FPS в следующем прямоугольном окне
float lastPosX = nextPosX + nameBoxWidth + padding;
if (lastPosX + fpsBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
lastPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, lastPosX, posY, fpsBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, fpsText, lastPosX + (fpsBoxWidth - fpsWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);
}
}

private void drawStyledRect(MatrixStack ms, float x, float y, float width, float height, float radius) {
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 2.5f, ColorUtils.getColor(0)); // outline
DisplayUtils.drawRoundedRect(x, y, width, height, radius + 2.5f, ColorUtils.rgba(21, 21, 21, 255));
}
}



ЕСЛИ У ВАС ДЛИННЫЙ НИК ЭТО ПРЕДУСМОТРЕНО
/del
 
говно код сделанный нейросетью

SS:
Пожалуйста, авторизуйтесь для просмотра ссылки.


CODE:

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.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

@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 = 1; // Начальная позиция X
float posY = 3; // Начальная позиция Y
float padding = 4; // Отступ между окнами
float boxHeight = 15; // Высота прямоугольного окна
float minBoxWidth = 60; // Минимальная ширина прямоугольного окна
float fontSize = 5.0f; // Размер шрифта

PlayerEntity player = mc.player;

if (player != null) {
String playerName = player.getName().getString();
int fps = mc.getDebugFPS();

ITextComponent nameText = GradientUtil.gradient("Name: " + playerName);
ITextComponent fpsText = GradientUtil.gradient("FPS: " + fps);
ITextComponent titleText = GradientUtil.gradient("Expensive");

// Вычисляем размеры текста
float titleWidth = Fonts.sfui.getWidth(titleText.getString(), fontSize);
float nameWidth = Fonts.sfui.getWidth(nameText.getString(), fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText.getString(), fontSize);

// Ширина окна должна быть как минимум minBoxWidth и расширяться, если текст не вмещается
float titleBoxWidth = Math.max(minBoxWidth, titleWidth + padding * 2);
float nameBoxWidth = Math.max(minBoxWidth, nameWidth + padding * 2);
float fpsBoxWidth = Math.max(minBoxWidth, fpsWidth + padding * 2);

// Получение ширины экрана
int screenWidth = mc.getMainWindow().getScaledWidth();

// Отображаем название "Expensive" в прямоугольном окне
drawStyledRect(ms, posX, posY, titleBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, titleText, posX + (titleBoxWidth - titleWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем имя игрока в следующем прямоугольном окне
float nextPosX = posX + titleBoxWidth + padding;
if (nextPosX + nameBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
nextPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, nextPosX, posY, nameBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, nameText, nextPosX + (nameBoxWidth - nameWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем FPS в следующем прямоугольном окне
float lastPosX = nextPosX + nameBoxWidth + padding;
if (lastPosX + fpsBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
lastPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, lastPosX, posY, fpsBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, fpsText, lastPosX + (fpsBoxWidth - fpsWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);
}
}

private void drawStyledRect(MatrixStack ms, float x, float y, float width, float height, float radius) {
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 2.5f, ColorUtils.getColor(0)); // outline
DisplayUtils.drawRoundedRect(x, y, width, height, radius + 2.5f, ColorUtils.rgba(21, 21, 21, 255));
}
}



ЕСЛИ У ВАС ДЛИННЫЙ НИК ЭТО ПРЕДУСМОТРЕНО
Привет, можно твой дискорд? мне просто помощь с вотермаркой нужна
 
говно код сделанный нейросетью

SS:
Пожалуйста, авторизуйтесь для просмотра ссылки.


CODE:

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.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

@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 = 1; // Начальная позиция X
float posY = 3; // Начальная позиция Y
float padding = 4; // Отступ между окнами
float boxHeight = 15; // Высота прямоугольного окна
float minBoxWidth = 60; // Минимальная ширина прямоугольного окна
float fontSize = 5.0f; // Размер шрифта

PlayerEntity player = mc.player;

if (player != null) {
String playerName = player.getName().getString();
int fps = mc.getDebugFPS();

ITextComponent nameText = GradientUtil.gradient("Name: " + playerName);
ITextComponent fpsText = GradientUtil.gradient("FPS: " + fps);
ITextComponent titleText = GradientUtil.gradient("Expensive");

// Вычисляем размеры текста
float titleWidth = Fonts.sfui.getWidth(titleText.getString(), fontSize);
float nameWidth = Fonts.sfui.getWidth(nameText.getString(), fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText.getString(), fontSize);

// Ширина окна должна быть как минимум minBoxWidth и расширяться, если текст не вмещается
float titleBoxWidth = Math.max(minBoxWidth, titleWidth + padding * 2);
float nameBoxWidth = Math.max(minBoxWidth, nameWidth + padding * 2);
float fpsBoxWidth = Math.max(minBoxWidth, fpsWidth + padding * 2);

// Получение ширины экрана
int screenWidth = mc.getMainWindow().getScaledWidth();

// Отображаем название "Expensive" в прямоугольном окне
drawStyledRect(ms, posX, posY, titleBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, titleText, posX + (titleBoxWidth - titleWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем имя игрока в следующем прямоугольном окне
float nextPosX = posX + titleBoxWidth + padding;
if (nextPosX + nameBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
nextPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, nextPosX, posY, nameBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, nameText, nextPosX + (nameBoxWidth - nameWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем FPS в следующем прямоугольном окне
float lastPosX = nextPosX + nameBoxWidth + padding;
if (lastPosX + fpsBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
lastPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, lastPosX, posY, fpsBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, fpsText, lastPosX + (fpsBoxWidth - fpsWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);
}
}

private void drawStyledRect(MatrixStack ms, float x, float y, float width, float height, float radius) {
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 2.5f, ColorUtils.getColor(0)); // outline
DisplayUtils.drawRoundedRect(x, y, width, height, radius + 2.5f, ColorUtils.rgba(21, 21, 21, 255));
}
}



ЕСЛИ У ВАС ДЛИННЫЙ НИК ЭТО ПРЕДУСМОТРЕНО
пиздец...
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
говно код сделанный нейросетью

SS:
Пожалуйста, авторизуйтесь для просмотра ссылки.


CODE:

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.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

@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 = 1; // Начальная позиция X
float posY = 3; // Начальная позиция Y
float padding = 4; // Отступ между окнами
float boxHeight = 15; // Высота прямоугольного окна
float minBoxWidth = 60; // Минимальная ширина прямоугольного окна
float fontSize = 5.0f; // Размер шрифта

PlayerEntity player = mc.player;

if (player != null) {
String playerName = player.getName().getString();
int fps = mc.getDebugFPS();

ITextComponent nameText = GradientUtil.gradient("Name: " + playerName);
ITextComponent fpsText = GradientUtil.gradient("FPS: " + fps);
ITextComponent titleText = GradientUtil.gradient("Expensive");

// Вычисляем размеры текста
float titleWidth = Fonts.sfui.getWidth(titleText.getString(), fontSize);
float nameWidth = Fonts.sfui.getWidth(nameText.getString(), fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText.getString(), fontSize);

// Ширина окна должна быть как минимум minBoxWidth и расширяться, если текст не вмещается
float titleBoxWidth = Math.max(minBoxWidth, titleWidth + padding * 2);
float nameBoxWidth = Math.max(minBoxWidth, nameWidth + padding * 2);
float fpsBoxWidth = Math.max(minBoxWidth, fpsWidth + padding * 2);

// Получение ширины экрана
int screenWidth = mc.getMainWindow().getScaledWidth();

// Отображаем название "Expensive" в прямоугольном окне
drawStyledRect(ms, posX, posY, titleBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, titleText, posX + (titleBoxWidth - titleWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем имя игрока в следующем прямоугольном окне
float nextPosX = posX + titleBoxWidth + padding;
if (nextPosX + nameBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
nextPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, nextPosX, posY, nameBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, nameText, nextPosX + (nameBoxWidth - nameWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем FPS в следующем прямоугольном окне
float lastPosX = nextPosX + nameBoxWidth + padding;
if (lastPosX + fpsBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
lastPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, lastPosX, posY, fpsBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, fpsText, lastPosX + (fpsBoxWidth - fpsWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);
}
}

private void drawStyledRect(MatrixStack ms, float x, float y, float width, float height, float radius) {
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 2.5f, ColorUtils.getColor(0)); // outline
DisplayUtils.drawRoundedRect(x, y, width, height, radius + 2.5f, ColorUtils.rgba(21, 21, 21, 255));
}
}



ЕСЛИ У ВАС ДЛИННЫЙ НИК ЭТО ПРЕДУСМОТРЕНО
если ты новичек, то в принципе пойдёт)
 
говно код сделанный нейросетью

SS:
Пожалуйста, авторизуйтесь для просмотра ссылки.


CODE:

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.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

@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 = 1; // Начальная позиция X
float posY = 3; // Начальная позиция Y
float padding = 4; // Отступ между окнами
float boxHeight = 15; // Высота прямоугольного окна
float minBoxWidth = 60; // Минимальная ширина прямоугольного окна
float fontSize = 5.0f; // Размер шрифта

PlayerEntity player = mc.player;

if (player != null) {
String playerName = player.getName().getString();
int fps = mc.getDebugFPS();

ITextComponent nameText = GradientUtil.gradient("Name: " + playerName);
ITextComponent fpsText = GradientUtil.gradient("FPS: " + fps);
ITextComponent titleText = GradientUtil.gradient("Expensive");

// Вычисляем размеры текста
float titleWidth = Fonts.sfui.getWidth(titleText.getString(), fontSize);
float nameWidth = Fonts.sfui.getWidth(nameText.getString(), fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText.getString(), fontSize);

// Ширина окна должна быть как минимум minBoxWidth и расширяться, если текст не вмещается
float titleBoxWidth = Math.max(minBoxWidth, titleWidth + padding * 2);
float nameBoxWidth = Math.max(minBoxWidth, nameWidth + padding * 2);
float fpsBoxWidth = Math.max(minBoxWidth, fpsWidth + padding * 2);

// Получение ширины экрана
int screenWidth = mc.getMainWindow().getScaledWidth();

// Отображаем название "Expensive" в прямоугольном окне
drawStyledRect(ms, posX, posY, titleBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, titleText, posX + (titleBoxWidth - titleWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем имя игрока в следующем прямоугольном окне
float nextPosX = posX + titleBoxWidth + padding;
if (nextPosX + nameBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
nextPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, nextPosX, posY, nameBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, nameText, nextPosX + (nameBoxWidth - nameWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);

// Отображаем FPS в следующем прямоугольном окне
float lastPosX = nextPosX + nameBoxWidth + padding;
if (lastPosX + fpsBoxWidth > screenWidth) { // Перенос на новую строку, если не помещается
lastPosX = posX;
posY += boxHeight + padding;
}
drawStyledRect(ms, lastPosX, posY, fpsBoxWidth, boxHeight, 5);
Fonts.sfui.drawText(ms, fpsText, lastPosX + (fpsBoxWidth - fpsWidth) / 2, posY + (boxHeight - fontSize) / 2, fontSize, 0xFFFFFF);
}
}

private void drawStyledRect(MatrixStack ms, float x, float y, float width, float height, float radius) {
Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 2.5f, ColorUtils.getColor(0)); // outline
DisplayUtils.drawRoundedRect(x, y, width, height, radius + 2.5f, ColorUtils.rgba(21, 21, 21, 255));
}
}



ЕСЛИ У ВАС ДЛИННЫЙ НИК ЭТО ПРЕДУСМОТРЕНО
Мои глаза...
/del
 
Как это пропустили нахуй
 
кто одобрил
 

Похожие темы

Назад
Сверху Снизу