• На форуме разыгрывается более 300 ключей на приватные читы! Для этого нужно всего-лишь нажать соответствующую кнопку в теме!

    Подробности по ссылке:
    https://t.me/yougame_official/66

Исходник Theme selector like nurik nextgen 1.12 | Any version & base

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

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

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

Спасибо!

code:
package net.evaware.system.clickgui;

import net.evaware.module.setting.settings.ModeSetting;
import net.evaware.module.setting.settings.ThemeModeSetting;
import net.evaware.module.setting.settings.ThemeModeValue;
import net.evaware.utils.client.Textures;
import net.evaware.utils.color.ColorUtils;
import net.evaware.system.font.Fonts;
import net.evaware.utils.math.MouseUtil;
import net.evaware.utils.render.RenderUtil;
import net.evaware.utils.render.StencilUtil;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
import ru.hogoshi.Animation;
import ru.hogoshi.util.Easings;

import java.awt.*;

public class ThemeSelector extends Component {
    final ThemeModeSetting setting;

    Animation expandAnim = new Animation();
    double openAnimValue = 0.3, noOpenAnimValue = 0.35;
    boolean expanded;

    Animation[] itemAnimations;
    Animation[] clickAnimations;

    public ThemeSelector(ThemeModeSetting setting) {
        this.setting = setting;
        setHeight(14);
        expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);

        itemAnimations = new Animation[setting.values.length];
        clickAnimations = new Animation[setting.values.length];

        for (int i = 0; i < itemAnimations.length; i++) {
            itemAnimations[i] = new Animation();
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(setting.values[i]) ? 1 : 0, 1, Easings.EXPO_OUT);

