Визуальная часть Def watermark 3.1 / evaware (danq)

  • Автор темы Автор темы Milced
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
9 Фев 2024
Сообщения
83
Реакции
0
Выберите загрузчик игры
  1. Прочие моды

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
1751436584382.png
(id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
1751436584382.png

wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}
если для вас шит пост, сорян!!!
 
ливни с форума пж
ты даже вм осилить не можешь без чата гпт
// Рисуем с разными смещениями и прозрачностью
 
ты криворукий
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
блять это пиздец мой селф код в 2 сточки и то лучше будет
 
это именно пиздец
зато на срц данка люди чота делают
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
ого
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
не учитывая что эту хуйню можно накалякать базовым рендером майнкрафта, дак это ещё и с помощью гпт сделано, если ты реально не можешь самостоятельно сделать вызов рендера, то ты безнадежен, лучше забудь домен этого форума нахуй
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
ты заебал уже это сливать блять
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
спасибо братан, я за заходы на серв получаю бабки
это именно пиздец
зато на срц данка люди чота делают
согал 0_000
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
у тя чо ручки не доходят самому сделать? // Рисуем с разными смещениями и прозрачностью и плюсом хуево получилось
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
это пиздец
 
дам, за год ничему не научится...
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
как это одобрили
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
милсед научись кодить плз <3
 
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
Посмотреть вложение 310330 (id no ad!!!)
wt:
Expand Collapse Copy
package fun.danq.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {

    private final BetterText watermarkText = new BetterText(List.of(
            "Свага",
            "Несправедлиовсть",
            "1.0",
            "бууууустит)))"
    ), 1000);

    private int fpsAnim, pingAnim;
    private float blurRadius = 3f;

    @Override
    public void render(EventRender2D eventRender2D) {
        fpsAnim = Minecraft.getInstance().debugFPS;
        pingAnim = MathUtility.calculatePing();
        MatrixStack ms = eventRender2D.getMatrixStack();
        float x = 4;
        float y = 4;
        float padding = 5;
        float iconSize = 10;
        String text = watermarkText().toString();
        float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
        float width = iconSize + padding + textWidth;
        float height = iconSize + padding;


        renderBlurredBackground(ms, x, y, width, height, blurRadius);


        Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
    }

    private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {

        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        int passes = (int) (radius * 2);
        float alpha = 0.7f / passes;

        for (int i = 0; i < passes; i++) {
            float offset = (i / (float) passes) * radius;

            // Рисуем с разными смещениями и прозрачностью
            RectUtility.drawRect(matrixStack,
                    x - offset, y - offset,
                    x + width + offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y - offset,
                    x + width - offset, y + height + offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x - offset, y + offset,
                    x + width + offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));

            RectUtility.drawRect(matrixStack,
                    x + offset, y + offset,
                    x + width - offset, y + height - offset,
                    ColorUtility.alpha(0x202020, alpha));
        }


        RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);

        RenderSystem.disableBlend();
    }

    private StringBuilder watermarkText() {
        StringBuilder watermarkText = new StringBuilder();
        watermarkText.append("Alone-1.0");
        String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());

        boolean showFps = isEnabled("Фпс");
        boolean showPing = isEnabled("Пинг");
        boolean showServer = isEnabled("Сервер");
        boolean showTime = isEnabled("Время");

        if (showFps || showPing || showServer || showTime) {
            watermarkText.append("  ");
        }

        List<String> parts = new ArrayList<>();

        if (showFps) {
            parts.add(fpsAnim + "fps");
        }
        if (showPing) {
            parts.add(pingAnim + "ms");
        }
        if (showTime) {
            parts.add(currentTime);
        }
        if (showServer) {
            String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
                    && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
                    ? mc.getCurrentServerData().serverIP.toLowerCase()
                    : "Одиночный мир";
            parts.add(serverInfo);
        }

        watermarkText.append(String.join("  ", parts));

        return watermarkText;
    }

    private boolean isEnabled(String check) {
        return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
    }
}

если для вас шит пост, сорян!!!
это просто пиздец
 
на сегодня все
канешна все!
это просто пиздец
спасибо за ваш коментарий!
как это одобрили
модерам делать нефиг, уроки мне дают чтобы ливнул с форума я
дам, за год ничему не научится...
потому что фиг поймешь :catjam:
у тя чо ручки не доходят самому сделать? // Рисуем с разными смещениями и прозрачностью и плюсом хуево получилось
не доходят, маленькие слишком :(
спасибо за комент! учту, буду пытатся учится.
спасибо братан, я за заходы на серв получаю бабки

согал 0_000
да браптишка :kekw12:

а на данке делал патаму что я пастир тупой типо да?
ого, спасибо за коменнт, учту, ливну с форума.
ты заебал уже это сливать блять
так а че? даже если чет +- залью будет либо всем похуй, либо зачмырят тож.
не учитывая что эту хуйню можно накалякать базовым рендером майнкрафта, дак это ещё и с помощью гпт сделано, если ты реально не можешь самостоятельно сделать вызов рендера, то ты безнадежен, лучше забудь домен этого форума нахуй
жалко нельзя забыть :(
ого
ливни с форума пж
ты даже вм осилить не можешь без чата гпт
// Рисуем с разными смещениями и прозрачностью
с радостью бы ливнул, жалко вот не могу :(
блять это пиздец мой селф код в 2 сточки и то лучше будет
поздравляю! ты научился хорошо кодить
:pepe123:
весь югейм мне это сказал + я не криворукий в жизни, у меня косолапие ног.
 
Последнее редактирование:
Назад
Сверху Снизу