Исходник HotKeys | manloxx client

Начинающий
Статус
Оффлайн
Регистрация
31 Авг 2023
Сообщения
505
Реакции[?]
6
Поинты[?]
5K
Удивлю есть такая тема под названием радиус в вашем эксренсиве,и можно делать такие линии без изображений
 
Read Only
Статус
Оффлайн
Регистрация
31 Июл 2023
Сообщения
227
Реакции[?]
1
Поинты[?]
1K
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2024
Сообщения
325
Реакции[?]
0
Поинты[?]
0
Всем привет! это моя первая работа которую я выкладываю на форум
Вот код биндов
и pngПосмотреть вложение 284746
JavaScript:
package mq.bluekodi.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import mq.bluekodi.Bluekodi;
import mq.bluekodi.events.EventDisplay;
import mq.bluekodi.functions.api.Function;
import mq.bluekodi.functions.impl.render.HUD;
import mq.bluekodi.ui.display.ElementRenderer;
import mq.bluekodi.ui.styles.Style;
import mq.bluekodi.utils.client.KeyStorage;
import mq.bluekodi.utils.drag.Dragging;
import mq.bluekodi.utils.math.MathUtil;
import mq.bluekodi.utils.math.Vector4i;
import mq.bluekodi.utils.render.ColorUtils;
import mq.bluekodi.utils.render.DisplayUtils;
import mq.bluekodi.utils.render.Scissor;
import mq.bluekodi.utils.render.font.Fonts;
import mq.bluekodi.utils.text.GradientUtil;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;

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

    final Dragging dragging;
    float iconSizeX = 10;
    float iconSizeY = 10;


    float width;
    float height;

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

        float posX = dragging.getX();
        float posY = dragging.getY();
        float fontSize = 7.5f;
        float padding = 4.3f;
        float textWidth = 75;

        ITextComponent name = GradientUtil.gradient("Hotkeys");
        String namemod = "              Hotkeys";
        final ResourceLocation logo = new ResourceLocation("bluekodi/images/hud/gradline.png");

        float finalPosY = posY;
        drawStyledRect(posX, finalPosY, width, height, 5);

        DisplayUtils.drawShadow(posX, posY, width, height, 15, ColorUtils.rgba(255,255,255,165));
        DisplayUtils.drawImage(logo, posX, posY + 14, textWidth+padding, 1, HUD.getColor(0));

        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height);
        Fonts.expensive4.drawText(ms, namemod, posX + padding, posY + padding + 1, ColorUtils.rgb(0, 0, 0),fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.expensive4.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

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

            String bindText = KeyStorage.getKey(f.getBind());
            float bindWidth = Fonts.expensive4.getWidth(bindText, fontSize);


            float localWidth = nameWidth + bindWidth + padding * 3;

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

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

            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);
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 0.5f, ColorUtils.setAlpha(ColorUtils.rgb(18,16,16), 90));
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, ColorUtils.rgba(255, 255, 255, 190));
    }
}
капец бро мои кей бинды пишутся 5 минут выводится картинка делаем ее не кривой меняем немного ректы меняет
ITextComponent name = GradientUtil.gradient("Hotkeys");
меняем на
ITextComponent name = GradientUtil.white("Hotkeys");
пишем метод в градиент утил
все!
 
Начинающий
Статус
Оффлайн
Регистрация
12 Июн 2024
Сообщения
322
Реакции[?]
1
Поинты[?]
1K
капец бро мои кей бинды пишутся 5 минут выводится картинка делаем ее не кривой меняем немного ректы меняет
ITextComponent name = GradientUtil.gradient("Hotkeys");
меняем на
ITextComponent name = GradientUtil.white("Hotkeys");
пишем метод в градиент утил
все!
а вывести в вт тпс ты догадаться не можешь? Браво!
 
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2024
Сообщения
325
Реакции[?]
0
Поинты[?]
0
а вывести в вт тпс ты догадаться не можешь? Браво!
ты обиделся что я на весь югейм сказал что ты не знаешь что такое ректы и пошел выписывать? ты кстати сделал их тоже криво у тебя один фон на другом был
 
