@vnejs/docs 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +49 -0
  2. package/architecture.md +507 -0
  3. package/manifest.json +44 -0
  4. package/package.json +27 -0
  5. package/plugins/audio/ambient.md +39 -0
  6. package/plugins/audio/audio.md +61 -0
  7. package/plugins/audio/music.md +39 -0
  8. package/plugins/audio/sound.md +39 -0
  9. package/plugins/audio/voice.md +43 -0
  10. package/plugins/canvas/bg.md +76 -0
  11. package/plugins/canvas/bg.speak.md +54 -0
  12. package/plugins/canvas/fill.md +66 -0
  13. package/plugins/canvas/layer.md +57 -0
  14. package/plugins/canvas/sprite.md +85 -0
  15. package/plugins/canvas/sprite.speak.md +53 -0
  16. package/plugins/canvas/text.md +63 -0
  17. package/plugins/canvas/video.md +71 -0
  18. package/plugins/canvas.layers/bl.md +47 -0
  19. package/plugins/canvas.layers/fl.md +47 -0
  20. package/plugins/canvas.layers/ml.md +47 -0
  21. package/plugins/canvas.layers/ul.md +46 -0
  22. package/plugins/canvas.props/animation.md +48 -0
  23. package/plugins/canvas.props/clip.md +43 -0
  24. package/plugins/canvas.props/filters.md +39 -0
  25. package/plugins/canvas.props/mask.md +44 -0
  26. package/plugins/canvas.props/scale.md +41 -0
  27. package/plugins/controls/controls.md +41 -0
  28. package/plugins/controls/cursor.md +59 -0
  29. package/plugins/controls/gamepad.md +37 -0
  30. package/plugins/controls/keyboard.md +37 -0
  31. package/plugins/core/components.md +47 -0
  32. package/plugins/core/interact.md +45 -0
  33. package/plugins/core/logs.md +46 -0
  34. package/plugins/core/media.md +59 -0
  35. package/plugins/core/memory.md +44 -0
  36. package/plugins/core/platforms.md +48 -0
  37. package/plugins/core/scenario.md +63 -0
  38. package/plugins/core/settings.md +43 -0
  39. package/plugins/core/stack.md +57 -0
  40. package/plugins/core/state.md +51 -0
  41. package/plugins/core/storage.md +89 -0
  42. package/plugins/core/system.md +56 -0
  43. package/plugins/core/vendors.md +45 -0
  44. package/plugins/entities/entities.md +35 -0
  45. package/plugins/entities/wallet.md +47 -0
  46. package/plugins/font/montserrat.md +35 -0
  47. package/plugins/platform/android.md +38 -0
  48. package/plugins/platform/electron.md +40 -0
  49. package/plugins/platform/metric.md +42 -0
  50. package/plugins/rpg/damage.md +46 -0
  51. package/plugins/rpg/hit.md +46 -0
  52. package/plugins/rpg/skills.md +47 -0
  53. package/plugins/save/auto.md +47 -0
  54. package/plugins/save/continue.md +43 -0
  55. package/plugins/save/save.md +62 -0
  56. package/plugins/scales/health.md +37 -0
  57. package/plugins/scales/mana.md +37 -0
  58. package/plugins/scales/scales.md +54 -0
  59. package/plugins/scenario/autoread.md +50 -0
  60. package/plugins/scenario/choose.md +111 -0
  61. package/plugins/scenario/fastforward.md +61 -0
  62. package/plugins/scenario/pause.md +43 -0
  63. package/plugins/scenario/point_and_click.md +95 -0
  64. package/plugins/scenario/qte.md +97 -0
  65. package/plugins/scenario/random.md +38 -0
  66. package/plugins/settings/filter.md +39 -0
  67. package/plugins/settings/potato.md +41 -0
  68. package/plugins/settings/ratio.md +41 -0
  69. package/plugins/settings/textsize.md +39 -0
  70. package/plugins/settings/volume.md +41 -0
  71. package/plugins/text/inject.md +41 -0
  72. package/plugins/text/locs.md +49 -0
  73. package/plugins/text/meet.md +40 -0
  74. package/plugins/text/smooth.md +51 -0
  75. package/plugins/text/text.md +78 -0
  76. package/plugins/text/wall.md +41 -0
  77. package/plugins/time/date.md +42 -0
  78. package/plugins/time/time.md +43 -0
  79. package/plugins/vars/counters.md +46 -0
  80. package/plugins/vars/flags.md +44 -0
  81. package/plugins/vars/vars.md +51 -0
  82. package/plugins/views/achievement.md +64 -0
  83. package/plugins/views/comment.md +49 -0
  84. package/plugins/views/cursor.md +39 -0
  85. package/plugins/views/fps.md +51 -0
  86. package/plugins/views/video.md +57 -0
  87. package/plugins/views.scenario/choose.md +79 -0
  88. package/plugins/views.scenario/interface.controls.md +50 -0
  89. package/plugins/views.scenario/interface.fastforward.md +50 -0
  90. package/plugins/views.scenario/interface.md +68 -0
  91. package/plugins/views.scenario/point_and_click.md +87 -0
  92. package/plugins/views.scenario/qte.md +105 -0
  93. package/plugins/views.screens/confirm.md +48 -0
  94. package/plugins/views.screens/credits.md +46 -0
  95. package/plugins/views.screens/eula.md +54 -0
  96. package/plugins/views.screens/gallery.full.md +48 -0
  97. package/plugins/views.screens/gallery.md +69 -0
  98. package/plugins/views.screens/gamemenu.md +52 -0
  99. package/plugins/views.screens/history.md +70 -0
  100. package/plugins/views.screens/intro.md +50 -0
  101. package/plugins/views.screens/loading.md +48 -0
  102. package/plugins/views.screens/mainmenu.md +61 -0
  103. package/plugins/views.screens/mainmenu.socials.md +45 -0
  104. package/plugins/views.screens/save.md +63 -0
  105. package/plugins/views.screens/settings.defaults.md +51 -0
  106. package/plugins/views.screens/settings.md +53 -0
  107. package/scenario.catalog/README.md +38 -0
  108. package/scenario.catalog/index.md +109 -0
  109. package/scenario.catalog/stubs/achievement.md +16 -0
  110. package/scenario.catalog/stubs/audio.ambient.md +16 -0
  111. package/scenario.catalog/stubs/audio.music.md +16 -0
  112. package/scenario.catalog/stubs/audio.sound.md +16 -0
  113. package/scenario.catalog/stubs/audio.voice.md +16 -0
  114. package/scenario.catalog/stubs/bl.animation.md +18 -0
  115. package/scenario.catalog/stubs/bl.bg.md +18 -0
  116. package/scenario.catalog/stubs/bl.clip.md +18 -0
  117. package/scenario.catalog/stubs/bl.fill.md +18 -0
  118. package/scenario.catalog/stubs/bl.filter.md +18 -0
  119. package/scenario.catalog/stubs/bl.mask.md +18 -0
  120. package/scenario.catalog/stubs/bl.scale.md +18 -0
  121. package/scenario.catalog/stubs/bl.sprite.md +18 -0
  122. package/scenario.catalog/stubs/bl.text.md +18 -0
  123. package/scenario.catalog/stubs/bl.video.md +18 -0
  124. package/scenario.catalog/stubs/choose.block.md +25 -0
  125. package/scenario.catalog/stubs/choose.md +18 -0
  126. package/scenario.catalog/stubs/choose.option.md +24 -0
  127. package/scenario.catalog/stubs/comment.md +17 -0
  128. package/scenario.catalog/stubs/counter.md +21 -0
  129. package/scenario.catalog/stubs/credits.md +17 -0
  130. package/scenario.catalog/stubs/date.md +17 -0
  131. package/scenario.catalog/stubs/fl.animation.md +18 -0
  132. package/scenario.catalog/stubs/fl.bg.md +18 -0
  133. package/scenario.catalog/stubs/fl.clip.md +18 -0
  134. package/scenario.catalog/stubs/fl.fill.md +18 -0
  135. package/scenario.catalog/stubs/fl.filter.md +18 -0
  136. package/scenario.catalog/stubs/fl.mask.md +18 -0
  137. package/scenario.catalog/stubs/fl.scale.md +18 -0
  138. package/scenario.catalog/stubs/fl.sprite.md +18 -0
  139. package/scenario.catalog/stubs/fl.text.md +18 -0
  140. package/scenario.catalog/stubs/fl.video.md +18 -0
  141. package/scenario.catalog/stubs/flag.md +24 -0
  142. package/scenario.catalog/stubs/interface.md +17 -0
  143. package/scenario.catalog/stubs/intro.md +16 -0
  144. package/scenario.catalog/stubs/mainmenu.md +16 -0
  145. package/scenario.catalog/stubs/ml.animation.md +18 -0
  146. package/scenario.catalog/stubs/ml.bg.md +18 -0
  147. package/scenario.catalog/stubs/ml.clip.md +18 -0
  148. package/scenario.catalog/stubs/ml.fill.md +18 -0
  149. package/scenario.catalog/stubs/ml.filter.md +18 -0
  150. package/scenario.catalog/stubs/ml.mask.md +18 -0
  151. package/scenario.catalog/stubs/ml.scale.md +18 -0
  152. package/scenario.catalog/stubs/ml.sprite.md +18 -0
  153. package/scenario.catalog/stubs/ml.text.md +18 -0
  154. package/scenario.catalog/stubs/ml.video.md +18 -0
  155. package/scenario.catalog/stubs/other.md +17 -0
  156. package/scenario.catalog/stubs/pause.md +16 -0
  157. package/scenario.catalog/stubs/point-and-click.block.md +21 -0
  158. package/scenario.catalog/stubs/point-and-click.md +18 -0
  159. package/scenario.catalog/stubs/point-and-click.option.md +20 -0
  160. package/scenario.catalog/stubs/qte.md +16 -0
  161. package/scenario.catalog/stubs/random.md +16 -0
  162. package/scenario.catalog/stubs/random.option.md +16 -0
  163. package/scenario.catalog/stubs/save.auto.md +16 -0
  164. package/scenario.catalog/stubs/save.md +16 -0
  165. package/scenario.catalog/stubs/scenario.md +17 -0
  166. package/scenario.catalog/stubs/settings.defaults.md +16 -0
  167. package/scenario.catalog/stubs/stack.md +18 -0
  168. package/scenario.catalog/stubs/text.meet.md +16 -0
  169. package/scenario.catalog/stubs/text.wall.md +17 -0
  170. package/scenario.catalog/stubs/time.md +17 -0
  171. package/scenario.catalog/stubs/ul.animation.md +18 -0
  172. package/scenario.catalog/stubs/ul.bg.md +18 -0
  173. package/scenario.catalog/stubs/ul.clip.md +18 -0
  174. package/scenario.catalog/stubs/ul.fill.md +18 -0
  175. package/scenario.catalog/stubs/ul.filter.md +18 -0
  176. package/scenario.catalog/stubs/ul.mask.md +18 -0
  177. package/scenario.catalog/stubs/ul.scale.md +18 -0
  178. package/scenario.catalog/stubs/ul.sprite.md +18 -0
  179. package/scenario.catalog/stubs/ul.text.md +18 -0
  180. package/scenario.catalog/stubs/video.md +16 -0
  181. package/scenario.catalog/stubs/wallet.md +17 -0
  182. package/scenario.guide/README.md +82 -0
  183. package/scenario.guide/audio.md +29 -0
  184. package/scenario.guide/canvas.md +46 -0
  185. package/scenario.guide/choose.md +54 -0
  186. package/scenario.guide/dialogue.md +58 -0
  187. package/scenario.guide/flow.md +71 -0
  188. package/scenario.guide/point-and-click.md +35 -0
  189. package/scenario.guide/qte-random.md +51 -0
  190. package/scenario.guide/vars.md +67 -0
  191. package/scenario.guide/views.md +65 -0
