25 Commits

Author SHA1 Message Date
c32914c819 feat: интерактивные 3D-таблички (BillboardGui/SurfaceGui)
Some checks failed
CI / PR size check (pull_request) Successful in 22s
CI / Lint (pull_request) Failing after 2m17s
CI / Secret scan (pull_request) Successful in 3m21s
CI / Build (pull_request) Successful in 3m31s
CI / Deploy to S1 + S2 (pull_request) Has been skipped
Задача 01 из 1 - Неделя 4/ЗАДАЧИ РУБЛОКС. P0-приоритет: без таблиц
с кнопками невозможны симуляторы, тайкуны, фермы.

Новое:
- engine/BillboardUiManager.js — 4 пресета (shop-item, shop-purchase,
  banner, sign), 18 иконок, DynamicTexture-рендер, UV-hit-test
- PrimitiveTypes: новый тип 'billboard' в категории 'gameplay'
- PrimitiveManager: case billboard в _createMeshForType (Plane), init
  через applyToMesh, billboardOpts в updateInstance
- BabylonScene: PointerEventTypes-handler для кликов с _isPlaying-чеком
  и pointer-lock поддержкой
- GameRuntime: команды billboard.set/update/onClick, callback через
  sandbox.sendEvent('billboardClick')
- ScriptSandboxWorker: пространство game.billboard.{set,update,onClick}
- BillboardEditorModal.jsx — модалка с живым canvas-превью, 8 готовых
  градиентов + кастомные пикеры, дропдаун из 18 иконок
- InspectorPanel: кнопка 'Редактировать табличку…' для billboard-примитива
- KubikonEditor: проброс модалки через onEditBillboard prop
- Icon.jsx: SVG prim-billboard

Два режима ориентации: 'camera' (BillboardGui-аналог, всегда смотрит
на игрока) и 'fixed' (SurfaceGui-аналог, прикреплён к поверхности).

Клик-детекция через ray-pick → UV → пиксели текстуры → поиск кнопки
по AABB; работает с пиксельной точностью даже при повороте камеры.

Документация: RUBLOX_STUDIO_FUNCTIONS.md раздел 1.25.