Начинающий
Статус
Оффлайн
Регистрация
12 Июн 2024
Сообщения
322
Реакции[?]
1
Поинты[?]
1K
ты обиделся что я на весь югейм сказал что ты не знаешь что такое ректы и пошел выписывать? ты кстати сделал их тоже криво у тебя один фон на другом был
ты кстати не можешь вывести тпс когда это можно сделать элементарно, и то что у меня один фон на другом это уже мои проблемы которые исправить не заставит труда
 
Начинающий
Статус
Оффлайн
Регистрация
5 Май 2023
Сообщения
92
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2024
Сообщения
325
Реакции[?]
0
Поинты[?]
0
ты кстати не можешь вывести тпс когда это можно сделать элементарно, и то что у меня один фон на другом это уже мои проблемы которые исправить не заставит труда
я вывожу тпс не в вт не в 4-5 строк мне ее надо сделать отдельно от всего
Проще я думаю было б отрисовать эту линию, а не пнг
ну с этим долбатся я с этим не очень дружу мне по пнг легче будет
 
Начинающий
Статус
Оффлайн
Регистрация
11 Апр 2024
Сообщения
17
Реакции[?]
0
Поинты[?]
0
Всем привет! это моя первая работа которую я выкладываю на форум
Вот код биндов
и pngПосмотреть вложение 284746
JavaScript:
package mq.bluekodi.ui.display.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import mq.bluekodi.Bluekodi;
import mq.bluekodi.events.EventDisplay;
import mq.bluekodi.functions.api.Function;
import mq.bluekodi.functions.impl.render.HUD;
import mq.bluekodi.ui.display.ElementRenderer;
import mq.bluekodi.ui.styles.Style;
import mq.bluekodi.utils.client.KeyStorage;
import mq.bluekodi.utils.drag.Dragging;
import mq.bluekodi.utils.math.MathUtil;
import mq.bluekodi.utils.math.Vector4i;
import mq.bluekodi.utils.render.ColorUtils;
import mq.bluekodi.utils.render.DisplayUtils;
import mq.bluekodi.utils.render.Scissor;
import mq.bluekodi.utils.render.font.Fonts;
import mq.bluekodi.utils.text.GradientUtil;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;

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

    final Dragging dragging;
    float iconSizeX = 10;
    float iconSizeY = 10;


    float width;
    float height;

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

        float posX = dragging.getX();
        float posY = dragging.getY();
        float fontSize = 7.5f;
        float padding = 4.3f;
        float textWidth = 75;

        ITextComponent name = GradientUtil.gradient("Hotkeys");
        String namemod = "              Hotkeys";
        final ResourceLocation logo = new ResourceLocation("bluekodi/images/hud/gradline.png");

        float finalPosY = posY;
        drawStyledRect(posX, finalPosY, width, height, 5);

        DisplayUtils.drawShadow(posX, posY, width, height, 15, ColorUtils.rgba(255,255,255,165));
        DisplayUtils.drawImage(logo, posX, posY + 14, textWidth+padding, 1, HUD.getColor(0));

        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height);
        Fonts.expensive4.drawText(ms, namemod, posX + padding, posY + padding + 1, ColorUtils.rgb(0, 0, 0),fontSize);

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.expensive4.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;

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

            String bindText = KeyStorage.getKey(f.getBind());
            float bindWidth = Fonts.expensive4.getWidth(bindText, fontSize);


            float localWidth = nameWidth + bindWidth + padding * 3;

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

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

            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);
    }

    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {

        DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 0.5f, ColorUtils.setAlpha(ColorUtils.rgb(18,16,16), 90));
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, ColorUtils.rgba(255, 255, 255, 190));
    }
}
/del
 
Сверху Снизу