fix: �������-�������, autosave-wipe, �������� � scene.spawn #14

Open
min wants to merge 0 commits from fix/01-billboard-mirror-and-autosave into main
Owner

����� ������ ������ 01.

1) ������� � ����� ����������
BILLBOARDMODE_ALL ������������� FRONT plane ��� ��� ����� back-side � ���������� UV. mesh.scaling.x=-1 � canvas-mirror �� ��������.
�������: ����� billboardMode, ������ look-at � onBeforeRenderObservable.

2) Autosave ������������� �������� ������ ������ ������
�� ���������� loadFromState ����� ������, � ����� markDirty (�� UI sync) ��������� doSave. ������� sceneLoadingRef guard.

3) ������ ���������� ��� ������� � �����+���.

4) Scripting shortcuts: game.scene.spawn("billboard",...) ��� ��������; ������� template/face/content/elements; billboardOpts � updateInstance.

����� ������ ������ 01. **1) ������� � ����� ����������** `BILLBOARDMODE_ALL` ������������� FRONT plane ��� ��� ����� back-side � ���������� UV. mesh.scaling.x=-1 � canvas-mirror �� ��������. �������: ����� billboardMode, ������ look-at � onBeforeRenderObservable. **2) Autosave ������������� �������� ������ ������ ������** �� ���������� loadFromState ����� ������, � ����� markDirty (�� UI sync) ��������� doSave. ������� sceneLoadingRef guard. **3) ������ ���������� ��� �������** � �����+���. **4) Scripting shortcuts:** game.scene.spawn("billboard",...) ��� ��������; ������� template/face/content/elements; billboardOpts � updateInstance.
min added 1 commit 2026-05-29 10:38:44 +00:00
fix(billboard+autosave+spawn): зеркало текста, защита от перезаписи, шорткаты
Some checks failed
CI / Lint (pull_request) Failing after 7s
CI / PR size check (pull_request) Successful in 19s
CI / Secret scan (pull_request) Successful in 2m46s
CI / Build (pull_request) Successful in 2m54s
CI / Deploy to S1 + S2 (pull_request) Has been skipped
d6cc986aa9
1) Билборд (Магазин апгрейдов, ID=1906): текст и иконки отрисовывались
   зеркально из-за того что BILLBOARDMODE_ALL разворачивает FRONT-сторону
   plane так что мы видим back-side с зеркальным UV. mesh.scaling.x=-1
   игнорируется billboardMode. Решение: отключить billboardMode, вместо
   него каждый кадр в onBeforeRenderObservable ставим mesh.rotation.y =
   atan2(dx,dz) + PI — front смотрит на камеру → UV рисуется правильно.

2) Autosave перезаписывал реальный проект пустой стартовой сценой при
   reload страницы (баг #1893, #1905 — оба перетёрты). Добавил
   sceneLoadingRef guard в doSave: пока sceneLoading=true, autosave
   запрещён.

3) Запрет публикации без обложки — фронт (alert + open Settings) и бэк
   (400 thumbnail_required если pd.thumbnail < 100 байт).

4) Scripting API:
   - шорткат: game.scene.spawn('billboard',...) вместо
     'primitive:billboard' (применяется ко всем примитивам)
   - проброс template/face/content/elements в scene.spawn для билбордов
   - PrimitiveManager.updateInstance — поддержка billboardOpts patch'а

5) Тест-игра 'Магазин апгрейдов' ID=1906 — 4 shop-item билборда +
   banner + shop-purchase кнопка 'Сбросить апгрейды' + HUD рубликов.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Some checks failed
CI / Lint (pull_request) Failing after 7s
CI / PR size check (pull_request) Successful in 19s
CI / Secret scan (pull_request) Successful in 2m46s
Required
Details
CI / Build (pull_request) Successful in 2m54s
Required
Details
CI / Deploy to S1 + S2 (pull_request) Has been skipped
This branch is already included in the target branch. There is nothing to merge.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/01-billboard-mirror-and-autosave:fix/01-billboard-mirror-and-autosave
git checkout fix/01-billboard-mirror-and-autosave
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rublox/studio#14
No description provided.