Тестовая игра 'Магазин апгрейдов' (4 таблички + банер + HUD) — МИН
соберёт в студии drag-n-drop'ом.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 11:58:06 +03:00
min
5518537d53 hotfix: ������� � �������� ������ �� ����������� (#13)
Some checks failed
CI / PR size check (push) Has been skipped
CI / Lint (push) Failing after 10s
CI / Secret scan (push) Successful in 3m43s
CI / Build (push) Successful in 3m59s
CI / Deploy to S1 + S2 (push) Successful in 2m28s
2026-05-29 08:50:51 +00:00
0bcbb89664 fix(scripts): пробел в Monaco-редакторе скриптов больше не блокируется
Some checks failed
CI / Lint (pull_request) Failing after 6s
CI / Build (pull_request) Failing after 9s
CI / PR size check (pull_request) Successful in 15s
CI / Secret scan (pull_request) Successful in 3m48s
CI / Deploy to S1 + S2 (pull_request) Has been skipped
BabylonScene.onKeyDown глобально перехватывал Space (preventDefault для
прокрутки страницы при WASD-навигации камеры). isTypingTarget проверял
только input/textarea/contentEditable — но Monaco роутит keydown через
свой внутренний div, и e.target оказывается не textarea, а
.monaco-editor-container div.

Фикс: добавлена проверка target.closest('.monaco-editor') — если фокус
в Monaco, считаем что юзер печатает и не глотаем клавиши.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 11:50:09 +03:00
f4983bf36d ci: исключить wiki/ и kubikon-assets/ из rsync deploy (#11)
Some checks failed
CI / Lint (push) Failing after 1m8s
CI / Build (push) Successful in 2m8s
CI / PR size check (push) Has been skipped
CI / Secret scan (push) Failing after 14m44s
CI / Deploy to S1 + S2 (push) Has been cancelled
Co-authored-by: МИН <maksimivankov26@yandex.ru>
Co-committed-by: МИН <maksimivankov26@yandex.ru>
2026-05-29 05:43:20 +00:00
44b8aa65c6 ci: убрать sudo в Deploy job (act-runner всегда root) (#10)
Some checks failed
CI / Lint (push) Failing after 1m6s
CI / Build (push) Successful in 2m13s
CI / Secret scan (push) Successful in 2m32s
CI / PR size check (push) Has been skipped
CI / Deploy to S1 + S2 (push) Successful in 2m30s
Co-authored-by: МИН <maksimivankov26@yandex.ru>
Co-committed-by: МИН <maksimivankov26@yandex.ru>
2026-05-29 04:49:16 +00:00
615eac86fe ci: убрать lint из needs deploy-job (#9)
Some checks failed
CI / Lint (push) Failing after 1m10s
CI / Build (push) Successful in 2m6s
CI / Secret scan (push) Successful in 2m30s
CI / PR size check (push) Has been skipped
CI / Deploy to S1 + S2 (push) Failing after 2m6s
Co-authored-by: МИН <maksimivankov26@yandex.ru>
Co-committed-by: МИН <maksimivankov26@yandex.ru>
2026-05-29 04:32:46 +00:00
825fd5a35a ci: add auto-deploy to S1+S2 via rsync after merge (#6)
Some checks failed
CI / Lint (push) Failing after 1m9s
CI / Build (push) Successful in 2m10s
CI / Secret scan (push) Successful in 2m32s
CI / PR size check (push) Has been skipped
CI / Deploy to S1 + S2 (push) Has been skipped
Co-authored-by: МИН <maksimivankov26@yandex.ru>
Co-committed-by: МИН <maksimivankov26@yandex.ru>
2026-05-29 01:06:44 +00:00
67768f2e4e fix: убрать дублирующийся ключ 🟧 в Icon.jsx (#7)
Some checks failed
CI / Lint (push) Failing after 1m9s
CI / Build (push) Successful in 2m2s
CI / Secret scan (push) Successful in 2m32s
CI / PR size check (push) Has been skipped
Co-authored-by: МИН <maksimivankov26@yandex.ru>
Co-committed-by: МИН <maksimivankov26@yandex.ru>
2026-05-29 00:40:26 +00:00
d087ed6f8e security: убраны внутренние IP/порты из публичного API.js
Some checks failed
CI / Lint (push) Failing after 1m10s
CI / Build (push) Successful in 2m3s
CI / Secret scan (push) Successful in 2m32s
CI / PR size check (push) Has been skipped
2026-05-28 16:48:01 +03:00
8def75d926 fix(scripts): fetch-assets ESM + native Windows tar
Some checks failed
CI / Lint (push) Failing after 1m6s
CI / Build (push) Successful in 2m8s
CI / Secret scan (push) Successful in 2m32s
CI / PR size check (push) Has been skipped
2026-05-28 15:13:53 +03:00
16c356f62f Merge chore/onboarding-readiness: CI/ассеты/dev-login
Some checks failed
CI / Lint (push) Failing after 40s
CI / Build (push) Failing after 40s
CI / Secret scan (push) Successful in 2m30s
CI / PR size check (push) Has been skipped
2026-05-28 15:09:00 +03:00
30f0c622f1 fix(studio): тёмный текст в PleeseReg + Профиль ведёт на rublox.pro
Some checks failed
CI / Lint (pull_request) Failing after 40s
CI / Build (pull_request) Failing after 40s
CI / Secret scan (pull_request) Successful in 2m31s
CI / PR size check (pull_request) Successful in 6s
2026-05-28 15:02:05 +03:00
80c31a1f94 chore: onboarding-readiness — CI/ассеты/dev-login
Some checks failed
CI / Lint (pull_request) Failing after 43s
CI / Build (pull_request) Failing after 41s
CI / Secret scan (pull_request) Successful in 2m30s
CI / PR size check (pull_request) Successful in 6s
3 блокера перед запуском opensource-контрибьюторов:

1. CI Lint+Format убран format:check (206 файлов студии не
   соответствуют prettier — отдельная задача формат-недели).
   Build/Lint/Secret-scan/PR-size остаются.

2. Ассеты (93 МБ kubikon-assets/) теперь в Gitea Releases:
   https://git.rublox.pro/rublox/studio/releases/tag/assets-v1
   Скачка через scripts/fetch-assets.js (npm run fetch-assets +
   автозапуск через postinstall).

3. Dev-login:
   - IS_DEV расширен до 127.0.0.1 (vite на Windows слушает там)
   - PleeseReg в dev показывает «Войти как гость» (?standalone=1)
     или «Вставить JWT»; в prod — редирект на rublox.pro
   - AuthContext поддерживает ?standalone=1 URL-параметр
   - ModelThumbnails кеш v19→v20 чтобы старые failed-превью
     не блокировали рендер после фикса IS_DEV
2026-05-28 14:55:08 +03:00
d68920b4ce fix(ci): trufflehog без docker + лишняя )} в TerrainGenPanel
Some checks failed
CI / Lint + Format (pull_request) Failing after 1m24s
CI / Build (pull_request) Successful in 1m55s
CI / Secret scan (pull_request) Successful in 2m31s
CI / PR size check (pull_request) Successful in 6s
2026-05-28 14:18:40 +03:00
ec478178af chore: refresh package-lock for monaco/dompurify/marked transitive deps
Some checks failed
CI / Lint + Format (pull_request) Failing after 1m23s
CI / Build (pull_request) Successful in 2m2s
CI / Secret scan (pull_request) Failing after 7s
CI / PR size check (pull_request) Successful in 6s
2026-05-28 14:08:16 +03:00
04d70d61e8 chore: trigger CI after runner fix
Some checks failed
CI / Lint + Format (pull_request) Failing after 2m9s
CI / Build (pull_request) Failing after 15s
CI / Secret scan (pull_request) Failing after 6s
CI / PR size check (pull_request) Successful in 6s
2026-05-28 14:04:43 +03:00
1ae2807323 chore: trigger CI test
Some checks failed
CI / Lint + Format (pull_request) Failing after 28s
CI / Build (pull_request) Failing after 38s
CI / Secret scan (pull_request) Failing after 31s
CI / PR size check (pull_request) Failing after 32s
2026-05-28 13:37:58 +03:00
min
3c65db0d14 Merge pull request 'fix: hero-��������� ����� ����� > ����� �����' (#2) from chore/onboarding-test-v2 into main
Some checks failed
CI / Lint + Format (push) Failing after 33s
CI / Build (push) Failing after 41s
CI / Secret scan (push) Failing after 32s
CI / PR size check (push) Has been skipped
assets-v1
2026-05-28 10:17:31 +00:00
Вика
b9264300dd fix: hero-заголовок «свои игры» → «свои миры»
Some checks failed
CI / Lint + Format (pull_request) Failing after 48s
CI / Build (pull_request) Failing after 35s
CI / Secret scan (pull_request) Failing after 37s
CI / PR size check (pull_request) Failing after 44s
Тест полного цикла онбординга v2 (28 мая 2026).
Studio dev :5180, Player dev :5181, оба собираются и работают.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 13:16:50 +03:00
min
04f92496e3 Merge pull request 'fix: ������� ��������� hero-������� �� �������' (#1) from fix/test-onboarding-pr into main
Some checks failed
CI / Lint + Format (push) Failing after 36s
CI / Build (push) Failing after 27s
CI / Secret scan (push) Failing after 24s
CI / PR size check (push) Has been skipped
2026-05-28 02:10:44 +00:00
Вика
9964f333f4 fix: изменил заголовок hero-баннера на главной
Some checks failed
CI / Lint + Format (pull_request) Failing after 35s
CI / Build (pull_request) Failing after 31s
CI / Secret scan (pull_request) Failing after 29s
CI / PR size check (pull_request) Failing after 30s
Тестовый PR для проверки полного флоу контрибьютора (onboarding-test).

Изменение: 'Создавай большие игры' → 'Создавай свои игры'.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 05:05:39 +03:00
61fba4e174 fix: починка билда + studio.rublox.pro инфра
Some checks failed
CI / Lint + Format (push) Failing after 32s
CI / Build (push) Failing after 37s
CI / Secret scan (push) Failing after 37s
CI / PR size check (push) Has been skipped
Большой консолидирующий коммит после поднятия studio.rublox.pro (28 мая 2026).
Содержит изменения которые делались в процессе подготовки прод-окружения:

Фиксы импортов после выноса из minecraftia:
- Массовая замена путей ../../components → ../components (40+ файлов в src/community/, src/admin-preview/)
- Замена ../KubikonEditor/ → ../editor/, ../KubikonStudio/ → ../community/, ../AdminPreview/ → ../admin-preview/
- API.js скопирован из минки целиком (было 8 экспортов, стало 312)
- Добавлены PLAYER_URL, MyButton_1, недостающие компоненты
- Заменены require() на статические ES-imports в BabylonScene, PrimitiveManager, GameRuntime (Vite не поддерживает CJS require)

Структура ассетов:
- public/kubikon-templates/ → public/assets/kubikon-templates/
- public/kubikon-learn/ → public/assets/kubikon-learn/
- (код искал в /assets/, файлы лежали без /assets/)

Навигация роутов внутри студии:
- /kubikon-studio/docs → /docs (90+ навигационных вызовов sed-replaced)
- /kubikon-editor/X → /edit/X, /kubikon/play/X → /play/X, /kubikon/gd/X → /gd/X

UI:
- Новый компонент StudioHeader (61px, как в минке) + копия favicon
- WithHeader wrapper в App.jsx для всех страниц кроме fullscreen-редактора/плеера
- SSO ticket-flow в AuthContext (auto-redeem #ticket= при загрузке)
- Тёмная тема карточек игр в ВИКИ (фон #1c2231 вместо #fff, картинка впритык)

Документация:
- docs/ONBOARDING.md — путь нового контрибьютора от нуля до PR
- docs/TUTORIAL_ADD_SCRIPT_API.md — как добавить game.* API
- API_USAGE.md — список эндпоинтов backend
- README в подпапках engine/, engine/terrain/, engine/voxel/, engine/robloxterrain/, engine/types/

.gitignore:
- public/wiki/ исключён (73МБ PNG, будут на CDN отдельной задачей)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 05:01:13 +03:00
d5319b0f19 docs: туториалы first-PR + add-block + debug Babylon + Code of Conduct
Some checks failed
CI / Lint + Format (push) Failing after 43s
CI / Build (push) Failing after 31s
CI / Secret scan (push) Failing after 37s
CI / PR size check (push) Has been skipped
2026-05-28 00:58:53 +03:00
00ab2e5839 ci: добавить Gitea Actions workflow (lint+format+build+secret-scan+size-check)
Some checks failed
CI / Lint + Format (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Secret scan (push) Has been cancelled
CI / PR size check (push) Has been cancelled
2026-05-28 00:42:12 +03:00
31adbf151b Initial public release: Студия Рублокса v1.0
Open-source веб-студия для создания игр Рублокса, двойная лицензия
AGPL-3.0 + Коммерческая.

Главное:
- Vite 5 + React 18 + Babylon 7.54.3 + Monaco Editor + Colyseus 0.16
- Самодостаточный движок ~28к строк (66 файлов): BlockManager,
  TerrainVoxelBuilder, ModelManager, DecoManager, PlayerController,
  ScriptSandboxWorker, MultiplayerSync, 30+ GD-гейммодов
- Главный редактор KubikonEditor (~37к строк) + панели, ScriptEditor (Monaco)
- Витрина игр (KubikonFeed, KubikonStudio, KubikonDocs, KubikonLearn)
- Geometry Dash sub-app (GdMenu, GdShop, GdRules, GdCoverArt)
- 10 admin-preview каталогов для дизайнеров (скины, музыка, порталы и т.д.)
- Конфигурируемый бэкенд через VITE_API_BASE — работает со staging
  (dev-api.rublox.pro) без настройки
- Standalone-режим (VITE_STANDALONE=true) — открыть пустой редактор без бэка
- Полная документация (на русском): README, ARCHITECTURE, CONTRIBUTING,
  SECURITY, CHANGELOG
- ESLint + Prettier + EditorConfig
- Legal: LICENSE (AGPL-3.0), LICENSE-COMMERCIAL.md, CLA.md, COPYRIGHT.md
- Issue templates: bug_report, feature_request, security_disclosure

Перед публикацией:
- Все импорты из minecraftia заменены на локальные
- Все хардкоды URL (minecraftia-school.ru) и внутренних IP убраны → env
- Admin-эндпоинты Kubikon3DService вырезаны (остаются в приватном репо)
- AdminKubikonModeration не публикуется (модерация — в team.rublox.pro)
- 93 МБ ассетов public/kubikon-assets вынесены в .gitignore
  (раздаются через release artifact)
2026-05-27 23:41:10 +03:00