Загрузка данных


сделай мне клиент майнкрафт 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-элементам.