Загрузка данных
сделай мне клиент майнкрафт 1.12.2 forge в современном стиле и компановке. Дай структуру файлов и все коды с названиями файлов
1. Управление функциями и темами — только через ClickGUI (команды — опционально)
· По нажатию клавиши (по умолчанию RSHIFT) открывается ClickGUI — полноэкранное или оконное меню с полупрозрачным фоном и динамическим размытием (как стекло).
· В GUI — вкладки или список модулей (функций). Каждый модуль имеет:
· Переключатель (вкл/выкл)
· Настройки (слайдеры, выпадающие списки, поля ввода)
· Привязку клавиши (биндинг) — кликаешь на поле "Bind", нажимаешь клавишу, она запоминается.
· Отдельная вкладка «Темы» — выбор встроенных тем (Тёмная, Прозрачное стекло, Неон) или создание своей (выбор цвета фона, текста, акцента, градиентов) с предпросмотром.
· Все изменения мгновенно применяются и сохраняются в конфиг (JSON). Конфиг загружается при запуске.
2. Структура файлов мода (обязательно соблюсти)
com.mymod/
ClientPlusMod.java (главный класс, инициализация)
core/
ModuleManager.java (список всех модулей/функций)
ConfigManager.java (сохранение/загрузка JSON)
BindManager.java (хранение и обработка биндов)
modules/ (каждая функция — отдельный класс)
HudModule.java (абстрактный)
Watermark.java
ArmorHud.java
TargetHud.java
Keystrokes.java
Coordinates.java
VisualModule.java
MotionBlur.java
Zoom.java
ItemPhysics.java
ClickAnimations.java
gui/
ClickGUI.java (экран с блюром, кнопками, вкладками)
components/ (кастомные виджеты: свитч, слайдер, бинд-пикер)
ThemeManager.java (применение цветов ко всем элементам)
render/
GlRenderer.java (все OpenGL методы: blur, round rect, 2D/3D, градиенты)
hud/
HudRenderer.java (отрисовка активных HUD-модулей на игровом экране)
utils/
ColorUtil.java, RenderUtil.java, MathUtil.java
3. Требования к ClickGUI (стеклянный блюр)
· Blur-эффект: при открытии GUI фон (игровой мир) размывается в реальном времени. Используй шейдер или многопроходный рендер через OpenGL. Размытие должно быть производительным (не лагать при 60+ FPS).
· Закруглённые углы у всех панелей, кнопок, слайдеров (использовать GlRenderer.drawRoundedRect).
· Анимации: плавное появление GUI, ховер-эффекты, анимация переключения модулей.
· Поддержка мыши: кликабельные зоны, перетаскивание окон (если GUI не полноэкранный), скролл.
4. Реализация OpenGL-рендера (класс GlRenderer)
Обязательные методы с чистой реализацией (без утечек памяти, с вершинными буферами):
· drawBlur(x, y, w, h, radius) — блюр заданной области.
· drawRoundedRect(x, y, w, h, radius, color) — скруглённый прямоугольник.
· drawRoundedOutline(x, y, w, h, radius, width, color) — обводка.
· drawGradientRect(x, y, w, h, color1, color2, direction) — градиент (гориз/верт).
· drawShadow(x, y, w, h, radius, shadowColor) — тень под элементом.
· drawTexture / drawString с шейдерным свечением.
5. HUD-функции (выключаемые через ClickGUI)
Каждый HUD-модуль должен:
· Быть наследником HudModule.
· Иметь возможность менять позицию на экране (перетаскивание мышью при зажатой клавише, например LCTRL).
· Сохранять позицию в конфиг.
· Отрисовываться через GlRenderer в едином стиле (скругления, тень, прозрачность).
Минимальный набор HUD-функций (можно больше):
· Watermark — текст "MyClient 1.0" + FPS.
· ArmorHUD — иконки брони с процентом прочности.
· TargetHUD — информация о цели под прицелом.
· Keystrokes — нажатые клавиши WASD.
· Coordinates — координаты игрока.
6. Визуальные функции (примеры для "множества красивых функций")
Добавь 3-5 на выбор (они тоже управляются из ClickGUI):
· Motion Blur — размытие при движении камеры.
· Zoom — плавное приближение по удержанию клавиши.
· Item Physics — предметы на земле вращаются.
· Fullbright — яркость как днём.
· NoHurtCam — отключает тряску камеры при ударе.
· Dynamica FOV — изменение обзора от скорости.
7. Система тем (управление через ClickGUI)
· ThemeManager хранит текущую тему и применяет цвета ко всем виджетам GUI и HUD-элементам.