Исходник Темы в худе | EXP 3.1

Начинающий
Статус
Оффлайн
Регистрация
1 Авг 2024
Сообщения
30
Реакции[?]
0
Поинты[?]
0

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

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

Спасибо!

Крч на югейме не заметил такой хуйни

Крч сразу идём в худ и меняем фулл худ на это

SS - 1734442436078.png

Код:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.Expensive;
import im.expensive.events.EventDisplay;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.*;
import im.expensive.ui.display.impl.*;
import im.expensive.ui.styles.StyleManager;
import im.expensive.utils.drag.Dragging;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.render.ColorUtils;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

import java.awt.*;


@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "HUD", type = Category.Render)
public class HUD extends Function {
    private final ModeListSetting elements = new ModeListSetting("Элементы",
            new BooleanSetting("Ватермарка",true),
            new BooleanSetting("Эффекты", true),
            new BooleanSetting("Активные бинды", true),
            new BooleanSetting("ТаргетХуд", true),
            new BooleanSetting("Список Модерации", true)
    );
    public static final BooleanSetting particle = new BooleanSetting("Таргет Партиклы",false);
    public static final ModeSetting vibor = new ModeSetting("Тема", "Дефолт", "Дефолт", "x1m3ra", "Зима", "Черно-Белый", "Месячные","Нежность","вайб","Радужный","Свой");
    public static final SliderSetting speedis = new SliderSetting("Скорость переливания", 5.0F, 5.0F, 40.0F, 2.5F);
    public static final ColorSetting color1 = new ColorSetting("1 цвет",ColorUtils.rgb(255, 255, 255)).setVisible(() -> vibor.is("Свой"));
    public static final ColorSetting color2 = new ColorSetting("2 цвет",ColorUtils.rgb(255, 255, 255)).setVisible(() -> vibor.is("Свой"));
    private final ModeSetting TargetHud = new ModeSetting("ТаргетХуд","Активный таргет","Активный таргет","Активный таргет 2");
    final WatermarkRenderer watermarkRenderer;
    final PotionRenderer potionRenderer;
    final KeyBindRenderer keyBindRenderer;
    final TargetInfoRenderer targetInfoRenderer;
    final StaffListRenderer staffListRenderer;

    @Subscribe
    private void onUpdate(EventUpdate e) {
        if (mc.gameSettings.showDebugInfo) {
            return;
        }
        if (elements.getValueByName("Список модерации").get()) staffListRenderer.update(e);
    }


    @Subscribe
    private void onDisplay(EventDisplay e) {
        if (mc.gameSettings.showDebugInfo || e.getType() != EventDisplay.Type.POST) {
            return;
        }
        if (elements.getValueByName("Эффекты").get()) potionRenderer.render(e);
        if (elements.getValueByName("Активные бинды").get()) keyBindRenderer.render(e);
        if (elements.getValueByName("Список модерации").get()) staffListRenderer.render(e);
        if (elements.getValueByName("Ватермарка").get())watermarkRenderer.render(e);
        if (elements.getValueByName("ТаргетХуд").get())targetInfoRenderer.render(e);



    }

    public HUD() {
        watermarkRenderer = new WatermarkRenderer();
        Dragging inventory = Expensive.getInstance().createDrag(this, "Инвентарь", 278, 200);
        Dragging potions = Expensive.getInstance().createDrag(this, "Potions", 278, 5);
        Dragging keyBinds = Expensive.getInstance().createDrag(this, "KeyBinds", 185, 5);
        Dragging dragging = Expensive.getInstance().createDrag(this, "TargetHUD", 74, 128);
        Dragging staffList = Expensive.getInstance().createDrag(this, "StaffList", 320, 5);
        Dragging keystorks = Expensive.getInstance().createDrag(this, "Keystorks", 200, 180);
        Dragging scrdelu = Expensive.getInstance().createDrag(this,"Эвенты RW",200,50);
        Dragging scrdelu1 = Expensive.getInstance().createDrag(this,"Броня",200,50);
        potionRenderer = new PotionRenderer(potions);
        keyBindRenderer = new KeyBindRenderer(keyBinds);
        staffListRenderer = new StaffListRenderer(staffList);
        targetInfoRenderer = new TargetInfoRenderer(dragging);
        //targetHUD3 = new TargetHUD3(dragging);
        addSettings(elements,TargetHud,particle,vibor,speedis,color1,color2);
    }