            clickAnimations[i] = new Animation();
            clickAnimations[i].update();
            clickAnimations[i].animate(0, 1, Easings.EXPO_OUT);
        }
    }

    [USER=1367676]@override[/USER]
    public void render(MatrixStack stack, float mouseX, float mouseY) {
        super.render(stack, mouseX, mouseY);
        expandAnim.update();

        int acC = ColorUtils.setAlpha(-1, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()));
        int ncC = ColorUtils.rgba(200, 200, 200, (int) ((255 * expandAnim.getValue() * ClickGuiScreen.getAnim().getValue())));

        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(text) ? 1 : 0, 1, Easings.EXPO_OUT);
            clickAnimations[i].update();

            if (clickAnimations[i].getValue() == 1) {
                clickAnimations[i].animate(0, 0.6, Easings.EXPO_OUT);
            }
        }

        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(28, 28, 28, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, 10, ColorUtils.intToColor(ColorUtils.rgba(46, 46, 46, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        String voew = setting.getSettingName() + ": ";
        String md = setting.getValue().getName();

        float vw = Fonts.normal[15].getStringWidth(voew);

        Fonts.normal[15].drawString(stack, voew + md, getX() + 4.5f, getY() + 2.5, ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue())));
//        Fonts.normal[15].drawGradientString(stack, md, getX() + 4.5f + vw, getY() + 2, (float) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()), 5);

        float rotationAngle = (float) (180 * expandAnim.getValue());

        stack.push();
        stack.translate(getX() - 8f + getWidth(), getY() + 5, 0);
        stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(rotationAngle));
        stack.translate(-2.5f, -2.5f, 0);

        RenderUtil.drawTexturedRect(stack, 0, 0, 5, 5, Textures.ARROW_TEXTURE, ColorUtils.intToColor(ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        stack.pop();

        float heightoff = 0;
        StencilUtil.initStencilToWrite();
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(20, 20, 20, (int) ((160 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        StencilUtil.readStencilBuffer(1);
        if (expandAnim.getValue() >= 0.1) {
            for (int i = 0; i < setting.values.length; i++) {
                ThemeModeValue a = setting.values[i];
                float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;

                int sC = ColorUtils.interpolateColor(ncC, acC, (float) itemAnimations[i].getValue());
                float clickOffset = (float) (clickAnimations[i].getValue() * 1.5);

                float colorWidth = 10;
                float offset = 6f;
                float alpha = (float) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue());
                Color c1 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorFirst().getRGB(), (int) alpha));
                Color c2 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorSecond().getRGB(), (int) alpha));

                RenderUtil.drawRect(stack, getX() + getWidth() - offset - colorWidth - clickOffset, (float) (getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue()), colorWidth, 5, c1, c2);
                Fonts.normal[15].drawString(stack, a.getName(), getX() + offset + clickOffset, getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue(), sC);

                heightoff += (float) (textHeight * expandAnim.getValue());
            }
        }
        StencilUtil.uninitStencilBuffer();
        setHeight((float) (15 + heightoff + 6 * expandAnim.getValue()));
    }

    [USER=1367676]@override[/USER]
    public void mouseClick(float mouseX, float mouseY, int mouse) {
        float heightoff = 0;
        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;
            if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY() + 15f + heightoff, getWidth() - 4, textHeight - 1)) {
                if (mouse == isLMB() && expanded) {
                    setting.setValue(text);
                    clickAnimations[i].animate(1, 0.2, Easings.EXPO_OUT);
                }
            }
            heightoff += textHeight;
        }
        if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY(), getWidth() - 4, 11)) {
            if (mouse == isRMB()) {
                expanded = !expanded;
                expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);
            }
        }

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

    [USER=1367676]@override[/USER]
    public boolean isVisible() {
        return setting.getVisible().getAsBoolean();
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Начинающий
Статус
Оффлайн
Регистрация
8 Июн 2024
Сообщения
197
Реакции[?]
0
Поинты[?]
0
бля почему тебя на такие уебищные шрифты всегда тянет
 
Начинающий
Статус
Онлайн
Регистрация
8 Авг 2024
Сообщения
504
Реакции[?]
4
Поинты[?]
4K
посоветуй шрифты тогда, я не специалист в дизайне
Lexend
code:
package net.evaware.system.clickgui;

import net.evaware.module.setting.settings.ModeSetting;
import net.evaware.module.setting.settings.ThemeModeSetting;
import net.evaware.module.setting.settings.ThemeModeValue;
import net.evaware.utils.client.Textures;
import net.evaware.utils.color.ColorUtils;
import net.evaware.system.font.Fonts;
import net.evaware.utils.math.MouseUtil;
import net.evaware.utils.render.RenderUtil;
import net.evaware.utils.render.StencilUtil;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
import ru.hogoshi.Animation;
import ru.hogoshi.util.Easings;

import java.awt.*;

public class ThemeSelector extends Component {
    final ThemeModeSetting setting;

    Animation expandAnim = new Animation();
    double openAnimValue = 0.3, noOpenAnimValue = 0.35;
    boolean expanded;

    Animation[] itemAnimations;
    Animation[] clickAnimations;

    public ThemeSelector(ThemeModeSetting setting) {
        this.setting = setting;
        setHeight(14);
        expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);

        itemAnimations = new Animation[setting.values.length];
        clickAnimations = new Animation[setting.values.length];

        for (int i = 0; i < itemAnimations.length; i++) {
            itemAnimations[i] = new Animation();
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(setting.values[i]) ? 1 : 0, 1, Easings.EXPO_OUT);

            clickAnimations[i] = new Animation();
            clickAnimations[i].update();
            clickAnimations[i].animate(0, 1, Easings.EXPO_OUT);
        }
    }

    [USER=1367676]@override[/USER]
    public void render(MatrixStack stack, float mouseX, float mouseY) {
        super.render(stack, mouseX, mouseY);
        expandAnim.update();

        int acC = ColorUtils.setAlpha(-1, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()));
        int ncC = ColorUtils.rgba(200, 200, 200, (int) ((255 * expandAnim.getValue() * ClickGuiScreen.getAnim().getValue())));

        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(text) ? 1 : 0, 1, Easings.EXPO_OUT);
            clickAnimations[i].update();

            if (clickAnimations[i].getValue() == 1) {
                clickAnimations[i].animate(0, 0.6, Easings.EXPO_OUT);
            }
        }

        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(28, 28, 28, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, 10, ColorUtils.intToColor(ColorUtils.rgba(46, 46, 46, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        String voew = setting.getSettingName() + ": ";
        String md = setting.getValue().getName();

        float vw = Fonts.normal[15].getStringWidth(voew);

        Fonts.normal[15].drawString(stack, voew + md, getX() + 4.5f, getY() + 2.5, ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue())));
//        Fonts.normal[15].drawGradientString(stack, md, getX() + 4.5f + vw, getY() + 2, (float) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()), 5);

        float rotationAngle = (float) (180 * expandAnim.getValue());

        stack.push();
        stack.translate(getX() - 8f + getWidth(), getY() + 5, 0);
        stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(rotationAngle));
        stack.translate(-2.5f, -2.5f, 0);

        RenderUtil.drawTexturedRect(stack, 0, 0, 5, 5, Textures.ARROW_TEXTURE, ColorUtils.intToColor(ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        stack.pop();

        float heightoff = 0;
        StencilUtil.initStencilToWrite();
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(20, 20, 20, (int) ((160 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        StencilUtil.readStencilBuffer(1);
        if (expandAnim.getValue() >= 0.1) {
            for (int i = 0; i < setting.values.length; i++) {
                ThemeModeValue a = setting.values[i];
                float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;

                int sC = ColorUtils.interpolateColor(ncC, acC, (float) itemAnimations[i].getValue());
                float clickOffset = (float) (clickAnimations[i].getValue() * 1.5);

                float colorWidth = 10;
                float offset = 6f;
                float alpha = (float) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue());
                Color c1 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorFirst().getRGB(), (int) alpha));
                Color c2 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorSecond().getRGB(), (int) alpha));

                RenderUtil.drawRect(stack, getX() + getWidth() - offset - colorWidth - clickOffset, (float) (getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue()), colorWidth, 5, c1, c2);
                Fonts.normal[15].drawString(stack, a.getName(), getX() + offset + clickOffset, getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue(), sC);

                heightoff += (float) (textHeight * expandAnim.getValue());
            }
        }
        StencilUtil.uninitStencilBuffer();
        setHeight((float) (15 + heightoff + 6 * expandAnim.getValue()));
    }

    [USER=1367676]@override[/USER]
    public void mouseClick(float mouseX, float mouseY, int mouse) {
        float heightoff = 0;
        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;
            if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY() + 15f + heightoff, getWidth() - 4, textHeight - 1)) {
                if (mouse == isLMB() && expanded) {
                    setting.setValue(text);
                    clickAnimations[i].animate(1, 0.2, Easings.EXPO_OUT);
                }
            }
            heightoff += textHeight;
        }
        if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY(), getWidth() - 4, 11)) {
            if (mouse == isRMB()) {
                expanded = !expanded;
                expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);
            }
        }

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

    [USER=1367676]@override[/USER]
    public boolean isVisible() {
        return setting.getVisible().getAsBoolean();
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
О, ремула, ты на фабрике уже? Дам совет, если хочешь легитный софт, то делаю на мсп, а если дефолт софт, то на модах, но если у тебя на фабрике будет анхук, то это все ровно на проверке не прокатит, так как в папке с модами могут попросить каждый мод открыть
 
Начинающий
Статус
Оффлайн
Регистрация
18 Авг 2023
Сообщения
381
Реакции[?]
1
Поинты[?]
2K
Lexend

О, ремула, ты на фабрике уже? Дам совет, если хочешь легитный софт, то делаю на мсп, а если дефолт софт, то на модах, но если у тебя на фабрике будет анхук, то это все ровно на проверке не прокатит, так как в папке с модами могут попросить каждый мод открыть
обф + ремап и переименовать мод
 
1
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2021
Сообщения
495
Реакции[?]
43
Поинты[?]
8K
code:
package net.evaware.system.clickgui;

import net.evaware.module.setting.settings.ModeSetting;
import net.evaware.module.setting.settings.ThemeModeSetting;
import net.evaware.module.setting.settings.ThemeModeValue;
import net.evaware.utils.client.Textures;
import net.evaware.utils.color.ColorUtils;
import net.evaware.system.font.Fonts;
import net.evaware.utils.math.MouseUtil;
import net.evaware.utils.render.RenderUtil;
import net.evaware.utils.render.StencilUtil;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
import ru.hogoshi.Animation;
import ru.hogoshi.util.Easings;

import java.awt.*;

public class ThemeSelector extends Component {
    final ThemeModeSetting setting;

    Animation expandAnim = new Animation();
    double openAnimValue = 0.3, noOpenAnimValue = 0.35;
    boolean expanded;

    Animation[] itemAnimations;
    Animation[] clickAnimations;

    public ThemeSelector(ThemeModeSetting setting) {
        this.setting = setting;
        setHeight(14);
        expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);

        itemAnimations = new Animation[setting.values.length];
        clickAnimations = new Animation[setting.values.length];

        for (int i = 0; i < itemAnimations.length; i++) {
            itemAnimations[i] = new Animation();
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(setting.values[i]) ? 1 : 0, 1, Easings.EXPO_OUT);

            clickAnimations[i] = new Animation();
            clickAnimations[i].update();
            clickAnimations[i].animate(0, 1, Easings.EXPO_OUT);
        }
    }

    [USER=1367676]@override[/USER]
    public void render(MatrixStack stack, float mouseX, float mouseY) {
        super.render(stack, mouseX, mouseY);
        expandAnim.update();

        int acC = ColorUtils.setAlpha(-1, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()));
        int ncC = ColorUtils.rgba(200, 200, 200, (int) ((255 * expandAnim.getValue() * ClickGuiScreen.getAnim().getValue())));

        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(text) ? 1 : 0, 1, Easings.EXPO_OUT);
            clickAnimations[i].update();

            if (clickAnimations[i].getValue() == 1) {
                clickAnimations[i].animate(0, 0.6, Easings.EXPO_OUT);
            }
        }

        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(28, 28, 28, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, 10, ColorUtils.intToColor(ColorUtils.rgba(46, 46, 46, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        String voew = setting.getSettingName() + ": ";
        String md = setting.getValue().getName();

        float vw = Fonts.normal[15].getStringWidth(voew);

        Fonts.normal[15].drawString(stack, voew + md, getX() + 4.5f, getY() + 2.5, ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue())));
//        Fonts.normal[15].drawGradientString(stack, md, getX() + 4.5f + vw, getY() + 2, (float) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()), 5);

        float rotationAngle = (float) (180 * expandAnim.getValue());

        stack.push();
        stack.translate(getX() - 8f + getWidth(), getY() + 5, 0);
        stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(rotationAngle));
        stack.translate(-2.5f, -2.5f, 0);

        RenderUtil.drawTexturedRect(stack, 0, 0, 5, 5, Textures.ARROW_TEXTURE, ColorUtils.intToColor(ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        stack.pop();

        float heightoff = 0;
        StencilUtil.initStencilToWrite();
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(20, 20, 20, (int) ((160 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        StencilUtil.readStencilBuffer(1);
        if (expandAnim.getValue() >= 0.1) {
            for (int i = 0; i < setting.values.length; i++) {
                ThemeModeValue a = setting.values[i];
                float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;

                int sC = ColorUtils.interpolateColor(ncC, acC, (float) itemAnimations[i].getValue());
                float clickOffset = (float) (clickAnimations[i].getValue() * 1.5);

                float colorWidth = 10;
                float offset = 6f;
                float alpha = (float) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue());
                Color c1 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorFirst().getRGB(), (int) alpha));
                Color c2 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorSecond().getRGB(), (int) alpha));

                RenderUtil.drawRect(stack, getX() + getWidth() - offset - colorWidth - clickOffset, (float) (getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue()), colorWidth, 5, c1, c2);
                Fonts.normal[15].drawString(stack, a.getName(), getX() + offset + clickOffset, getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue(), sC);

                heightoff += (float) (textHeight * expandAnim.getValue());
            }
        }
        StencilUtil.uninitStencilBuffer();
        setHeight((float) (15 + heightoff + 6 * expandAnim.getValue()));
    }

    [USER=1367676]@override[/USER]
    public void mouseClick(float mouseX, float mouseY, int mouse) {
        float heightoff = 0;
        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;
            if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY() + 15f + heightoff, getWidth() - 4, textHeight - 1)) {
                if (mouse == isLMB() && expanded) {
                    setting.setValue(text);
                    clickAnimations[i].animate(1, 0.2, Easings.EXPO_OUT);
                }
            }
            heightoff += textHeight;
        }
        if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY(), getWidth() - 4, 11)) {
            if (mouse == isRMB()) {
                expanded = !expanded;
                expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);
            }
        }

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

    [USER=1367676]@override[/USER]
    public boolean isVisible() {
        return setting.getVisible().getAsBoolean();
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
tenacity
 
Начинающий
Статус
Оффлайн
Регистрация
25 Янв 2024
Сообщения
397
Реакции[?]
1
Поинты[?]
2K
code:
package net.evaware.system.clickgui;

import net.evaware.module.setting.settings.ModeSetting;
import net.evaware.module.setting.settings.ThemeModeSetting;
import net.evaware.module.setting.settings.ThemeModeValue;
import net.evaware.utils.client.Textures;
import net.evaware.utils.color.ColorUtils;
import net.evaware.system.font.Fonts;
import net.evaware.utils.math.MouseUtil;
import net.evaware.utils.render.RenderUtil;
import net.evaware.utils.render.StencilUtil;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
import ru.hogoshi.Animation;
import ru.hogoshi.util.Easings;

import java.awt.*;

public class ThemeSelector extends Component {
    final ThemeModeSetting setting;

    Animation expandAnim = new Animation();
    double openAnimValue = 0.3, noOpenAnimValue = 0.35;
    boolean expanded;

    Animation[] itemAnimations;
    Animation[] clickAnimations;

    public ThemeSelector(ThemeModeSetting setting) {
        this.setting = setting;
        setHeight(14);
        expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);

        itemAnimations = new Animation[setting.values.length];
        clickAnimations = new Animation[setting.values.length];

        for (int i = 0; i < itemAnimations.length; i++) {
            itemAnimations[i] = new Animation();
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(setting.values[i]) ? 1 : 0, 1, Easings.EXPO_OUT);

            clickAnimations[i] = new Animation();
            clickAnimations[i].update();
            clickAnimations[i].animate(0, 1, Easings.EXPO_OUT);
        }
    }

    [USER=1367676]@override[/USER]
    public void render(MatrixStack stack, float mouseX, float mouseY) {
        super.render(stack, mouseX, mouseY);
        expandAnim.update();

        int acC = ColorUtils.setAlpha(-1, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()));
        int ncC = ColorUtils.rgba(200, 200, 200, (int) ((255 * expandAnim.getValue() * ClickGuiScreen.getAnim().getValue())));

        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(text) ? 1 : 0, 1, Easings.EXPO_OUT);
            clickAnimations[i].update();

            if (clickAnimations[i].getValue() == 1) {
                clickAnimations[i].animate(0, 0.6, Easings.EXPO_OUT);
            }
        }

        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(28, 28, 28, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, 10, ColorUtils.intToColor(ColorUtils.rgba(46, 46, 46, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        String voew = setting.getSettingName() + ": ";
        String md = setting.getValue().getName();

        float vw = Fonts.normal[15].getStringWidth(voew);

        Fonts.normal[15].drawString(stack, voew + md, getX() + 4.5f, getY() + 2.5, ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue())));
//        Fonts.normal[15].drawGradientString(stack, md, getX() + 4.5f + vw, getY() + 2, (float) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()), 5);

        float rotationAngle = (float) (180 * expandAnim.getValue());

        stack.push();
        stack.translate(getX() - 8f + getWidth(), getY() + 5, 0);
        stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(rotationAngle));
        stack.translate(-2.5f, -2.5f, 0);

        RenderUtil.drawTexturedRect(stack, 0, 0, 5, 5, Textures.ARROW_TEXTURE, ColorUtils.intToColor(ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        stack.pop();

        float heightoff = 0;
        StencilUtil.initStencilToWrite();
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(20, 20, 20, (int) ((160 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        StencilUtil.readStencilBuffer(1);
        if (expandAnim.getValue() >= 0.1) {
            for (int i = 0; i < setting.values.length; i++) {
                ThemeModeValue a = setting.values[i];
                float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;

                int sC = ColorUtils.interpolateColor(ncC, acC, (float) itemAnimations[i].getValue());
                float clickOffset = (float) (clickAnimations[i].getValue() * 1.5);

                float colorWidth = 10;
                float offset = 6f;
                float alpha = (float) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue());
                Color c1 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorFirst().getRGB(), (int) alpha));
                Color c2 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorSecond().getRGB(), (int) alpha));

                RenderUtil.drawRect(stack, getX() + getWidth() - offset - colorWidth - clickOffset, (float) (getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue()), colorWidth, 5, c1, c2);
                Fonts.normal[15].drawString(stack, a.getName(), getX() + offset + clickOffset, getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue(), sC);

                heightoff += (float) (textHeight * expandAnim.getValue());
            }
        }
        StencilUtil.uninitStencilBuffer();
        setHeight((float) (15 + heightoff + 6 * expandAnim.getValue()));
    }

    [USER=1367676]@override[/USER]
    public void mouseClick(float mouseX, float mouseY, int mouse) {
        float heightoff = 0;
        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;
            if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY() + 15f + heightoff, getWidth() - 4, textHeight - 1)) {
                if (mouse == isLMB() && expanded) {
                    setting.setValue(text);
                    clickAnimations[i].animate(1, 0.2, Easings.EXPO_OUT);
                }
            }
            heightoff += textHeight;
        }
        if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY(), getWidth() - 4, 11)) {
            if (mouse == isRMB()) {
                expanded = !expanded;
                expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);
            }
        }

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

    [USER=1367676]@override[/USER]
    public boolean isVisible() {
        return setting.getVisible().getAsBoolean();
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
прикольно
 
Начинающий
Статус
Оффлайн
Регистрация
17 Июн 2024
Сообщения
7
Реакции[?]
0
Поинты[?]
0
code:
package net.evaware.system.clickgui;

import net.evaware.module.setting.settings.ModeSetting;
import net.evaware.module.setting.settings.ThemeModeSetting;
import net.evaware.module.setting.settings.ThemeModeValue;
import net.evaware.utils.client.Textures;
import net.evaware.utils.color.ColorUtils;
import net.evaware.system.font.Fonts;
import net.evaware.utils.math.MouseUtil;
import net.evaware.utils.render.RenderUtil;
import net.evaware.utils.render.StencilUtil;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
import ru.hogoshi.Animation;
import ru.hogoshi.util.Easings;

import java.awt.*;

public class ThemeSelector extends Component {
    final ThemeModeSetting setting;

    Animation expandAnim = new Animation();
    double openAnimValue = 0.3, noOpenAnimValue = 0.35;
    boolean expanded;

    Animation[] itemAnimations;
    Animation[] clickAnimations;

    public ThemeSelector(ThemeModeSetting setting) {
        this.setting = setting;
        setHeight(14);
        expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);

        itemAnimations = new Animation[setting.values.length];
        clickAnimations = new Animation[setting.values.length];

        for (int i = 0; i < itemAnimations.length; i++) {
            itemAnimations[i] = new Animation();
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(setting.values[i]) ? 1 : 0, 1, Easings.EXPO_OUT);

            clickAnimations[i] = new Animation();
            clickAnimations[i].update();
            clickAnimations[i].animate(0, 1, Easings.EXPO_OUT);
        }
    }

    [USER=1367676]@override[/USER]
    public void render(MatrixStack stack, float mouseX, float mouseY) {
        super.render(stack, mouseX, mouseY);
        expandAnim.update();

        int acC = ColorUtils.setAlpha(-1, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()));
        int ncC = ColorUtils.rgba(200, 200, 200, (int) ((255 * expandAnim.getValue() * ClickGuiScreen.getAnim().getValue())));

        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            itemAnimations[i].update();
            itemAnimations[i].animate(setting.getValue().equals(text) ? 1 : 0, 1, Easings.EXPO_OUT);
            clickAnimations[i].update();

            if (clickAnimations[i].getValue() == 1) {
                clickAnimations[i].animate(0, 0.6, Easings.EXPO_OUT);
            }
        }

        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(28, 28, 28, (int) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, 10, ColorUtils.intToColor(ColorUtils.rgba(46, 46, 46, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        String voew = setting.getSettingName() + ": ";
        String md = setting.getValue().getName();

        float vw = Fonts.normal[15].getStringWidth(voew);

        Fonts.normal[15].drawString(stack, voew + md, getX() + 4.5f, getY() + 2.5, ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue())));
//        Fonts.normal[15].drawGradientString(stack, md, getX() + 4.5f + vw, getY() + 2, (float) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()), 5);

        float rotationAngle = (float) (180 * expandAnim.getValue());

        stack.push();
        stack.translate(getX() - 8f + getWidth(), getY() + 5, 0);
        stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(rotationAngle));
        stack.translate(-2.5f, -2.5f, 0);

        RenderUtil.drawTexturedRect(stack, 0, 0, 5, 5, Textures.ARROW_TEXTURE, ColorUtils.intToColor(ColorUtils.setAlpha(-1, (int) ((255 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));

        stack.pop();

        float heightoff = 0;
        StencilUtil.initStencilToWrite();
        RenderUtil.drawRect(stack, getX() + 2, getY(), getWidth() - 4, (float) (getHeight() - 3 * expandAnim.getValue() - 2 - 3 * (1 - expandAnim.getValue())), ColorUtils.intToColor(ColorUtils.rgba(20, 20, 20, (int) ((160 * getAlpha()) * ClickGuiScreen.getAnim().getValue()))));
        StencilUtil.readStencilBuffer(1);
        if (expandAnim.getValue() >= 0.1) {
            for (int i = 0; i < setting.values.length; i++) {
                ThemeModeValue a = setting.values[i];
                float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;

                int sC = ColorUtils.interpolateColor(ncC, acC, (float) itemAnimations[i].getValue());
                float clickOffset = (float) (clickAnimations[i].getValue() * 1.5);

                float colorWidth = 10;
                float offset = 6f;
                float alpha = (float) (((255 * expandAnim.getValue()) * getAlpha()) * ClickGuiScreen.getAnim().getValue());
                Color c1 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorFirst().getRGB(), (int) alpha));
                Color c2 = ColorUtils.intToColor(ColorUtils.setAlpha(a.getColorSecond().getRGB(), (int) alpha));

                RenderUtil.drawRect(stack, getX() + getWidth() - offset - colorWidth - clickOffset, (float) (getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue()), colorWidth, 5, c1, c2);
                Fonts.normal[15].drawString(stack, a.getName(), getX() + offset + clickOffset, getY() + 15f + heightoff - 2 + 2 * expandAnim.getValue(), sC);

                heightoff += (float) (textHeight * expandAnim.getValue());
            }
        }
        StencilUtil.uninitStencilBuffer();
        setHeight((float) (15 + heightoff + 6 * expandAnim.getValue()));
    }

    [USER=1367676]@override[/USER]
    public void mouseClick(float mouseX, float mouseY, int mouse) {
        float heightoff = 0;
        for (int i = 0; i < setting.values.length; i++) {
            ThemeModeValue text = setting.values[i];
            float textHeight = Fonts.normal[15].getFontHeight() + 3.5f;
            if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY() + 15f + heightoff, getWidth() - 4, textHeight - 1)) {
                if (mouse == isLMB() && expanded) {
                    setting.setValue(text);
                    clickAnimations[i].animate(1, 0.2, Easings.EXPO_OUT);
                }
            }
            heightoff += textHeight;
        }
        if (MouseUtil.isHovered(mouseX, mouseY, getX() + 2, getY(), getWidth() - 4, 11)) {
            if (mouse == isRMB()) {
                expanded = !expanded;
                expandAnim = expandAnim.animate(expanded ? 1 : 0, expanded ? openAnimValue : noOpenAnimValue, Easings.EXPO_OUT);
            }
        }

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

    [USER=1367676]@override[/USER]
    public boolean isVisible() {
        return setting.getVisible().getAsBoolean();
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
квадратненько
 
Сверху Снизу