Вопрос Как сделать ClickGUI Forge 1.16.5

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

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

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

Спасибо!

допустим у меня есть всякие там RenderUtil и т.д, где можно почитать тутор или взять пример? спасибо заранее
 
Начинающий
Статус
Оффлайн
Регистрация
2 Апр 2023
Сообщения
13
Реакции[?]
0
Поинты[?]
0
В классе click gui отрисовываешь окно если стиль cs gui далее через цикл отрисовываешь каждую категорию и в категории так же через цикл рисуешь функции и к ним настройки. Это должно быть так
Java:
// Class click gui

// Список категорий
private ArrayList<Panel> panels = new ArrayList<>();

// Конструктор. В нем инициализируешь все переменные, списки
public ClickGui() {
    int offset = 200;
    // Проходимся по каждой категории которая enum, а не ui. Хз как иначе объяснить
    for(Category category : Category.values()) {
       
        // Переменная из которой можно будет извлечь ширину категории
        Panel panel = new Panel(category, offset, posY);
       
        // Добавления категии в список
        panels.add(panel);
       
        // Добавления ширины категории к offset что-бы категории не были в друг друге
        offset += panel.getWidth() + 10; // 10 отступ между категориями
    }
}


// Метод отрисовки
@Override
public void render(MatrixStack stack, double mouseX, double mouseY) {
   
    // Здесь рисуешь что будет на заднем фоне будь-то размытие либо фон окна если стиль cs gui
   
    // Проходимся по каждой категории
    for(Panel panel : panels) {
        // Отрисовка категории
        panel.render(mouseX, mouseY);
    }
}


// Метод срабатывающий при клике
@Override
public void mouseClicked(double mouseX, double mouseY, int mouseClicked) {
    // Проходимся по каждой панели
    for(Panel panel : panels) {
       
        // Вызов метода клика для категории
        panel.mouseClicked(mouseX, mouseY, mouseClicked);
       
        // Если панель открыта. Условие не для cs gui
        if(panel.isOpened()) {
            // Проходимся по каждой функции категории
            for(Module module : panel.getModules()) {
                // Вызов метода клика для функции
                module.mouseClicked(mouseX, mouseY, mouseClicked);
            }
        }
    }
}

// class Panel
// тут dropdown имеется в виду как у экспы, где панели не закрываются и не передвигаются

private Category category;
private int posX, posY, width;
// final потому что высота не будет менятся в будущем
private final int height;
// если не dropdown
private boolean opened;
private ArrayList<Module> modules = new ArrayList<>();

/*
   Конструктор который принимает категорию и позиции по Х Y.
   int хавает меньше памяти по этому он, но если нужно более точная позиция,
   то float или double для тебя
*/
public Panel(Category category, int posX, int posY) {
   
    // Присваивание переменным значения из аргументов
    this.category = category;
    this.posX = posX;
    this.posY = posY;
   
    // Размеры панели
    // В данном случае я написал размеры лишь самого заголовка
    width = 100; // ширина
    height = 30; // высота
   
    // Открыта ли панель
    opened = true;
   
    int offset = posY + height;
    // Проходимся по каждой функции категории панели
    for(Function function : Client.INSTANCE.getModuleManager().getModulesByCategory(category)) {
        // Переменная Module из которой можно извлечь высоту
        Module module = new Module(function, posX, offset);
        // Добавления переменной module в список функций панели
        modules.add(module);
        // Добавления суммы высоты модуля и 5 к offset
        offset += module.getHeight() + 5; // 5 - отступ между функциями
    }
}

// Метод отрисовки
public void render(double mouseX, double mouseY) {
    // Задний фон заголовка панели
    RenderUtil.drawRect(posX, posY, width, height, new Color(0, 0, 240));
    // Заголовок
    Fonts.sfMedium.drawCenteredText(category.name(), posX + (width / 2), posY + (height / 2), new Color(255, 255, 255));
    // Если панель открыта
    if(opened) {
        // Проходимся по каждой функции панели
        for(Module module : modules) {
            // Отрисовываешь каждую фукнцию панели
            module.render(mouseX, mouseY);
        }
    }
}
Далее функции и настройки я думаю ты понял как делать
Писал вручную без ide по этому могут быть синтаксические ошибки
 
Начинающий
Статус
Оффлайн
Регистрация
22 Ноя 2020
Сообщения
51
Реакции[?]
0
Поинты[?]
0
допустим у меня есть всякие там RenderUtil и т.д, где можно почитать тутор или взять пример? спасибо заранее
куча сурсов на форуме, смотри как написано в них, вот тебе и примеры. в конце-концов, есть гугл.
 
Начинающий
Статус
Оффлайн
Регистрация
7 Авг 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
куча сурсов на форуме, смотри как написано в них, вот тебе и примеры. в конце-концов, есть гугл.
за пару дней сам сделал гуишку, настройки для модулей и т.п. Но мне очень не хватает колор пикера для изменения цвета(мод визуалы). Может где-то есть пример, исходник, или тутор как сделать колор-пикер?
 
Начинающий
Статус
Оффлайн
Регистрация
22 Ноя 2020
Сообщения
51
Реакции[?]
0
Поинты[?]
0
за пару дней сам сделал гуишку, настройки для модулей и т.п. Но мне очень не хватает колор пикера для изменения цвета(мод визуалы). Может где-то есть пример, исходник, или тутор как сделать колор-пикер?
в експе вроде есть, посмотри как там написан.
 
Начинающий
Статус
Оффлайн
Регистрация
30 Май 2024
Сообщения
98
Реакции[?]
1
Поинты[?]
1K
за пару дней сам сделал гуишку, настройки для модулей и т.п. Но мне очень не хватает колор пикера для изменения цвета(мод визуалы). Может где-то есть пример, исходник, или тутор как сделать колор-пикер?
под фордж можешь посмотреть вот такой исходник с колор пикером
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Начинающий
Статус
Оффлайн
Регистрация
30 Июл 2023
Сообщения
52
Реакции[?]
0
Поинты[?]
1K
Сверху Снизу