    public static int viborTEM(int index) {
        int speed = ((Float)speedis.get()).intValue();
        StyleManager styleManager = Expensive.getInstance().getStyleManager();
        if (vibor.is("Дефолт")){
            return ColorUtils.gradient(new Color (0x362AE1).getRGB(), new Color(0x4D4DE8).getRGB(), index, speed);
        }else if (vibor.is("x1m3ra")){
            return ColorUtils.gradient(new Color (0x060D75).getRGB(), new Color(0x3D50AF).getRGB(), index, speed);
        }else if (vibor.is("Зима")){
            return ColorUtils.gradient(new Color (0x0FE5FB).getRGB(), new Color(0x780707).getRGB(), index, speed);
        }else if (vibor.is("Черно-Белый")) {
            return ColorUtils.gradient(new Color (0xFFFFFF).getRGB(), new Color(0x000000).getRGB(), index, speed);
        }else if (vibor.is("Месячные")) {
            return ColorUtils.gradient(new Color (0xFF0707).getRGB(), new Color(0x420303).getRGB(), index, speed);
        }else if (vibor.is("Нежность")) {
            return ColorUtils.gradient(new Color (0x4B4DCC).getRGB(), new Color(0xB16522).getRGB(), index, speed);
        }else if (vibor.is("вайб")) {
            return ColorUtils.gradient(new Color (0x4242EF).getRGB(), new Color(0x080853).getRGB(), index, speed);
        }else if (vibor.is("Радужный")){
            return MathUtil.astolfo(speedis.get().intValue(), (int) (index / 1.4f), 0.75F, 1, 1F);
        }else if (vibor.is("Свой")) {
            return ColorUtils.gradient(color1.get(), color2.get(), index, speed);
        }

        return index;
    }
    public static int getColor(int index) {
        return viborTEM(index + 16);
    }

    public static int getColor(int index, float mult) {
        return viborTEM((int)((float)index * mult + 16.0F) + 16);
    }

    public static int getColor(int firstColor, int secondColor, int index, float mult) {
        return ColorUtils.gradient(firstColor, secondColor, (int)((float)index * mult), 10);
    }
}

Далее идём в папку по пути expensive-master\src\im\expensive\ui\dropdown\components
И регаем туда ColorPickerComponent
Сам код рега:
Код:
   if (setting instanceof ColorSetting colorSetting) {
                components.add(new ColorPickerComponent(colorSetting));
            }
Код ColorPickerComponent:

Код:
package im.expensive.ui.dropdown.components.settings;

import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.functions.settings.impl.ColorSetting;
import im.expensive.ui.dropdown.impl.Component;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;
import im.expensive.utils.render.font.Fonts;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;

import java.awt.*;

@SuppressWarnings("all")
@FieldDefaults(level = AccessLevel.PRIVATE)
public class ColorPickerComponent extends Component {

    final ColorSetting colorSetting;

    float colorRectX, colorRectY, colorRectWidth, colorRectHeight;
    float pickerX, pickerY, pickerWidth, pickerHeight;
    float sliderX, sliderY, sliderWidth, sliderHeight;

    final float padding = 5;
    float textX, textY;
    final int textColor = ColorUtils.rgb(160, 163, 175);
    private float[] hsb = new float[2];

    boolean panelOpened;
    boolean draggingHue, draggingPicker;

    public ColorPickerComponent(ColorSetting colorSetting) {
        this.colorSetting = colorSetting;
        hsb = Color.RGBtoHSB(
                ColorUtils.IntColor.getRed(colorSetting.get()),
                ColorUtils.IntColor.getGreen(colorSetting.get()),
                ColorUtils.IntColor.getBlue(colorSetting.get()), null
        );
        setHeight(22);
    }


