Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Визуальная часть Watermark 1.21.4 | zenith norecode

Начинающий
Начинающий
Статус
Онлайн
Регистрация
23 Мар 2025
Сообщения
53
Реакции
0
Выберите загрузчик игры
  1. Fabric
Всем привет, решил слить свою ватермарку

как по мне ватермарка сама полная говно но хорошая задумка.

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


В чем задумка:Отображает ваше активное состояние (полет на элитре, малое количество хп, пвп)

Код:
Expand Collapse Copy
package jelly.velon.implement.features.draggables;

import jelly.velon.api.display.font.Builder;
import jelly.velon.api.display.font.storage.FontStorage;
import jelly.velon.api.feature.draggable.AbstractDraggable;
import jelly.velon.api.system.font.FontRenderer;
import jelly.velon.api.system.font.Fonts;
import jelly.velon.api.system.shape.ShapeProperties;
import jelly.velon.common.util.color.ColorUtil;
import jelly.velon.common.util.math.MathUtil;
import jelly.velon.common.util.world.ServerUtil;
import jelly.velon.implement.features.modules.render.Interface;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import org.joml.Matrix4f;

public class Watermark extends AbstractDraggable {
    private int fpsCount = 0;
    private float hoverAlpha = 0f;

    public Watermark() {
        super("Watermark", 10, 10, 92, 16, true);
    }
    @Override
    public void tick() {
        fpsCount = (int) MathUtil.interpolate(fpsCount, mc.getCurrentFps());
        double mx = mc.mouse.getX() * (double) mc.getWindow().getScaledWidth() / (double) mc.getWindow().getWidth();
        double my = mc.mouse.getY() * (double) mc.getWindow().getScaledHeight() / (double) mc.getWindow().getHeight();
        boolean hovered = isHovered(mx, my);
        float target = hovered ? 255f : 0f;
        hoverAlpha += (target - hoverAlpha) * 1.0f;
    }
    @Override
    public void drawDraggable(DrawContext e) {
        MatrixStack matrix = e.getMatrices();
        Matrix4f matrix4f = matrix.peek().getPositionMatrix();
        FontRenderer font = Fonts.getSize(15, Fonts.Type.DEFAULT);
        String name;
        boolean drawAsIcon = Interface.getInstance().watermarkmain.isSelected("Активное состояние");
        float iconXOffset = 0.0f;
        if (drawAsIcon) {
            float health = mc.player.getHealth() + mc.player.getAbsorptionAmount();
            boolean isPvp = ServerUtil.isPvp();
            String icon;
            if (health < 6.0F) {
                icon = "O"; // low hp
                iconXOffset = 1.5f;
            } else if (mc.player.isGliding()) {
                icon = "1"; // elytra
            } else if (isPvp) {
                icon = "0"; // is pvp
            } else {
                icon = "7"; // default
            }
            name = icon + "      ";
        } else {
            name = "VL    ";
        }
        int ping = 0;
        if (mc.getNetworkHandler() != null) {
            var entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
            if (entry != null) {
                ping = entry.getLatency();
            }
        }

        String ms = ping + "ms" + "      ";

        String fps = fpsCount + "fps";

        blur.render(ShapeProperties.create(matrix, getX(), getY(), getWidth(), getHeight())
                .round(2)
                .softness(1)
                .color(theme.main())
                .build() );
        if (drawAsIcon) {
            int animatedIconColor = ColorUtil.applyOpacity(theme.Secondary(), 255);
            int animatedIconColor2 = ColorUtil.applyOpacity(ColorUtil.getClientColor(), 255);
            float renderX = getX() + 1.5f + iconXOffset;
            if (Interface.getInstance().interfaceColorMode.isSelected("Client")) {
                Builder.text()
                        .font(FontStorage.ICONS_FONT.get())
                        .text(name)
                        .size(9)
                        .color(animatedIconColor)
                        .build()
                        .render(matrix4f, renderX, getY() + 3.0F);
            } else if (Interface.getInstance().interfaceColorMode.isSelected("Theme")) {
                Builder.text()
                        .font(FontStorage.ICONS_FONT.get())
                        .text(name)
                        .size(9)
                        .color(animatedIconColor2)
                        .build()
                        .render(matrix4f, renderX, getY() + 3.0F);
            }
        } else {
            if (Interface.getInstance().interfaceColorMode.isSelected("Client")) {
                int animatedIconColor = ColorUtil.applyOpacity(theme.Secondary(), 255);
                font.drawString(matrix, name, getX() + 3.5f, getY() + 6.5f, animatedIconColor );
            } else if (Interface.getInstance().interfaceColorMode.isSelected("Theme")) {
                int animatedIconColor2 = ColorUtil.applyOpacity(ColorUtil.getClientColor(), 255);
                font.drawString(matrix, name, getX() + 3.5f, getY() + 6.5f, animatedIconColor2 );
            }
        }

        font.drawString(matrix, ms + fps, getX() + font.getStringWidth(name) + 5, getY() + 6.5F, theme.textMain());
        rectangle.render(ShapeProperties.create( matrix, getX() + font.getStringWidth(name), getY() + 4, 0.5F, getHeight() - 8 ).color(ColorUtil.getOutline(0.75F, 0.5f)).build() );
        rectangle.render(ShapeProperties.create( matrix, getX() + font.getStringWidth(name + ms), getY() + 4, 0.5F, getHeight() - 8 ).color(ColorUtil.getOutline(0.75F, 0.5f)).build() );
        setWidth((int) (font.getStringWidth(name + ms + fps) + 9));
    }
}
 
