fix(materials): синхронизация легенды и маркеров на превью и презентации

Легенда и цифры на материале масштабируются от экрана игроков и не обрезаются жёлтой рамкой. Переключение сцен без записи project.json на диск.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-09-02 10:57:50 +08:00
parent ea718a26df
commit 153be98780
17 changed files with 531 additions and 128 deletions
@@ -1,8 +1,16 @@
import React, { createContext, useContext } from 'react';
import type { SceneOverlayViewport } from './overlayViewport';
export type SceneOverlayViewContextValue = {
/** Внешний контейнер оверлея (полная область превью / презентации). */
rootRef: React.RefObject<HTMLDivElement | null>;
/** Слой маркеров легенды на материале (вне clipped viewport). */
markerLayerRef: React.RefObject<HTMLDivElement | null>;
/** Размеры области раскладки материалов (viewport.w/h). */
view: { w: number; h: number };
/** Смещение и размер viewport внутри rootRef (contentRect на презентации). */
viewport: SceneOverlayViewport | null;
};
export const SceneOverlayViewContext = createContext<SceneOverlayViewContextValue | null>(null);