    @Override
    public void render(MatrixStack stack, float mouseX, float mouseY) {
        renderTextAndColorRect(stack);

        if (panelOpened) {
            this.colorSetting.set(Color.getHSBColor(hsb[0], hsb[1], hsb[2]).getRGB());
            renderSlider(mouseX, mouseY);
            renderPickerPanel(mouseX, mouseY);
            setHeight(26 + pickerHeight + padding);
        } else {
            setHeight(22);
        }

        super.render(stack, mouseX, mouseY);
    }

    private void renderTextAndColorRect(MatrixStack stack) {
        String settingName = colorSetting.getName();
        int colorValue = colorSetting.get();

        this.textX = this.getX() + padding;
        this.textY = this.getY() + 2;

        this.colorRectX = this.getX() + padding;
        this.colorRectY = this.getY() + 4 + (padding);
        this.colorRectWidth = this.getWidth() - (padding * 2);
        this.colorRectHeight = padding * 2;

        this.pickerX = this.getX() + padding;
        this.pickerY = this.getY() + 4 + (padding) + 16;
        this.pickerWidth = this.getWidth() - (padding * 4);
        this.pickerHeight = 60;

        this.sliderX = pickerX + pickerWidth + padding;
        this.sliderY = pickerY;
        this.sliderWidth = 3;
        this.sliderHeight = pickerHeight;


        Fonts.montserrat.drawText(stack, settingName, textX, textY, textColor, 5.5f, 0.05f);
        DisplayUtils.drawRoundedRect(this.colorRectX, this.colorRectY, this.colorRectWidth, this.colorRectHeight, 3.5f, colorValue);
    }

    private void renderPickerPanel(float mouseX, float mouseY) {
        Vector4i vector4i = new Vector4i(Color.WHITE.getRGB(),
                Color.BLACK.getRGB(),
                Color.getHSBColor(hsb[0], 1, 1).getRGB(),
                Color.BLACK.getRGB());

        float offset = 4;
        float xRange = pickerWidth - 8;
        float yRange = pickerHeight - 8;

        if (draggingPicker) {
            float saturation = MathHelper.clamp((mouseX - pickerX - offset), 0, xRange) / (xRange);
            float brightness = MathHelper.clamp((mouseY - pickerY - offset), 0, yRange) / (yRange);
            hsb[1] = saturation;
            hsb[2] = 1 - brightness;
        }

        DisplayUtils.drawRoundedRect(this.pickerX, this.pickerY, this.pickerWidth, this.pickerHeight, new Vector4f(6, 6, 6, 6), vector4i);

        float circleX = pickerX + offset + hsb[1] * (xRange);
        float circleY = pickerY + offset + (1 - hsb[2]) * (yRange);

        DisplayUtils.drawCircle(circleX, circleY, 8, Color.BLACK.getRGB());
        DisplayUtils.drawCircle(circleX, circleY, 6, Color.WHITE.getRGB());
    }


    private void renderSlider(float mouseX, float mouseY) {
        for (int i = 0; i < sliderHeight; i++) {
            float hue = i / sliderHeight;
            DisplayUtils.drawCircle(this.sliderX + 1f, sliderY + i, 3, Color.HSBtoRGB(hue, 1, 1));

        }
        DisplayUtils.drawCircle(this.sliderX + sliderWidth - 2F, this.sliderY + (hsb[0] * sliderHeight), 8, Color.BLACK.getRGB());
        DisplayUtils.drawCircle(this.sliderX + sliderWidth - 2F, this.sliderY + (hsb[0] * sliderHeight), 6, -1);
        if (draggingHue) {
            float hue = (mouseY - sliderY) / sliderHeight;
            hsb[0] = MathHelper.clamp(hue, 0,1);
        }
    }