Всем привет, решил слить свою ватермарку

как по мне ватермарка сама полная говно но хорошая задумка.

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


В чем задумка:Отображает ваше активное состояние (полет на элитре, малое количество хп, пвп)

Код:
Expand Collapse Copy
package jelly.velon.implement.features.draggables;

import jelly.velon.api.display.font.Builder;
import jelly.velon.api.display.font.storage.FontStorage;
import jelly.velon.api.feature.draggable.AbstractDraggable;
import jelly.velon.api.system.font.FontRenderer;
import jelly.velon.api.system.font.Fonts;
import jelly.velon.api.system.shape.ShapeProperties;
import jelly.velon.common.util.color.ColorUtil;
import jelly.velon.common.util.math.MathUtil;
import jelly.velon.common.util.world.ServerUtil;
import jelly.velon.implement.features.modules.render.Interface;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import org.joml.Matrix4f;

public class Watermark extends AbstractDraggable {
    private int fpsCount = 0;
    private float hoverAlpha = 0f;

    public Watermark() {
        super("Watermark", 10, 10, 92, 16, true);
    }
    @Override
    public void tick() {
        fpsCount = (int) MathUtil.interpolate(fpsCount, mc.getCurrentFps());
        double mx = mc.mouse.getX() * (double) mc.getWindow().getScaledWidth() / (double) mc.getWindow().getWidth();
        double my = mc.mouse.getY() * (double) mc.getWindow().getScaledHeight() / (double) mc.getWindow().getHeight();
        boolean hovered = isHovered(mx, my);
        float target = hovered ? 255f : 0f;
        hoverAlpha += (target - hoverAlpha) * 1.0f;
    }
    @Override
    public void drawDraggable(DrawContext e) {
        MatrixStack matrix = e.getMatrices();
        Matrix4f matrix4f = matrix.peek().getPositionMatrix();
        FontRenderer font = Fonts.getSize(15, Fonts.Type.DEFAULT);
        String name;
        boolean drawAsIcon = Interface.getInstance().watermarkmain.isSelected("Активное состояние");
        float iconXOffset = 0.0f;
        if (drawAsIcon) {
            float health = mc.player.getHealth() + mc.player.getAbsorptionAmount();
            boolean isPvp = ServerUtil.isPvp();
            String icon;
            if (health < 6.0F) {
                icon = "O"; // low hp
                iconXOffset = 1.5f;
            } else if (mc.player.isGliding()) {
                icon = "1"; // elytra
            } else if (isPvp) {
                icon = "0"; // is pvp
            } else {
                icon = "7"; // default
            }
            name = icon + "      ";
        } else {
            name = "VL    ";
        }
        int ping = 0;
        if (mc.getNetworkHandler() != null) {
            var entry = mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid());
            if (entry != null) {
                ping = entry.getLatency();
            }
        }

        String ms = ping + "ms" + "      ";

        String fps = fpsCount + "fps";

        blur.render(ShapeProperties.create(matrix, getX(), getY(), getWidth(), getHeight())
                .round(2)
                .softness(1)
                .color(theme.main())
                .build() );
        if (drawAsIcon) {
            int animatedIconColor = ColorUtil.applyOpacity(theme.Secondary(), 255);
            int animatedIconColor2 = ColorUtil.applyOpacity(ColorUtil.getClientColor(), 255);
            float renderX = getX() + 1.5f + iconXOffset;
            if (Interface.getInstance().interfaceColorMode.isSelected("Client")) {
                Builder.text()
                        .font(FontStorage.ICONS_FONT.get())
                        .text(name)
                        .size(9)
                        .color(animatedIconColor)
                        .build()
                        .render(matrix4f, renderX, getY() + 3.0F);
            } else if (Interface.getInstance().interfaceColorMode.isSelected("Theme")) {
                Builder.text()
                        .font(FontStorage.ICONS_FONT.get())
                        .text(name)
                        .size(9)
                        .color(animatedIconColor2)
                        .build()
                        .render(matrix4f, renderX, getY() + 3.0F);
            }
        } else {
            if (Interface.getInstance().interfaceColorMode.isSelected("Client")) {
                int animatedIconColor = ColorUtil.applyOpacity(theme.Secondary(), 255);
                font.drawString(matrix, name, getX() + 3.5f, getY() + 6.5f, animatedIconColor );
            } else if (Interface.getInstance().interfaceColorMode.isSelected("Theme")) {
                int animatedIconColor2 = ColorUtil.applyOpacity(ColorUtil.getClientColor(), 255);
                font.drawString(matrix, name, getX() + 3.5f, getY() + 6.5f, animatedIconColor2 );
            }
        }

        font.drawString(matrix, ms + fps, getX() + font.getStringWidth(name) + 5, getY() + 6.5F, theme.textMain());
        rectangle.render(ShapeProperties.create( matrix, getX() + font.getStringWidth(name), getY() + 4, 0.5F, getHeight() - 8 ).color(ColorUtil.getOutline(0.75F, 0.5f)).build() );
        rectangle.render(ShapeProperties.create( matrix, getX() + font.getStringWidth(name + ms), getY() + 4, 0.5F, getHeight() - 8 ).color(ColorUtil.getOutline(0.75F, 0.5f)).build() );
        setWidth((int) (font.getStringWidth(name + ms + fps) + 9));
    }
}
имба, +rep
 
Назад
Сверху Снизу