4 Commits

Author SHA1 Message Date
min
fc45d819e0 fix(skin): cache-bust query ?v=20260614 for character-assets URLs
All checks were successful
CI / Lint (pull_request) Successful in 55s
CI / Build (pull_request) Successful in 1m29s
CI / Secret scan (pull_request) Successful in 1m36s
CI / PR size check (pull_request) Successful in 10s
CI / Deploy to S1 + S2 (pull_request) Has been skipped
After backend CORS rollout users had stale CORS-failure cached for
Mixamo GLB. Adding a query suffix forces browsers to re-fetch the URL
instead of replaying the cached failure.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 16:34:31 +03:00
min
ca1ce23205 feat(player): crouch animation system + fullscreen + skin from DB
All checks were successful
CI / Lint (pull_request) Successful in 57s
CI / Build (pull_request) Successful in 1m33s
CI / Secret scan (pull_request) Successful in 44s
CI / PR size check (pull_request) Successful in 6s
CI / Deploy to S1 + S2 (pull_request) Has been skipped
Этап 1 плана анимаций (ANIMATIONS_PLAN.md):

CROUCH (Ctrl):
- При зажатии Ctrl персонаж приседает, AABB → 0.45
- Скорость в crouch = 0.45×walk, crouch имеет приоритет над sprint
- Анимации: crouch_enter (one-shot) → crouch_idle / crouch_walk
- При вставании: crouch_to_stand (one-shot, если не движется)
- Y-drop для разных Mixamo-клипов (crouch_idle: -0.45, walk: -0.25)
- Anti-flicker debounce 120ms в MixamoAnimator

FULLSCREEN + СТАРТ-ЭКРАН:
- При запуске игры показывается оверлей "Нажми чтобы играть"
- Клик → requestFullscreen() → Chrome блокирует Ctrl+W/D/T/R/S и др.
- В fullscreen Esc отдаётся браузеру (выход), меню открывается на Tab
- Без fullscreen — Esc открывает меню как обычно
- BottomBar динамически показывает Esc/Tab в зависимости от режима

СКИН ЮЗЕРА:
- Приоритет: URL #skin=<id> → БД (rublox_equipped_skin) → localStorage → skin_y-bot
- В Esc-меню "Участники" Mixamo-скины грузят PNG с /character-assets/skins/

MIXAMO ANIMATOR:
- Полный класс с lazy-loading 35 состояний
- AnimationGroup loop=true через onAnimationGroupEnd safety-net
- crossFadeFrom для плавных переходов
- Жёсткий stop всех не-current групп → нет фантомных анимаций
2026-06-14 15:29:13 +03:00
8f0524cbb3 feat: порт 3D-стрелки-указателя в плеер (фича-парность) + dev JWT-панель
- game.fx.pointer + расширенный game.fx.beam: BeamManager (текстуры/curved/
  градиент/quest-marker), ScriptSandboxWorker (_normFxPoint от DataCloneError),
  GameRuntime (fx.createPointer/pointerTarget/pointerUpdate/beamUpdate/
  beamVisible), BabylonScene._activatePointers. 1-в-1 со студией.
- Dev JWT-панель на экране «Нужен JWT» (только localhost): кнопка → инпут →
  localStorage.player_jwt + reload.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 21:46:24 +03:00
87444ee2c8 Initial public release: Rublox Player v1.0
Open-source web player for Rublox games, dual-licensed under
AGPL-3.0 + Commercial.

Highlights:
- Babylon.js 7 + React 18 + Vite 5 stack
- Self-contained engine (~46k lines): BlockManager, ModelManager,
  PlayerController, ScriptSandboxWorker, MultiplayerSync, 30+ GD
  gamemodes
- Configurable backend via VITE_API_BASE and friends — works against
  staging (dev-api.rublox.pro) out of the box
- Standalone mode (VITE_STANDALONE=true) loads a bundled sample game
  for first-run without any backend
- Full docs: README, ARCHITECTURE, CONTRIBUTING, SECURITY, CHANGELOG
- Lint + format scaffolding (ESLint + Prettier + EditorConfig)
- Legal: LICENSE (AGPL-3.0), LICENSE-COMMERCIAL.md, CLA.md, COPYRIGHT.md
- Issue templates: bug_report, feature_request, security_disclosure

Removed before public release:
- frontend_deploy.py (contained production SSH credentials)
- ~27 admin endpoints (kept in private repo)
- Hard-coded internal URLs and IPs
- All previous git history (clean repo init)
2026-05-27 23:04:04 +03:00