    @Override
    public void mouseClick(float mouseX, float mouseY, int mouse) {
        if (MathUtil.isHovered(mouseX, mouseY, colorRectX, colorRectY, colorRectWidth, colorRectHeight) && mouse == 1) {
            panelOpened = !panelOpened;
        }

        if (panelOpened) {
            if (MathUtil.isHovered(mouseX, mouseY, sliderX - 2, sliderY, sliderWidth + 4, pickerHeight - 12)) {
                draggingHue = true;
            } else if (MathUtil.isHovered(mouseX, mouseY, pickerX, pickerY, pickerWidth, pickerHeight)) {
                draggingPicker = true;
            }
        }

        super.mouseClick(mouseX, mouseY, mouse);
    }


    @Override
    public void mouseRelease(float mouseX, float mouseY, int mouse) {
        if (draggingHue) {
            draggingHue = false;
        }
        if (draggingPicker) {
            draggingPicker = false;
        }
        super.mouseRelease(mouseX, mouseY, mouse);
    }
    @Override
    public boolean isVisible() {
        return colorSetting.visible.get();
    }
}
ColorComponent:

Код:
package im.expensive.ui.dropdown.components.settings;

import im.expensive.functions.settings.impl.ColorSetting;
import im.expensive.ui.dropdown.impl.Component;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class ColorComponent extends Component {

    final ColorSetting setting;


    public ColorComponent(ColorSetting setting) {
        this.setting = setting;
        this.setHeight(24);
    }
}
Поздравляю у вас в пасте норм темы!
 
Начинающий
Статус
Оффлайн
Регистрация
1 Авг 2024
Сообщения
30
Реакции[?]
0
Поинты[?]
0
ониит мой selfcode
это не твой, я его брал из другого софта вообще
Я это уже летом сделал,а пастеры только только начинают
Тему покажи где ты прям фулл обьяснил и всё закинул
А почему не сделать отдельной функцией?
хз показалось что получше будет
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
2 Окт 2024
Сообщения
175
Реакции[?]
1
Поинты[?]
0
Брат это лучшая тема которую я видел я РУКИ ТЕБЕ ЦЕЛОВАЛ, СПАСИБО ТЕБЕ ОГРОМНОЕ!!! Это не тема это целое произведение искусства, удали её пожалуйста мы не достойны такой мощи нанотехнологий и генной инженерии!
 
Начинающий
Статус
Оффлайн
Регистрация
1 Авг 2024
Сообщения
30
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
1 Авг 2024
Сообщения
30
Реакции[?]
0
Поинты[?]
0
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2024
Сообщения
489
Реакции[?]
0
Поинты[?]
0
Крч на югейме не заметил такой хуйни

Крч сразу идём в худ и меняем фулл худ на это

SS - Посмотреть вложение 293014

Код:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.Expensive;
import im.expensive.events.EventDisplay;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.*;
import im.expensive.ui.display.impl.*;
import im.expensive.ui.styles.StyleManager;
import im.expensive.utils.drag.Dragging;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.render.ColorUtils;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

import java.awt.*;


@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "HUD", type = Category.Render)
public class HUD extends Function {
    private final ModeListSetting elements = new ModeListSetting("Элементы",
            new BooleanSetting("Ватермарка",true),
            new BooleanSetting("Эффекты", true),
            new BooleanSetting("Активные бинды", true),
            new BooleanSetting("ТаргетХуд", true),
            new BooleanSetting("Список Модерации", true)
    );
    public static final BooleanSetting particle = new BooleanSetting("Таргет Партиклы",false);
    public static final ModeSetting vibor = new ModeSetting("Тема", "Дефолт", "Дефолт", "x1m3ra", "Зима", "Черно-Белый", "Месячные","Нежность","вайб","Радужный","Свой");
    public static final SliderSetting speedis = new SliderSetting("Скорость переливания", 5.0F, 5.0F, 40.0F, 2.5F);
    public static final ColorSetting color1 = new ColorSetting("1 цвет",ColorUtils.rgb(255, 255, 255)).setVisible(() -> vibor.is("Свой"));
    public static final ColorSetting color2 = new ColorSetting("2 цвет",ColorUtils.rgb(255, 255, 255)).setVisible(() -> vibor.is("Свой"));
    private final ModeSetting TargetHud = new ModeSetting("ТаргетХуд","Активный таргет","Активный таргет","Активный таргет 2");
    final WatermarkRenderer watermarkRenderer;
    final PotionRenderer potionRenderer;
    final KeyBindRenderer keyBindRenderer;
    final TargetInfoRenderer targetInfoRenderer;
    final StaffListRenderer staffListRenderer;

