Исходник Градиентный фон у элементов hud| Expensive 3.1

Начинающий
Статус
Оффлайн
Регистрация
20 Дек 2023
Сообщения
126
Реакции[?]
0
Поинты[?]
0
Ку всем, моя первая работа в сфере худа.
Внизу я скинул шаблон, в других файлах заполняем также. По вопросам дс craftlez122 (Пишите сразу, а не кидайте др пж)

Шаблон:
package im.expensive.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.Expensive;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegistry;
import im.expensive.ui.display.ElementRenderer;
import im.expensive.ui.styles.Style;
import im.expensive.utils.client.KeyStorage;
import im.expensive.utils.drag.Dragging;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;
import im.expensive.utils.render.Scissor;
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.gui.screen.ChatScreen;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;

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

    final Dragging dragging;

    final ResourceLocation grab = new ResourceLocation("expensive/images/hud/grab.png");



    float width;
    float height;

    @Override
    public void render(EventDisplay eventDisplay) {
        MatrixStack ms = eventDisplay.getMatrixStack();

        float posX = dragging.getX();
        float posY = dragging.getY();
        float fontSize = 6.5f;
        float padding = 5;

        ITextComponent name = GradientUtil.gradient("HotKeys");

        Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

        //DisplayUtils.drawShadow(posX, posY, width, height, 10, style.getFirstColor().getRGB(), style.getSecondColor().getRGB());
        DisplayUtils.drawShadow(posX, posY, padding * 16.5f + 1.5f, fontSize + padding * 2.5f + 1.5f, 14, ColorUtils.rgba(31,31,31,255), ColorUtils.rgba(31,31,31, 255));
        if (FunctionRegistry.hud2.style.is("Градиентный фон")) {
            drawStyledRect(posX, posY, width, height, 4, 180);
        } else {
            drawStyledRect(posX, posY, width, height, 4, 255);
        }
        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 0.5f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;
        if (FunctionRegistry.hud2.style.is("Градиентный фон")) {
            DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f)));
        }



        posY += 3f;

        for (Function f : Expensive.getInstance().getFunctionRegistry().getFunctions()) {
            f.getAnimation().update();
            if (!(f.getAnimation().getValue() > 0) || f.getBind() == 0) continue;
            String nameText = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(nameText, fontSize);

            String bindText = "<" + KeyStorage.getKey(f.getBind()) + ">";

            float bindWidth = Fonts.sfMedium.getWidth(bindText, fontSize);

            float localWidth = nameWidth + bindWidth + padding * 3;

            Fonts.sfMedium.drawText(ms, nameText, posX + padding, posY + 0.5f, ColorUtils.rgba(210, 210, 210, (int) (255 * f.getAnimation().getValue())), fontSize);
            Fonts.sfMedium.drawText(ms, bindText, posX + width - padding - bindWidth, posY + 0.5f, ColorUtils.getColor(0), fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            //DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY - 3f, width - 1, 2.5f, 3, ColorUtils.getColor(90));
            posY += (float) ((fontSize + padding) * f.getAnimation().getValue());
            localHeight += (float) ((fontSize + padding) * f.getAnimation().getValue());
        }
        Scissor.unset();
        Scissor.pop();
        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);

        if (mc.currentScreen instanceof ChatScreen){
            DisplayUtils.drawImage(grab, posX + 20, posY - 17, 25,25, -1);
        }
    }

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

        if (FunctionRegistry.hud2.style.is("Градиентный фон")) {
            DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius, style.getFirstColor().getRGB()); // outline
        }
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, ColorUtils.rgba(31,31,31, alpha));
    }
}
2024-05-07_16.30.14.pngSS
 
Начинающий
Статус
Оффлайн
Регистрация
11 Апр 2024
Сообщения
24
Реакции[?]
0
Поинты[?]
0
Ребята, спасайте. Спрашивал везде – нету помощи. Когда я захожу на Reallyworld с expensive 3.1 ( не важно, сурсы это или версия ), то когда я загружаю ресурспак сервера, то вылетает к хуям.
 
Начинающий
Статус
Оффлайн
Регистрация
20 Дек 2023
Сообщения
126
Реакции[?]
0
Поинты[?]
0
Ребята, спасайте. Спрашивал везде – нету помощи. Когда я захожу на Reallyworld с expensive 3.1 ( не важно, сурсы это или версия ), то когда я загружаю ресурспак сервера, то вылетает к хуям.
Юзай SRPSpoofer no ad
Спс
 
Начинающий
Статус
Оффлайн
Регистрация
20 Дек 2023
Сообщения
126
Реакции[?]
0
Поинты[?]
0
ColorUtils.setAlpha(ColorUtils.getColor(90),64)
Какая проблема да?
проблемы здесь нет, просто этот способ мне показался легче. (Не бей меня пжпж)
ColorUtils.setAlpha(ColorUtils.getColor(90),64)
Какая проблема да?
Причём мой способ по красивее получится
 
