From ec569ea432e245130a5b473537cc27fca5d654ef Mon Sep 17 00:00:00 2001 From: Yegor Date: Thu, 7 May 2026 22:33:16 +0300 Subject: [PATCH] update development architecture diagram content Co-authored-by: Cursor --- architecture/development-architecture.mmd | 144 ++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/architecture/development-architecture.mmd b/architecture/development-architecture.mmd index e69de29..138d2f8 100644 --- a/architecture/development-architecture.mmd +++ b/architecture/development-architecture.mmd @@ -0,0 +1,144 @@ +graph TD + subgraph Mission_Node [Структура миссии] + Mission[Миссия] --> MissionId[Id, type: free, training, control] + Mission --> MissionConfig[конфиг миссии] + MissionConfig --> MissionSettings[настройки миссии] + MissionSettings --> StartStep[стартовый шаг] + end + + subgraph Asset_Config [Конфиги ассетов] + AssetConfig --> ModelConfig[конфиг моделей] + ModelConfig --> InteractiveConfig[Конфиг интерактивных объектов] + InteractiveConfig --> InteractiveList[Список объектов] + AssetConfig --> InitialStateConfig[конфиг начальных состояний] + end + + %% Горизонтальные связи (пунктиром для ясности) + ModelLoading[Загрузка модели] + + %% Верхний ряд систем + subgraph Highlight_Group [Подсветка мешей] + Highlight[Подсветка] + Highlight --> TriggerObject + TriggerObject --> HighlightObjects[Объекты для подсветки] + HighlightObjects --> ImproveHighlight[Улучшать визуализацию подсветки] + end + + subgraph Position_Group [Позиционирование анимированное] + SmoothPos[Позиционирование анимированное] + SmoothPos --> Coord1[Координаты] + Coord1 --> Velocity1[Velocity] + end + + subgraph Inertia_Group [Функционал инерции] + SmoothAcceleration[Плавный разгон] + SmoothAcceleration --> SmoothAttenuation[Плавное затухание] + end + + subgraph Rotation_Group [Вращение анимированное] + SmoothRot[Вращение анимированное] + SmoothRot --> Coord2[Координаты] + Coord2 --> Velocity2[Velocity] + end + + subgraph Player_Group [Игрок] + Player[Игрок] + Player --> Camera[Камера] + Camera --> CameraSettings[Настройки камеры] + Camera --> Collisions[Коллизии] + end + + subgraph Anchor_Group [Якоря] + POI[точки интереса на моделях] + POI --> PathBuild[Строить путь по точкам от игрока] + PathBuild --> ModelDisplay[Какие модели отображать] + end + + %% Отдельный блок + subgraph Teleport_Group [Телепорты] + Teleports[Телепорты] + end + + subgraph World_Group [Функционал мира legacy parity] + ZoneState[Зоны и переключение зон] + RouteMap[Route map overlay] + VisibilityRules[Правила видимости моделей] + ZoneState --> RouteMap + RouteMap --> VisibilityRules + end + + subgraph Scenario_Group [Сценарный движок] + ScenarioRuntime[Runtime шагов сценария] + PromiseEvents[События click input hotkey timeout any] + Branching[Ветвления и переходы шагов] + HintSystem[Система подсказок и фокуса камеры] + ScenarioRuntime --> PromiseEvents + PromiseEvents --> Branching + Branching --> HintSystem + end + + subgraph EmbeddedUi_Group [Встроенный UI в 3D] + SvgScreens[SVG экраны на мешах] + HtmlMeshUi[HTML mesh интерфейсы] + MeshPopup[Popup выбора состояния объекта] + SvgScreens --> HtmlMeshUi + HtmlMeshUi --> MeshPopup + end + + subgraph SessionProgress_Group [Прогресс и аналитика] + DomainSnapshot[Снапшот доменного состояния] + StepProgress[Прогресс шага и сценария] + ErrorRecovery[Восстановление после ошибок] + DomainSnapshot --> StepProgress + StepProgress --> ErrorRecovery + end + + subgraph ExternalIntegration_Group [Интеграция внешней оболочки] + TrainerWrapper[Контракт trainer wrapper] + ExerciseSession[Связка exercise session user] + CompletionApi[Завершение и отправка результата] + TrainerWrapper --> ExerciseSession + ExerciseSession --> CompletionApi + end + + subgraph MigrationRoadmap_Group [Путь реализации] + P0[P0 Игрок и интерактив] + P1[P1 Мир и маршруты] + P2[P2 Сценарии и прогресс] + P0 --> P1 + P1 --> P2 + end + + Mission_Node --> ModelLoading + MissionConfig --> Asset_Config + ModelLoading --> Highlight_Group + Highlight_Group --> Position_Group + Position_Group --> Rotation_Group + Rotation_Group --> Inertia_Group + Inertia_Group --> Player_Group + Player_Group --> Anchor_Group + Anchor_Group --> Teleport_Group + Teleport_Group --> World_Group + MissionSettings --> Scenario_Group + TriggerObject --> EmbeddedUi_Group + Scenario_Group --> SessionProgress_Group + SessionProgress_Group --> ExternalIntegration_Group + + Player_Group --> P0 + EmbeddedUi_Group --> P0 + World_Group --> P1 + Scenario_Group --> P2 + SessionProgress_Group --> P2 + + %% Длинные связи со схемы + Asset_Config -.-> ModelLoading + ModelLoading -.-> TriggerObject[Триггер объект] + + classDef idleNode fill:#efdbc4, stroke:#554e46, color:#b25019 + classDef activeNode fill:#ff7325,stroke:#652d0e, color:#652d0e + classDef successNode fill:#247633,stroke:#efdbc4, color:#efdbc4 + classDef errorNode fill:#ad2427,stroke:#efdbc4, color:#efdbc4 + class Position_Group activeNode + class Mission,MissionConfig idleNode + class ImproveHighlight,HighlightObjects,TriggerObject,Highlight,ModelLoading,MissionId,AssetConfig,ModelConfig,InteractiveConfig,InteractiveList,InitialStateConfig successNode + class MissionSettings,StartStep errorNode