    @Subscribe
    private void onUpdate(EventUpdate e) {
        if (mc.gameSettings.showDebugInfo) {
            return;
        }
        if (elements.getValueByName("Список модерации").get()) staffListRenderer.update(e);
    }


    @Subscribe
    private void onDisplay(EventDisplay e) {
        if (mc.gameSettings.showDebugInfo || e.getType() != EventDisplay.Type.POST) {
            return;
        }
        if (elements.getValueByName("Эффекты").get()) potionRenderer.render(e);
        if (elements.getValueByName("Активные бинды").get()) keyBindRenderer.render(e);
        if (elements.getValueByName("Список модерации").get()) staffListRenderer.render(e);
        if (elements.getValueByName("Ватермарка").get())watermarkRenderer.render(e);
        if (elements.getValueByName("ТаргетХуд").get())targetInfoRenderer.render(e);



    }

    public HUD() {
        watermarkRenderer = new WatermarkRenderer();
        Dragging inventory = Expensive.getInstance().createDrag(this, "Инвентарь", 278, 200);
        Dragging potions = Expensive.getInstance().createDrag(this, "Potions", 278, 5);
        Dragging keyBinds = Expensive.getInstance().createDrag(this, "KeyBinds", 185, 5);
        Dragging dragging = Expensive.getInstance().createDrag(this, "TargetHUD", 74, 128);
        Dragging staffList = Expensive.getInstance().createDrag(this, "StaffList", 320, 5);
        Dragging keystorks = Expensive.getInstance().createDrag(this, "Keystorks", 200, 180);
        Dragging scrdelu = Expensive.getInstance().createDrag(this,"Эвенты RW",200,50);
        Dragging scrdelu1 = Expensive.getInstance().createDrag(this,"Броня",200,50);
        potionRenderer = new PotionRenderer(potions);
        keyBindRenderer = new KeyBindRenderer(keyBinds);
        staffListRenderer = new StaffListRenderer(staffList);
        targetInfoRenderer = new TargetInfoRenderer(dragging);
        //targetHUD3 = new TargetHUD3(dragging);
        addSettings(elements,TargetHud,particle,vibor,speedis,color1,color2);
    }

    public static int viborTEM(int index) {
        int speed = ((Float)speedis.get()).intValue();
        StyleManager styleManager = Expensive.getInstance().getStyleManager();
        if (vibor.is("Дефолт")){
            return ColorUtils.gradient(new Color (0x362AE1).getRGB(), new Color(0x4D4DE8).getRGB(), index, speed);
        }else if (vibor.is("x1m3ra")){
            return ColorUtils.gradient(new Color (0x060D75).getRGB(), new Color(0x3D50AF).getRGB(), index, speed);
        }else if (vibor.is("Зима")){
            return ColorUtils.gradient(new Color (0x0FE5FB).getRGB(), new Color(0x780707).getRGB(), index, speed);
        }else if (vibor.is("Черно-Белый")) {
            return ColorUtils.gradient(new Color (0xFFFFFF).getRGB(), new Color(0x000000).getRGB(), index, speed);
        }else if (vibor.is("Месячные")) {
            return ColorUtils.gradient(new Color (0xFF0707).getRGB(), new Color(0x420303).getRGB(), index, speed);
        }else if (vibor.is("Нежность")) {
            return ColorUtils.gradient(new Color (0x4B4DCC).getRGB(), new Color(0xB16522).getRGB(), index, speed);
        }else if (vibor.is("вайб")) {
            return ColorUtils.gradient(new Color (0x4242EF).getRGB(), new Color(0x080853).getRGB(), index, speed);
        }else if (vibor.is("Радужный")){
            return MathUtil.astolfo(speedis.get().intValue(), (int) (index / 1.4f), 0.75F, 1, 1F);
        }else if (vibor.is("Свой")) {
            return ColorUtils.gradient(color1.get(), color2.get(), index, speed);
        }

        return index;
    }
    public static int getColor(int index) {
        return viborTEM(index + 16);
    }