@@ -0,0 +1,47 @@
1
+ # plugins/core/components/
2
+
3
+ Пакет: `@vnejs/plugins.core.components` · namespace: `COMPONENTS`
4
+
5
+ React/DOM-контейнер для монтирования view-компонентов и цепочка inject-обработчиков.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `RENDER` | `vne:components:render` | Запрос на отрисовку: создаётся дочерний контейнер, вызывается переданная `renderFunc`; завершение — когда компонент вызовет `onMount`. |
12
+ | `INJECT` | `vne:components:inject` | Прогон значения через все зарегистрированные inject-обработчики по очереди; возвращает массив результатов. |
13
+ | `INJECT_REG` | `vne:components:inject_reg` | Регистрация нового inject-обработчика в цепочку. |
14
+ | `EXTERNAL_UPDATE` | `vne:components:external_update` | Запрос на принудительное обновление отображения UI без полного re-render. |
15
+
16
+ ## Константы
17
+
18
+ - **`LOGS_ACTIONS.RENDER`** — `"render"`: метка действия для логов при рендере.
19
+
20
+ ## Параметры
21
+
22
+ Нет.
23
+
24
+ ## Настройки
25
+
26
+ Нет.
27
+
28
+ ## Модули
29
+
30
+ | Модуль | Зона ответственности |
31
+ |--------|----------------------|
32
+ | `components.render` | Создаёт `#components` в DOM; обрабатывает `RENDER`; инициализирует `shared.viewForceAnimationSources`. |
33
+ | `components.inject` | Регистрация и последовательный вызов inject-обработчиков на `INJECT` / `INJECT_REG`. |
34
+ | `components.logs` | Логирование `RENDER` (результат фильтруется из ответа emit). |
35
+
36
+ ## Близкие плагины
37
+
38
+ Плагины, чьи события, константы, параметры или настройки используются в коде `@vnejs/plugins.core.components`.
39
+
40
+ ### plugins/core/
41
+
42
+ - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
43
+ - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.DOM_IDS` (`APP`, `COMPONENTS`)
44
+
45
+ ### Остальные
46
+
47
+ — нет
@@ -0,0 +1,45 @@
1
+ # plugins/core/interact/
2
+
3
+ Пакет: `@vnejs/plugins.core.interact` · namespace: `INTERACT`
4
+
5
+ Очередь пользовательских обработчиков взаимодействия (клик «продолжить», ожидание ввода и т.п.) с ключами push/pop.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `EMIT` | `vne:interact:emit` | Запуск цикла взаимодействия: если не занят — `STARTED`, параллельный вызов всех handlers, затем `ENDED`. |
12
+ | `PUSH` | `vne:interact:push` | Зарегистрировать handler под ключом. Payload: `{ key?, handler? }`. |
13
+ | `POP` | `vne:interact:pop` | Снять handler по ключу. Payload: `{ key? }`. |
14
+ | `PUSH_POP` | `vne:interact:push_pop` | Временно подменить handler (`skipHandler`), выполнить `handler`, затем pop по `key`. |
15
+ | `STARTED` | `vne:interact:started` | Начало цикла взаимодействия — перед параллельным вызовом handlers. |
16
+ | `ENDED` | `vne:interact:ended` | Завершение цикла взаимодействия — после выполнения всех handlers. |
17
+
18
+ ## Константы
19
+
20
+ - **`LOGS_ACTIONS`** — метки для логов: `EMIT`, `PUSH`, `POP`, `PUSH_POP`, `STARTED`, `ENDED`.
21
+
22
+ ## Параметры
23
+
24
+ Нет.
25
+
26
+ ## Настройки
27
+
28
+ Нет.
29
+
30
+ ## Модули
31
+
32
+ | Модуль | Зона ответственности |
33
+ |--------|----------------------|
34
+ | `interact` | Хранит стек handlers; реализует `EMIT`, `PUSH`, `POP`, `PUSH_POP`. |
35
+ | `interact.logs` | Логирование всех событий interact. |
36
+
37
+ ## Близкие плагины
38
+
39
+ ### plugins/core/
40
+
41
+ - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
42
+
43
+ ### Остальные
44
+
45
+ — нет
@@ -0,0 +1,46 @@
1
+ # plugins/core/logs/
2
+
3
+ Пакет: `@vnejs/plugins.core.logs` · namespace: `LOGS`
4
+
5
+ Централизованное логирование в `window.VneLogs` и опционально в консоль.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `EMIT` | `vne:logs:emit` | Поставить запись в очередь логов (если логирование включено); затем сформировать `PUSH` с uid и timestamp. |
12
+ | `PUSH` | `vne:logs:push` | Записать строку в `window.VneLogs` и при необходимости вывести в консоль. |
13
+ | `LOAD` | `vne:logs:load` | Скачать накопленные логи как JSON-файл через `SYSTEM.FILE_LOAD`. |
14
+ | `CLEAR` | `vne:logs:clear` | Очистить `window.VneLogs`. |
15
+
16
+ ## Константы
17
+
18
+ - **`FILTER_FROM_RESULT_OPTIONS`** — `{ filterFromResult: true }`: при emit результат обработчика не включается в массив ответов.
19
+
20
+ ## Параметры
21
+
22
+ Нет.
23
+
24
+ ## Настройки
25
+
26
+ | Ключ | Тип | Смысл |
27
+ |------|-----|-------|
28
+ | `ENABLED` (`vne:logs:enabled`) | `boolean` | Включено ли логирование; инициализируется при старте модуля. |
29
+
30
+ ## Модули
31
+
32
+ | Модуль | Зона ответственности |
33
+ |--------|----------------------|
34
+ | `logs` | Очередь логов, `EMIT`/`PUSH`/`LOAD`/`CLEAR`; регистрация настройки `ENABLED`. |
35
+
36
+ ## Близкие плагины
37
+
38
+ ### plugins/core/
39
+
40
+ - [settings.md](./settings.md) — `SETTINGS`: `INIT`; `SETTINGS.LOGS.ENABLED`
41
+ - [system.md](./system.md) — `SYSTEM`: `FILE_LOAD` (скачивание логов)
42
+ - [vendors.md](./vendors.md) — `VENDORS`: `UID`, `CLONE` (`emitClone` для записи лога)
43
+
44
+ ### Остальные
45
+
46
+ — нет
@@ -0,0 +1,59 @@
1
+ # plugins/core/media/
2
+
3
+ Пакет: `@vnejs/plugins.core.media` · namespace: `MEDIA`
4
+
5
+ Загрузка, обработка и кэширование медиа (image/audio/video) с ограничением параллелизма.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `GET` | `vne:media:get` | Получить готовый медиа-элемент: из кэша или через цепочку load. |
12
+ | `SET` | `vne:media:set` | Положить готовый DOM-элемент в memory-подсистему media. |
13
+ | `LOAD` | `vne:media:load` | Запуск загрузки по id/type/name с учётом semaphore и dedup через `LOAD_CHECK`. |
14
+ | `LOAD_CHECK` | `vne:media:load_check` | Проверить: уже в памяти, в процессе process или load. |
15
+ | `LOAD_START` | `vne:media:load_start` | Начало загрузки asset (маркер lifecycle). |
16
+ | `LOAD_END` | `vne:media:load_end` | Окончание загрузки asset (маркер lifecycle). |
17
+ | `ERROR_NO_SRC` | `vne:media:error_no_src` | В манифесте нет src для запрошенного asset. |
18
+ | `ERROR_FETCH` | `vne:media:error_fetch` | Ошибка fetch при загрузке blob. |
19
+ | `PROCESS` | `vne:media:process` | Скачать blob, создать `<img>` / `<audio>` / `<video>`, вызвать `SET`. |
20
+ | `PROCESS_CHECK` | `vne:media:process_check` | Есть ли уже promise/результат process для `mediaId`. |
21
+ | `MEMORY_GET` | `vne:media:memory_get` | Прокси к `MEMORY.GET` для namespace media. |
22
+ | `MEMORY_SET` | `vne:media:memory_set` | Прокси к `MEMORY.SET` для namespace media. |
23
+
24
+ ## Константы
25
+
26
+ - **`TYPES`** — `"image"` | `"audio"` | `"video"`.
27
+ - **`PRIORITIES`** — числовые приоритеты очереди: `HIGH` (0), `MEDIUM` (1), `LOW` (2), `BACKGROUND` (3).
28
+ - **`LOGS_ACTIONS`** — метки для логов: get, set, load, load_start, load_end, error_no_src, error_fetch.
29
+
30
+ ## Параметры
31
+
32
+ Нет.
33
+
34
+ ## Настройки
35
+
36
+ Нет.
37
+
38
+ ## Модули
39
+
40
+ | Модуль | Зона ответственности |
41
+ |--------|----------------------|
42
+ | `media.load` | Semaphore-gated load, dedup, делегирование в process/memory. |
43
+ | `media.process` | Fetch blob и создание DOM-медиа. |
44
+ | `media.memory` | REG в memory, монтирование элементов в скрытый `#media`. |
45
+ | `media` | Высокоуровневый get/set. |
46
+ | `media.logs` | Логирование lifecycle media. |
47
+
48
+ ## Близкие плагины
49
+
50
+ ### plugins/core/
51
+
52
+ - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
53
+ - [memory.md](./memory.md) — `MEMORY`: `REG`, `GET`, `SET` (через `MEMORY_GET` / `MEMORY_SET`)
54
+ - [platforms.md](./platforms.md) — `PLATFORMS`: `CONST`, `PARAMS.CURRENT_PLATFORM` (лимит semaphore, mediaNoTimeout)
55
+ - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.HOST`, `DOM_IDS.MEDIA`
56
+
57
+ ### Остальные
58
+
59
+ — нет
@@ -0,0 +1,44 @@
1
+ # plugins/core/memory/
2
+
3
+ Пакет: `@vnejs/plugins.core.memory` · namespace: `MEMORY`
4
+
5
+ In-memory кэш с reference counting по namespace модуля; используется media, scenario и др.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `GET` | `vne:memory:get` | Получить значение по `module` + `key`; сбросить счётчик ссылок до `initCounter`. |
12
+ | `SET` | `vne:memory:set` | Сохранить значение; при первой записи вызвать `onAdd` зарегистрированного namespace. |
13
+ | `REG` | `vne:memory:reg` | Зарегистрировать namespace с `initCounter`, хуками `onAdd` / `onClear`. |
14
+ | `KEYS` | `vne:memory:keys` | Список ключей в namespace. |
15
+ | `CLEAR` | `vne:memory:clear` | Уменьшить счётчики, удалить записи с нулевым счётчиком, вызвать `onClear`, затем `CLEARED`. |
16
+ | `CLEARED` | `vne:memory:cleared` | In-memory кэш полностью очищен. |
17
+
18
+ ## Константы
19
+
20
+ Нет.
21
+
22
+ ## Параметры
23
+
24
+ Нет.
25
+
26
+ ## Настройки
27
+
28
+ Нет.
29
+
30
+ ## Модули
31
+
32
+ | Модуль | Зона ответственности |
33
+ |--------|----------------------|
34
+ | `memory` | Единый модуль: reg/get/set/keys/clear и reference counting. |
35
+
36
+ ## Близкие плагины
37
+
38
+ ### plugins/core/
39
+
40
+ — нет
41
+
42
+ ### Остальные
43
+
44
+ — нет
@@ -0,0 +1,48 @@
1
+ # plugins/core/platforms/
2
+
3
+ Пакет: `@vnejs/plugins.core.platforms` · namespace: `PLATFORMS`
4
+
5
+ Статическая регистрация платформенных констант и текущей платформы (без модулей и событий).
6
+
7
+ ## События
8
+
9
+ Нет.
10
+
11
+ ## Константы
12
+
13
+ Идентификаторы платформ (строки):
14
+
15
+ | Ключ | Значение |
16
+ |------|----------|
17
+ | `WEB` | `"web"` |
18
+ | `MOBILE` | `"mobile"` |
19
+ | `IOS` | `"ios"` |
20
+ | `ANDROID` | `"android"` |
21
+ | `ELECTRON` | `"electron"` |
22
+ | `MACOS` | `"macos"` |
23
+ | `LINUX` | `"linux"` |
24
+ | `WINDOWS` | `"windows"` |
25
+
26
+ ## Параметры
27
+
28
+ | Ключ | Тип | Смысл |
29
+ |------|-----|-------|
30
+ | `CURRENT_PLATFORM` | `Platform` (одно из значений `CONSTANTS`) | Текущая платформа; по умолчанию `WEB`. |
31
+
32
+ ## Настройки
33
+
34
+ Нет.
35
+
36
+ ## Модули
37
+
38
+ Нет.
39
+
40
+ ## Близкие плагины
41
+
42
+ ### plugins/core/
43
+
44
+ — нет
45
+
46
+ ### Остальные
47
+
48
+ — нет
@@ -0,0 +1,63 @@
1
+ # plugins/core/scenario/
2
+
3
+ Пакет: `@vnejs/plugins.core.scenario` · namespace: `SCENARIO`
4
+
5
+ Исполнение сценария `.vne`: метки, строки, exec handlers, продвижение `NEXT`.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `EXEC` | `vne:scenario:exec` | Выполнить строку сценария: dispatch по module/block с line, args и keywords. |
12
+ | `EXEC_DELAY` | `vne:scenario:exec_delay` | Отложить promise до завершения текущего exec (async-строки). |
13
+ | `NEXT` | `vne:scenario:next` | Шаг вперёд по сценарию: выполнить текущую строку или завершить текущую метку. |
14
+ | `LABEL_GET` | `vne:scenario:label_get` | Предзагрузка строк метки на глубину `deep` с приоритетом. |
15
+ | `LINE_LOAD` | `vne:scenario:line_load` | Условная предзагрузка одной строки (с учётом depth в memory). |
16
+ | `LINE_GET` | `vne:scenario:line_get` | Получить и подготовить одну строку сценария по label и index. |
17
+ | `LINE_LOAD_REG` | `vne:scenario:line_load_reg` | Зарегистрировать обработчик предзагрузки строк для module/block. |
18
+ | `LINE_EXEC_REG` | `vne:scenario:line_exec_reg` | Зарегистрировать обработчик выполнения строк для module/block. |
19
+ | `LINES_GET` | `vne:scenario:lines_get` | Получить массив строк метки (JSON с хоста, кэш в memory). |
20
+
21
+ ## Константы
22
+
23
+ - **`OTHER_MODULE`** — `"other"`: fallback-модуль для строк без префикса.
24
+ - **`LINE_KEYWORDS`** — ключевые слова строки сценария: `skip-if-possible`, `async`, `autonext`. Остальные keywords живут в доменных контрактах (`TEXT.extend`, `VARS.global`, `LAYER_ANIMATION.dangerous`, `QTE.qte-fallback`).
25
+ - **`LINE_PREFIXES.MODULE`** — `"$"`: префикс вызова модуля.
26
+ - **`LINE_PREFIXES.BLOCK`** — `"%"`: префикс блока сценария.
27
+
28
+ ## Параметры
29
+
30
+ | Ключ | Тип | Смысл |
31
+ |------|-----|-------|
32
+ | `INIT_LABEL_NAME` | `string` | Имя стартовой метки; по умолчанию `"init"`. |
33
+
34
+ ## Настройки
35
+
36
+ Нет.
37
+
38
+ ## Модули
39
+
40
+ | Модуль | Зона ответственности |
41
+ |--------|----------------------|
42
+ | `scenario` | Главный цикл `NEXT`, exec строк, sync state, старт на `SYSTEM.STARTED`. |
43
+ | `scenario.exec` | Dispatch `$module` / `%block`, registry handlers, `EXEC_DELAY`. |
44
+ | `scenario.label` | `LABEL_GET`, preload меток, init label на старте/clear. |
45
+ | `scenario.line` | `LINE_LOAD` / `LINE_GET`, registry preload handlers. |
46
+ | `scenario.lines` | Fetch `label.*.json` с `HOST`. |
47
+
48
+ ## Близкие плагины
49
+
50
+ ### plugins/core/
51
+
52
+ - [logs.md](./logs.md) — `LOGS`: `emitLog`
53
+ - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload строк и меток)
54
+ - [memory.md](./memory.md) — `MEMORY`: `REG`, `GET`, `SET` (кэш строк и меток)
55
+ - [platforms.md](./platforms.md) — `PLATFORMS`: `PARAMS.CURRENT_PLATFORM` (глубина preload метки)
56
+ - [stack.md](./stack.md) — `STACK`: `POP` (конец метки)
57
+ - [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (sync / сброс позиции сценария)
58
+ - [system.md](./system.md) — `SYSTEM`: `STARTED`; `CONST.SYSTEM.HOST` (fetch label JSON)
59
+ - [vendors.md](./vendors.md) — `VENDORS`: `HASH` (hash текущей строки)
60
+
61
+ ### Остальные
62
+
63
+ — нет
@@ -0,0 +1,43 @@
1
+ # plugins/core/settings/
2
+
3
+ Пакет: `@vnejs/plugins.core.settings` · namespace: `SETTINGS`
4
+
5
+ Глобальные настройки игры в `shared.settings` с персистентностью через storage.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `SET` | `vne:settings:set` | Установить значение настройки по `name`, сохранить в storage, emit `CHANGED`. Payload: `{ name?, value?, options? }`. |
12
+ | `INIT` | `vne:settings:init` | Установить default, если значения нет или оно не из `options`; делегирует в `SET`. |
13
+ | `CHANGED` | `vne:settings:change` | Значение настройки изменилось: `{ name: string, value: unknown }`. |
14
+
15
+ ## Константы
16
+
17
+ - **`LOGS_ACTIONS`** — метки: `set`, `init`, `changed`.
18
+
19
+ ## Параметры
20
+
21
+ Нет.
22
+
23
+ ## Настройки
24
+
25
+ Нет.
26
+
27
+ ## Модули
28
+
29
+ | Модуль | Зона ответственности |
30
+ |--------|----------------------|
31
+ | `settings` | Load из storage при init; `SET` / `INIT`; запись в `shared.settings`. |
32
+ | `settings.logs` | Логирование set/init/changed. |
33
+
34
+ ## Близкие плагины
35
+
36
+ ### plugins/core/
37
+
38
+ - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
39
+ - [storage.md](./storage.md) — `STORAGE`: `GET_ALL`, `SET` (персистентность настроек)
40
+
41
+ ### Остальные
42
+
43
+ — нет
@@ -0,0 +1,57 @@
1
+ # plugins/core/stack/
2
+
3
+ Пакет: `@vnejs/plugins.core.stack` · namespace: `STACK`
4
+
5
+ Стек вызовов меток сценария: jump, call, pop, аргументы call-frame.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `EMIT` | `vne:stack:emit` | Перейти на метку: сброс `curLine`, clone args, preload label, clear memory. Payload: `{ label?, args? }`. |
12
+ | `POP` | `vne:stack:pop` | Вернуться к предыдущей позиции в стеке или сбросить игру, если стек пуст. |
13
+ | `CLEAR` | `vne:stack:clear` | Сбросить глобальный state и продолжить сценарий. |
14
+ | `JUMP` | `vne:stack:jump` | Переход на метку без push в стек (делегирует в `EMIT`). |
15
+ | `CALL` | `vne:stack:call` | Push текущей позиции, затем `EMIT` новой метки. |
16
+ | `EXEC_ARG` | `vne:stack:exec_arg` | По токену строки вернуть значение аргумента из верхнего frame. Payload: `{ line? }`. |
17
+
18
+ ## Константы
19
+
20
+ - **`LOGS_ACTIONS`** — `emit`, `call`, `jump`, `pop`, `clear`.
21
+ - **`EXEC_ACTIONS`** — действия в строках `$stack`: `jump`, `call`, `pop`.
22
+
23
+ ## Параметры
24
+
25
+ Нет.
26
+
27
+ ## Настройки
28
+
29
+ Нет.
30
+
31
+ ## Модули
32
+
33
+ | Модуль | Зона ответственности |
34
+ |--------|----------------------|
35
+ | `stack` | State стека; обработка `EMIT`; sync на `STATE.SET` / `CLEAR`. |
36
+ | `stack.call` | Push frame + jump. |
37
+ | `stack.jump` | Jump без сохранения. |
38
+ | `stack.pop` | Pop frame. |
39
+ | `stack.clear` | Clear state + next. |
40
+ | `stack.args` | Резолв аргументов из строки сценария. |
41
+ | `stack.exec` | Регистрация `$stack` handlers в scenario (jump/call/pop + preload). |
42
+ | `stack.logs` | Логирование операций стека. |
43
+
44
+ ## Близкие плагины
45
+
46
+ ### plugins/core/
47
+
48
+ - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
49
+ - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload при jump/call)
50
+ - [memory.md](./memory.md) — `MEMORY`: `CLEAR` (при `EMIT`)
51
+ - [scenario.md](./scenario.md) — `SCENARIO`: `LABEL_GET`, `LINE_EXEC_REG`, `LINE_LOAD_REG`; `emitNext` → `NEXT`
52
+ - [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (sync стека; `CLEAR` из `stack.clear`)
53
+ - [vendors.md](./vendors.md) — `VENDORS`: `CLONE` (`emitClone` для args)
54
+
55
+ ### Остальные
56
+
57
+ — нет
@@ -0,0 +1,51 @@
1
+ # plugins/core/state/
2
+
3
+ Пакет: `@vnejs/plugins.core.state` · namespace: `STATE`
4
+
5
+ Сериализация и восстановление глобального state игры, миграция сохранений.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `GET` | `vne:state:get` | Снять snapshot `globalState` (clone, пустые slice модулей отфильтровываются). |
12
+ | `SET` | `vne:state:set` | Применить полный snapshot globalState — восстановление состояния всех модулей. |
13
+ | `LOAD` | `vne:state:load` | Загрузить сохранение: clone → предобработка → применение state → preload метки сценария. |
14
+ | `CLEAR` | `vne:state:clear` | Сбросить локальный state модулей к значениям по умолчанию. |
15
+ | `PRELOAD` | `vne:state:preload` | Предобработка state перед применением (нормализация, подготовка к миграции). |
16
+ | `MIGRATE` | `vne:state:migrate` | Привести сохранение к текущей версии: проверка version/hash строки, цепочка миграций. |
17
+ | `MIGRATE_REG` | `vne:state:migrate_reg` | Зарегистрировать функцию миграции для пары versionMajor / versionMinor. |
18
+
19
+ ## Константы
20
+
21
+ - **`LOGS_ACTIONS`** — `get`, `load`, `clear`, `migrate`.
22
+ - **`MIGRATE_STATUS`** — коды результата: `OK`, `LINE_NOT_FOUND`, `LABEL_NOT_FOUND`, `MAJOR_VERSION_MISMATCH`, `MINOR_VERSION_MISMATCH`.
23
+
24
+ ## Параметры
25
+
26
+ Нет.
27
+
28
+ ## Настройки
29
+
30
+ Нет.
31
+
32
+ ## Модули
33
+
34
+ | Модуль | Зона ответственности |
35
+ |--------|----------------------|
36
+ | `state` | `GET` / `LOAD` — serialize/hydrate globalState. |
37
+ | `state.migrate` | Версионная миграция сохранений по hash строк сценария. |
38
+ | `state.logs` | Логирование get/load/clear. |
39
+
40
+ ## Близкие плагины
41
+
42
+ ### plugins/core/
43
+
44
+ - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
45
+ - [scenario.md](./scenario.md) — `SCENARIO`: `LINES_GET`, `LABEL_GET` (миграция по hash строки)
46
+ - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.VERSION_MAJOR` / `VERSION_MINOR` (проверка версии save)
47
+ - [vendors.md](./vendors.md) — `VENDORS`: `HASH`, `CLONE` (`emitClone` state)
48
+
49
+ ### Остальные
50
+
51
+ — нет
@@ -0,0 +1,89 @@
1
+ # plugins/core/storage/
2
+
3
+ Пакет: `@vnejs/plugins.core.storage` · namespace: `STORAGE`
4
+
5
+ Персистентное key-value хранилище на IndexedDB (localforage) с namespace по модулю и группой.
6
+
7
+ ## Формат ключа
8
+
9
+ Физический ключ всегда трёхчастный: `{module}/{group}/{key}`.
10
+
11
+ - Если `group` не передан — подставляется `_` (default group).
12
+ - `key` может содержать `:` (например settings `vne:volume:common`).
13
+ - `module` может содержать `.` (например `vars.global`, `fastforward.visits`).
14
+
15
+ Примеры:
16
+
17
+ | Вызов | Физический ключ |
18
+ |-------|-----------------|
19
+ | `{ module: "settings", key: "vne:volume:common" }` | `settings/_/vne:volume:common` |
20
+ | `{ module: "save", group: "0", key: "3" }` | `save/0/3` |
21
+ | `{ module: "fastforward.visits", group: "intro", key: "hash" }` | `fastforward.visits/intro/hash` |
22
+
23
+ ## Диск (desktop / Steam)
24
+
25
+ | Group | Файл |
26
+ |-------|------|
27
+ | `_` или не задан | `{module}.json` |
28
+ | любая другая | `{module}/{group}.json` |
29
+
30
+ Примеры: `settings.json`, `save/0.json`, `save/autosave.json`, `fastforward.visits/intro.json`.
31
+
32
+ ## События
33
+
34
+ | Ключ | Строка | Смысл |
35
+ |------|--------|-------|
36
+ | `SET` | `vne:storage:set` | Записать ключ (`module`, опционально `group`, `key`); emit `CHANGED`. |
37
+ | `SET_ALL` | `vne:storage:set_all` | Merge/replace всех ключей (плоские физические ключи); возвращает, были ли изменения. |
38
+ | `GET` | `vne:storage:get` | Прочитать один ключ (`module`, опционально `group`, `key`). |
39
+ | `GET_ALL` | `vne:storage:get_all` | Ключи модуля; с `group` — только группа. |
40
+ | `RM` | `vne:storage:rm` | Удалить один ключ. |
41
+ | `RM_ALL` | `vne:storage:rm_all` | Удалить ключи модуля; с `group` — только группа. |
42
+ | `KEYS` | `vne:storage:keys` | Список всех физических ключей в store. |
43
+ | `INIT` | `vne:storage:init` | Инициализация IndexedDB driver, ожидание ready. |
44
+ | `CHANGED` | `vne:storage:changed` | В хранилище произошла запись, обновление или удаление. |
45
+ | `IMPORT` | `vne:storage:import` | Заменить всё содержимое store данными из JSON-файла и перезагрузить страницу. |
46
+ | `EXPORT` | `vne:storage:export` | Скачать всё хранилище как JSON. |
47
+ | `CLEAR` | `vne:storage:clear` | Полностью очистить store и перезагрузить страницу. |
48
+
49
+ ### `GET_ALL` и имена ключей в ответе
50
+
51
+ - `GET_ALL({ module, group })` — в ответе «голые» `key`.
52
+ - `GET_ALL({ module })` без group:
53
+ - для default-группы `_` — тоже «голые» `key` (префикс `_/` снимается);
54
+ - для остальных групп — `group/key` (чтобы не смешивать одинаковые key из разных групп).
55
+
56
+ ## Константы
57
+
58
+ Нет.
59
+
60
+ ## Параметры
61
+
62
+ | Ключ | Тип | Смысл |
63
+ |------|-----|-------|
64
+ | `GAMENAME` | `string` | Префикс имени IndexedDB store; по умолчанию `"vne-default"`. |
65
+
66
+ ## Настройки
67
+
68
+ Нет.
69
+
70
+ ## Модули
71
+
72
+ | Модуль | Зона ответственности |
73
+ |--------|----------------------|
74
+ | `storage` | Init localforage, `KEYS`, `CHANGED`, `INIT`. |
75
+ | `storage.get` | `GET` / `GET_ALL`. |
76
+ | `storage.set` | `SET` / `SET_ALL`. |
77
+ | `storage.rm` | `RM` / `RM_ALL`. |
78
+ | `storage.actions` | Import / export / clear с file picker и reload. |
79
+
80
+ ## Близкие плагины
81
+
82
+ ### plugins/core/
83
+
84
+ - [logs.md](./logs.md) — `LOGS`: `emitLog` (событие `CHANGED`)
85
+ - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.VERSION_MAJOR`; `FILE_LOAD`, `FILE_READ`, `RELOAD` (import/export/clear)
86
+
87
+ ### Остальные
88
+
89
+ — нет
@@ -0,0 +1,56 @@
1
+ # plugins/core/system/
2
+
3
+ Пакет: `@vnejs/plugins.core.system` · namespace: `SYSTEM`
4
+
5
+ Жизненный цикл приложения, DOM-якоря, файлы, resize, версия движка.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `STARTED` | `vne:system:started` | Движок инициализирован: все модули ready, media-манифесты загружены. |
12
+ | `RESIZE` | `vne:system:resize` | Изменились размеры окна приложения. |
13
+ | `RELOAD` | `vne:system:reload` | Перезагрузка страницы после фазы `CLOSE_BEFORE`. |
14
+ | `FULLSCREEN` | `vne:system:fullscreen` | Переключение полноэкранного режима документа. |
15
+ | `CLOSE` | `vne:system:close` | Закрытие окна приложения после фазы `CLOSE_BEFORE`. |
16
+ | `CLOSE_BEFORE` | `vne:system:close_before` | Фаза подготовки перед закрытием или перезагрузкой страницы. |
17
+ | `FILE_LOAD` | `vne:file:load` | Скачать объект как JSON-файл. Payload: `{ obj?, name? }`. |
18
+ | `FILE_READ` | `vne:file:read` | File picker → parse JSON → вернуть содержимое. |
19
+
20
+ ## Константы
21
+
22
+ | Ключ | Смысл |
23
+ |------|-------|
24
+ | `HOST` | Origin или `http://localhost:{port}` из query |
25
+ | `VERSION_MAJOR` | Major-версия формата state (число) |
26
+ | `VERSION_MINOR` | Minor-версия (число) |
27
+ | `DOM_IDS.APP` | `"app"` — корневой контейнер |
28
+ | `DOM_IDS.MEDIA` | `"media"` — скрытый контейнер медиа |
29
+ | `DOM_IDS.COMPONENTS` | `"components"` — контейнер UI |
30
+
31
+ ## Параметры
32
+
33
+ Нет.
34
+
35
+ ## Настройки
36
+
37
+ Нет.
38
+
39
+ ## Модули
40
+
41
+ | Модуль | Зона ответственности |
42
+ |--------|----------------------|
43
+ | `system` | Reload, close, fullscreen, `CLOSE_BEFORE`. |
44
+ | `system.resize` | Реагирует на изменение размеров окна; инициирует `RESIZE`. |
45
+ | `system.file` | `FILE_LOAD` / `FILE_READ`. |
46
+ | `system.version` | Default state `{ major, minor }` для миграции сохранений. |
47
+
48
+ ## Близкие плагины
49
+
50
+ ### plugins/core/
51
+
52
+ - [logs.md](./logs.md) — `LOGS`: `emitLog` (resize)
53
+
54
+ ### Остальные
55
+
56
+ — нет