- feat: Фаза 1 ребрендинг combatant → lovisual + восстановление config - refactor: Фаза 2 — выкинуть Runtime/JarReplacement, заменить на Lifecycle - refactor: Фаза 3.5 — удалить читерские модули, ESP под легит - refactor: Фаза 3 — разбить Renderer2D (3379→2150 фасад + 14 хелперов ≤200) - refactor: Фаза 3 — разбить BetterChatRenderer (2870→210 фасад + 21 хелпер ≤200) - refactor: Фаза 3 — разбить UnifiedSettingRenderer (2798→208 фасад + 24 хелпера ≤200) - refactor: Фаза 3 — разбить ClickGuiRenderer (1887→542 фасад + 15 хелперов ≤200) - refactor: Фаза 3 — разбить NameTags (1791→438 фасад + 11 хелперов ≤200) - refactor: Фаза 3 — разбить TargetHud (1655→340 фасад + 11 хелперов ≤200) - refactor: Фаза 3 — разбить ESP (1538→269 фасад + 11 хелперов ≤200)
37 lines
2.3 KiB
Markdown
37 lines
2.3 KiB
Markdown
# LoVisual Launcher (Rust + Slint)
|
||
|
||
## Правила (ОБЯЗАТЕЛЬНЫЕ, нарушение = откат)
|
||
- **KISS / DRY / SOLID** — простая структура, без оверинжиниринга
|
||
- **Макс. 200 строк на файл** — превышение = разбить на модули
|
||
- **Макс. 3 файла на папку** — больше = новая подпапка по смыслу
|
||
- **Обязательное прохождение:** `cargo fmt` + `cargo clippy --all-targets` (ноль ошибок) + `cargo test`
|
||
- **Запрещено `#[allow(dead_code)]`** — мёртвый код удаляется, не прячется
|
||
- **unsafe запрещён в нашем коде** (сгенерированный Slint-код — исключение, его не трогаем)
|
||
- **Без пустышек** — модуль создаётся только с рабочей реализацией
|
||
- **Каждый этап компилируется** — перед переходом к следующему
|
||
|
||
---
|
||
|
||
## Сделано
|
||
- [x] Каркас: main.rs + api/ (health check в фоне)
|
||
- [x] Окно логина (Slint): логин/пароль/статус
|
||
- [x] Rust 2024 edition, актуальные версии пакетов
|
||
- [x] Фоновая проверка `/health` бэкенда, статус в UI
|
||
|
||
---
|
||
|
||
## Фаза 1: API клиент (`src/api/`)
|
||
- [ ] `auth.rs` — login/register (reqwest, таймауты, rename_all)
|
||
- [ ] `profile.rs` — get/update/playtime/version check
|
||
- [ ] Версия лаунчера читается из Cargo.toml (не хардкод)
|
||
|
||
## Фаза 2: Экраны (Slint)
|
||
- [ ] login — реальный логин/регистрация через backend
|
||
- [ ] dashboard — профиль, playtime, version check
|
||
- [ ] settings — кастомная команда запуска (ЧИТАЕТСЯ на Play, не stale)
|
||
|
||
## Фаза 3: Launch
|
||
- [ ] `src/launch/mod.rs` — запуск Minecraft (команда из настроек, защита от пустой строки)
|
||
- [ ] `src/session/mod.rs` — save_session только при логине, удалять при logout
|
||
|
||
### Проверка после каждой фазы: `cargo fmt && cargo clippy --all-targets && cargo test`
|