    public static int getColor(int index, float mult) {
        return viborTEM((int)((float)index * mult + 16.0F) + 16);
    }

    public static int getColor(int firstColor, int secondColor, int index, float mult) {
        return ColorUtils.gradient(firstColor, secondColor, (int)((float)index * mult), 10);
    }
}

Далее идём в папку по пути expensive-master\src\im\expensive\ui\dropdown\components
И регаем туда ColorPickerComponent
Сам код рега:
Код:
   if (setting instanceof ColorSetting colorSetting) {
                components.add(new ColorPickerComponent(colorSetting));
            }
Код ColorPickerComponent:

Код:
package im.expensive.ui.dropdown.components.settings;

import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.functions.settings.impl.ColorSetting;
import im.expensive.ui.dropdown.impl.Component;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;
import im.expensive.utils.render.font.Fonts;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;

import java.awt.*;

@SuppressWarnings("all")
@FieldDefaults(level = AccessLevel.PRIVATE)
public class ColorPickerComponent extends Component {

    final ColorSetting colorSetting;

    float colorRectX, colorRectY, colorRectWidth, colorRectHeight;
    float pickerX, pickerY, pickerWidth, pickerHeight;
    float sliderX, sliderY, sliderWidth, sliderHeight;

    final float padding = 5;
    float textX, textY;
    final int textColor = ColorUtils.rgb(160, 163, 175);
    private float[] hsb = new float[2];

    boolean panelOpened;
    boolean draggingHue, draggingPicker;

    public ColorPickerComponent(ColorSetting colorSetting) {
        this.colorSetting = colorSetting;
        hsb = Color.RGBtoHSB(
                ColorUtils.IntColor.getRed(colorSetting.get()),
                ColorUtils.IntColor.getGreen(colorSetting.get()),
                ColorUtils.IntColor.getBlue(colorSetting.get()), null
        );
        setHeight(22);
    }


    @Override
    public void render(MatrixStack stack, float mouseX, float mouseY) {
        renderTextAndColorRect(stack);

        if (panelOpened) {
            this.colorSetting.set(Color.getHSBColor(hsb[0], hsb[1], hsb[2]).getRGB());
            renderSlider(mouseX, mouseY);
            renderPickerPanel(mouseX, mouseY);
            setHeight(26 + pickerHeight + padding);
        } else {
            setHeight(22);
        }

        super.render(stack, mouseX, mouseY);
    }

    private void renderTextAndColorRect(MatrixStack stack) {
        String settingName = colorSetting.getName();
        int colorValue = colorSetting.get();

        this.textX = this.getX() + padding;
        this.textY = this.getY() + 2;

        this.colorRectX = this.getX() + padding;
        this.colorRectY = this.getY() + 4 + (padding);
        this.colorRectWidth = this.getWidth() - (padding * 2);
        this.colorRectHeight = padding * 2;

        this.pickerX = this.getX() + padding;
        this.pickerY = this.getY() + 4 + (padding) + 16;
        this.pickerWidth = this.getWidth() - (padding * 4);
        this.pickerHeight = 60;

        this.sliderX = pickerX + pickerWidth + padding;
        this.sliderY = pickerY;
        this.sliderWidth = 3;
        this.sliderHeight = pickerHeight;


        Fonts.montserrat.drawText(stack, settingName, textX, textY, textColor, 5.5f, 0.05f);
        DisplayUtils.drawRoundedRect(this.colorRectX, this.colorRectY, this.colorRectWidth, this.colorRectHeight, 3.5f, colorValue);
    }