Начинающий
Статус
Оффлайн
Регистрация
11 Апр 2024
Сообщения
24
Реакции[?]
0
Поинты[?]
0
1715084638419.png реябт, проблема в спуфере, что нужно сделать чтобы не подчеркивало?
 
Начинающий
Статус
Оффлайн
Регистрация
20 Дек 2023
Сообщения
126
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
422
Реакции[?]
3
Поинты[?]
4K
Ребята, спасайте. Спрашивал везде – нету помощи. Когда я захожу на Reallyworld с expensive 3.1 ( не важно, сурсы это или версия ), то когда я загружаю ресурспак сервера, то вылетает к хуям.
я не ебу как это связанно,
Ребята, спасайте. Спрашивал везде – нету помощи. Когда я захожу на Reallyworld с expensive 3.1 ( не важно, сурсы это или версия ), то когда я загружаю ресурспак сервера, то вылетает к хуям.
не знаю как это связанно,но добавь в мейн класс это

userData = new UserData("virmeil", 1);
мне помогло
 
Начинающий
Статус
Оффлайн
Регистрация
11 Апр 2024
Сообщения
24
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
17 Мар 2024
Сообщения
166
Реакции[?]
2
Поинты[?]
4K
Ку всем, моя первая работа в сфере худа.
Внизу я скинул шаблон, в других файлах заполняем также. По вопросам дс craftlez122 (Пишите сразу, а не кидайте др пж)

Шаблон:
package im.expensive.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.Expensive;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegistry;
import im.expensive.ui.display.ElementRenderer;
import im.expensive.ui.styles.Style;
import im.expensive.utils.client.KeyStorage;
import im.expensive.utils.drag.Dragging;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;
import im.expensive.utils.render.Scissor;
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.gui.screen.ChatScreen;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;

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

    final Dragging dragging;

    final ResourceLocation grab = new ResourceLocation("expensive/images/hud/grab.png");



    float width;
    float height;

    @Override
    public void render(EventDisplay eventDisplay) {
        MatrixStack ms = eventDisplay.getMatrixStack();

        float posX = dragging.getX();
        float posY = dragging.getY();
        float fontSize = 6.5f;
        float padding = 5;

        ITextComponent name = GradientUtil.gradient("HotKeys");

        Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();

        //DisplayUtils.drawShadow(posX, posY, width, height, 10, style.getFirstColor().getRGB(), style.getSecondColor().getRGB());
        DisplayUtils.drawShadow(posX, posY, padding * 16.5f + 1.5f, fontSize + padding * 2.5f + 1.5f, 14, ColorUtils.rgba(31,31,31,255), ColorUtils.rgba(31,31,31, 255));
        if (FunctionRegistry.hud2.style.is("Градиентный фон")) {
            drawStyledRect(posX, posY, width, height, 4, 180);
        } else {
            drawStyledRect(posX, posY, width, height, 4, 255);
        }
        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height);
        Fonts.sfui.drawCenteredText(ms, name, posX + width / 2, posY + padding + 0.5f, fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;
        if (FunctionRegistry.hud2.style.is("Градиентный фон")) {
            DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f)));
        }



        posY += 3f;

        for (Function f : Expensive.getInstance().getFunctionRegistry().getFunctions()) {
            f.getAnimation().update();
            if (!(f.getAnimation().getValue() > 0) || f.getBind() == 0) continue;
            String nameText = f.getName();
            float nameWidth = Fonts.sfMedium.getWidth(nameText, fontSize);

            String bindText = "<" + KeyStorage.getKey(f.getBind()) + ">";

            float bindWidth = Fonts.sfMedium.getWidth(bindText, fontSize);

            float localWidth = nameWidth + bindWidth + padding * 3;

            Fonts.sfMedium.drawText(ms, nameText, posX + padding, posY + 0.5f, ColorUtils.rgba(210, 210, 210, (int) (255 * f.getAnimation().getValue())), fontSize);
            Fonts.sfMedium.drawText(ms, bindText, posX + width - padding - bindWidth, posY + 0.5f, ColorUtils.getColor(0), fontSize);

            if (localWidth > maxWidth) {
                maxWidth = localWidth;
            }

            //DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY - 3f, width - 1, 2.5f, 3, ColorUtils.getColor(90));
            posY += (float) ((fontSize + padding) * f.getAnimation().getValue());
            localHeight += (float) ((fontSize + padding) * f.getAnimation().getValue());
        }
        Scissor.unset();
        Scissor.pop();
        width = Math.max(maxWidth, 80);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);

        if (mc.currentScreen instanceof ChatScreen){
            DisplayUtils.drawImage(grab, posX + 20, posY - 17, 25,25, -1);
        }
    }

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

        if (FunctionRegistry.hud2.style.is("Градиентный фон")) {
            DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius, style.getFirstColor().getRGB()); // outline
        }
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, ColorUtils.rgba(31,31,31, alpha));
    }
}
Посмотреть вложение 276285SS
хуета + нахуя
 
Сверху Снизу