Commit graph

6 commits

Author SHA1 Message Date
1713c06fc1 UI: TTF-атлас вместо bitmap, крупные подписи, больше пропов, immersive
Some checks failed
CI / checks (push) Has been cancelled
- Текст HUD и меню теперь из атласа Liberation Sans (SIL OFL) 30 px:
  ячейки 40×40, bbox-метрики в font_metrics.rs, глифы сглажены и
  пропорциональны. Advance остался 8 px, поэтому вёрстка Lua не менялась;
  bitmap 8×8 («не Derma») удалён, font8x8 из зависимостей убран.
- Подписи сенсорных кнопок масштабируются от размера кнопки (до 3.2×),
  а не фиксированные 10 px.
- fs pack: +20 стандартных пропов (канистры, взрывная бочка, бетонный блок,
  забор, скамья, колонна, дверь, стеллаж, комоды, шкаф, ванна, матрас,
  столы/ящики №2, дверное колесо, кнехт). В APK 39 моделей, в спавнлисте
  45 записей, иконки без заглушек.
- Android: hideSystemBars() прячет статус-бар и навигацию (API 30+ через
  WindowInsetsController, старые — SYSTEM_UI_FLAG_*), повторно на
  onWindowFocusChanged. ASSET_VERSION=4.
- Проверки: clippy -D warnings, cargo test --workspace — зелёные.
2026-10-28 17:13:15 +03:00
4bfe923577 Мобильный Sandbox: настоящий Q-меню, полный Lua и сенсорные кнопки
Some checks are pending
CI / checks (push) Waiting to run
- APK: полные lua/ + gamemodes/ + settings + resource/language (раньше был
  только autorun, и Sandbox-меню не собиралось, показывалось резервное).
  ASSET_VERSION=3: при обновлении старые распакованные файлы удаляются,
  иначе остаётся полный битый spawnlist.
- fs pack: список EXTRA_MODELS — 13 частых пропов и физган; спавнлист
  отфильтрован по моделям, которые реально есть в APK (31 запись в 7
  категориях вместо 7473 белых иконок).
- Сенсорное управление: Q, NOCLIP, LMB, RMB, JUMP, DUCK; полупрозрачные
  рамки с подписями и подсказка стика. LMB/RMB превращаются в настоящие
  события мыши (общий код физгана/оружия), noclip переключает полёт.
  Кнопка X рисуется поверх Q-меню, остальные под меню скрыты; свайп вверх/
  вниз в меню листает панели колесом.
- Lua-шим: list.Get для неизвестного списка возвращает пустую таблицу;
  panel:Call/SetHTML/AddFunction/QueueJavascript — заглушки; добавлены
  фразы vehicles/search/quick_filter и подсказки.
- Проверки: clippy -D warnings и cargo test --workspace зелёные.
2026-10-26 23:30:43 +03:00
d42b581180 fs pack: минимальный набор ассетов карты + встроенные ассеты в APK
Замер: для gm_construct реально читаются 335 файлов из VPK на 27,0 МБ
(277 материалов, 23 модели, 35 Lua-скриптов; крупнейшее — m_anm.ani 6,8 МБ)
плюс карта 35,0 МБ. Итого 62,1 МБ сырых, 31 МБ в tar.gz — против 6,7 ГБ
полной установки. Этого набора достаточно: клиент запускается с ним, карта
и пистолет полностью текстурированы (проверено кадром).

- VirtualFs: запись успешных чтений (start_recording/take_recorded);
- команда `gmod-rs fs pack <карта> --out <каталог>`: собирает мир, грузит
  модели игрока и оружия, автозагрузку Lua и копирует прочитанные файлы в
  структуру garrysmod/... плюс карту — получается самодостаточный корень
  ассетов для `--assets`;
- android/build.sh: если есть android/assets/gmod (или GMOD_RS_ANDROID_ASSETS),
  каталог кладётся в APK как assets/gmod;
- MainActivity: при первом запуске распаковывает assets/gmod в
  files/gmod_server/server, если карты там ещё нет — APK самодостаточен,
  adb push не нужен;
- .gitignore: android/assets/ (ассеты GMod не коммитим).

Все сьюты зелёные.
2026-10-23 17:03:50 +03:00
8d572b8190 Android: ландшафт, HUD над системными панелями, прыжок по тапу
- MainActivity фиксирует ландшафт (SDL перебивал манифест FULL_USER) и
  передаёт путь к ассетам через getExternalFilesDir;
- короткий тап по JUMP не теряется между кадрами (jump_pending);
- HUD сдвинут внутрь от статус-бара и нижней панели;
- логгер на Android собирается без неиспользуемой ветки.
2026-10-23 14:18:45 +03:00
e07f39d8dc Android: логи в logcat и сборка под произвольный ABI
tracing на Android пишет в logcat (adb logcat -s gmod-rs), иначе диагностика
запуска на устройстве теряется. build.sh принимает ANDROID_ABI (arm64-v8a,
x86_64, armeabi-v7a, x86) — x86_64 нужен для проверки в эмуляторе.
2026-10-23 13:41:43 +03:00
6f949085a9 Android: кросс-сборка клиента, SDL-обвязка и сенсорное управление
- client получил lib.rs (общий запуск) и cdylib с экспортом SDL_main;
- steamworks и mlua-фичи разведены по target cfg: на Android нет Steam,
  Lua 5.4 вместо LuaJIT;
- виртуальный стик, обзор свайпом и кнопки прыжка/приседа в map;
- android/: манифест, SDLActivity Java, build.sh (aapt2+d8+apksigner).
2026-10-23 13:37:11 +03:00