    private void renderPickerPanel(float mouseX, float mouseY) {
        Vector4i vector4i = new Vector4i(Color.WHITE.getRGB(),
                Color.BLACK.getRGB(),
                Color.getHSBColor(hsb[0], 1, 1).getRGB(),
                Color.BLACK.getRGB());

        float offset = 4;
        float xRange = pickerWidth - 8;
        float yRange = pickerHeight - 8;

        if (draggingPicker) {
            float saturation = MathHelper.clamp((mouseX - pickerX - offset), 0, xRange) / (xRange);
            float brightness = MathHelper.clamp((mouseY - pickerY - offset), 0, yRange) / (yRange);
            hsb[1] = saturation;
            hsb[2] = 1 - brightness;
        }

        DisplayUtils.drawRoundedRect(this.pickerX, this.pickerY, this.pickerWidth, this.pickerHeight, new Vector4f(6, 6, 6, 6), vector4i);

        float circleX = pickerX + offset + hsb[1] * (xRange);
        float circleY = pickerY + offset + (1 - hsb[2]) * (yRange);

        DisplayUtils.drawCircle(circleX, circleY, 8, Color.BLACK.getRGB());
        DisplayUtils.drawCircle(circleX, circleY, 6, Color.WHITE.getRGB());
    }


    private void renderSlider(float mouseX, float mouseY) {
        for (int i = 0; i < sliderHeight; i++) {
            float hue = i / sliderHeight;
            DisplayUtils.drawCircle(this.sliderX + 1f, sliderY + i, 3, Color.HSBtoRGB(hue, 1, 1));

        }
        DisplayUtils.drawCircle(this.sliderX + sliderWidth - 2F, this.sliderY + (hsb[0] * sliderHeight), 8, Color.BLACK.getRGB());
        DisplayUtils.drawCircle(this.sliderX + sliderWidth - 2F, this.sliderY + (hsb[0] * sliderHeight), 6, -1);
        if (draggingHue) {
            float hue = (mouseY - sliderY) / sliderHeight;
            hsb[0] = MathHelper.clamp(hue, 0,1);
        }
    }

    @Override
    public void mouseClick(float mouseX, float mouseY, int mouse) {
        if (MathUtil.isHovered(mouseX, mouseY, colorRectX, colorRectY, colorRectWidth, colorRectHeight) && mouse == 1) {
            panelOpened = !panelOpened;
        }

        if (panelOpened) {
            if (MathUtil.isHovered(mouseX, mouseY, sliderX - 2, sliderY, sliderWidth + 4, pickerHeight - 12)) {
                draggingHue = true;
            } else if (MathUtil.isHovered(mouseX, mouseY, pickerX, pickerY, pickerWidth, pickerHeight)) {
                draggingPicker = true;
            }
        }

        super.mouseClick(mouseX, mouseY, mouse);
    }


    @Override
    public void mouseRelease(float mouseX, float mouseY, int mouse) {
        if (draggingHue) {
            draggingHue = false;
        }
        if (draggingPicker) {
            draggingPicker = false;
        }
        super.mouseRelease(mouseX, mouseY, mouse);
    }
    @Override
    public boolean isVisible() {
        return colorSetting.visible.get();
    }
}
ColorComponent:

Код:
package im.expensive.ui.dropdown.components.settings;

import im.expensive.functions.settings.impl.ColorSetting;
import im.expensive.ui.dropdown.impl.Component;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class ColorComponent extends Component {

    final ColorSetting setting;


    public ColorComponent(ColorSetting setting) {
        this.setting = setting;
        this.setHeight(24);
    }
}
Поздравляю у вас в пасте норм темы!
/del exo client )
 
Сверху Снизу