@vnejs/docs 0.2.64 → 0.2.66

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 (261) hide show
  1. package/README.md +35 -35
  2. package/architecture/backends.md +18 -0
  3. package/architecture/build.md +37 -0
  4. package/architecture/bundles.md +20 -0
  5. package/architecture/cli.md +25 -0
  6. package/architecture/compatibility.md +22 -0
  7. package/architecture/configs.md +19 -0
  8. package/architecture/contracts.md +30 -0
  9. package/architecture/dependencies.md +55 -0
  10. package/architecture/editor.md +7 -0
  11. package/architecture/games.md +38 -0
  12. package/architecture/helpers.md +14 -0
  13. package/architecture/model.md +43 -0
  14. package/architecture/modules.md +87 -0
  15. package/architecture/packages.md +43 -0
  16. package/architecture/plugins.md +36 -0
  17. package/architecture/uis.md +23 -0
  18. package/changelog/0.2.18.md +7 -0
  19. package/changelog/0.2.19.md +14 -0
  20. package/changelog/0.2.20.md +10 -0
  21. package/changelog/0.2.21.md +5 -0
  22. package/changelog/0.2.22.md +11 -0
  23. package/changelog/0.2.23.md +4 -0
  24. package/changelog/0.2.25.md +6 -0
  25. package/changelog/0.2.26.md +12 -0
  26. package/changelog/0.2.29.md +10 -0
  27. package/changelog/0.2.31.md +5 -0
  28. package/changelog/0.2.32.md +3 -0
  29. package/changelog/0.2.33.md +5 -0
  30. package/changelog/0.2.34.md +8 -0
  31. package/changelog/0.2.35.md +33 -0
  32. package/changelog/0.2.36.md +10 -0
  33. package/changelog/0.2.38.md +19 -0
  34. package/changelog/0.2.39.md +16 -0
  35. package/changelog/0.2.40.md +9 -0
  36. package/changelog/0.2.42.md +3 -0
  37. package/changelog/0.2.43.md +10 -0
  38. package/changelog/0.2.46.md +3 -0
  39. package/changelog/0.2.47.md +25 -0
  40. package/changelog/0.2.49.md +3 -0
  41. package/changelog/0.2.50.md +6 -0
  42. package/changelog/0.2.51.md +6 -0
  43. package/changelog/0.2.52.md +5 -0
  44. package/changelog/0.2.53.md +12 -0
  45. package/changelog/0.2.55.md +19 -0
  46. package/changelog/0.2.56.md +11 -0
  47. package/changelog/0.2.57.md +7 -0
  48. package/changelog/0.2.58.md +8 -0
  49. package/changelog/0.2.59.md +6 -0
  50. package/changelog/0.2.60.md +5 -0
  51. package/changelog/0.2.61.md +11 -0
  52. package/changelog/0.2.62.md +8 -0
  53. package/changelog/0.2.63.md +4 -0
  54. package/changelog/0.2.64.md +4 -0
  55. package/changelog/0.2.65.md +3 -0
  56. package/changelog/0.2.66.md +5 -0
  57. package/changelog/README.md +43 -0
  58. package/manifest.json +66 -5
  59. package/package.json +6 -4
  60. package/plugins/ai/ai.md +29 -29
  61. package/plugins/ai/checkers.md +26 -26
  62. package/plugins/audio/ambient.md +20 -20
  63. package/plugins/audio/audio.md +40 -40
  64. package/plugins/audio/music.md +20 -20
  65. package/plugins/audio/sound.md +20 -20
  66. package/plugins/audio/voice.md +23 -23
  67. package/plugins/canvas/bg.md +44 -44
  68. package/plugins/canvas/bg.speak.md +34 -34
  69. package/plugins/canvas/fill.md +33 -33
  70. package/plugins/canvas/layer.md +35 -35
  71. package/plugins/canvas/sprite.md +46 -46
  72. package/plugins/canvas/sprite.speak.md +33 -33
  73. package/plugins/canvas/text.md +37 -37
  74. package/plugins/canvas/video.md +37 -37
  75. package/plugins/canvas.layers/bl.md +33 -33
  76. package/plugins/canvas.layers/fl.md +33 -33
  77. package/plugins/canvas.layers/ml.md +33 -33
  78. package/plugins/canvas.layers/ul.md +32 -32
  79. package/plugins/canvas.props/animation.md +25 -25
  80. package/plugins/canvas.props/clip.md +22 -22
  81. package/plugins/canvas.props/filters.md +20 -20
  82. package/plugins/canvas.props/mask.md +23 -23
  83. package/plugins/canvas.props/scale.md +20 -20
  84. package/plugins/common/grid.md +23 -23
  85. package/plugins/common/turn.md +18 -18
  86. package/plugins/controls/controls.md +31 -31
  87. package/plugins/controls/cursor.md +54 -54
  88. package/plugins/controls/gamepad.md +56 -56
  89. package/plugins/controls/keyboard.md +17 -17
  90. package/plugins/core/components.md +28 -28
  91. package/plugins/core/interact.md +26 -26
  92. package/plugins/core/logs.md +28 -28
  93. package/plugins/core/media.md +38 -38
  94. package/plugins/core/memory.md +28 -28
  95. package/plugins/core/platforms.md +19 -19
  96. package/plugins/core/scenario.md +48 -48
  97. package/plugins/core/settings.md +24 -24
  98. package/plugins/core/stack.md +39 -39
  99. package/plugins/core/state.md +30 -30
  100. package/plugins/core/storage.md +56 -56
  101. package/plugins/core/system.md +37 -37
  102. package/plugins/core/vendors.md +19 -19
  103. package/plugins/entities/entities.md +16 -16
  104. package/plugins/entities/wallet.md +27 -27
  105. package/plugins/font/montserrat.md +16 -16
  106. package/plugins/game/checkers.md +38 -38
  107. package/plugins/platform/android.md +17 -17
  108. package/plugins/platform/electron.md +21 -21
  109. package/plugins/platform/metric.md +23 -23
  110. package/plugins/rpg/damage.md +22 -22
  111. package/plugins/rpg/hit.md +24 -24
  112. package/plugins/rpg/skills.md +26 -26
  113. package/plugins/save/auto.md +26 -26
  114. package/plugins/save/continue.md +23 -23
  115. package/plugins/save/quick.md +24 -24
  116. package/plugins/save/save.md +37 -37
  117. package/plugins/scales/health.md +17 -17
  118. package/plugins/scales/mana.md +17 -17
  119. package/plugins/scales/scales.md +31 -31
  120. package/plugins/scenario/autoread.md +36 -36
  121. package/plugins/scenario/choose.md +74 -65
  122. package/plugins/scenario/fastforward.md +46 -46
  123. package/plugins/scenario/history.md +41 -41
  124. package/plugins/scenario/pause.md +27 -27
  125. package/plugins/scenario/point_and_click.md +51 -51
  126. package/plugins/scenario/qte.md +54 -54
  127. package/plugins/scenario/random.md +17 -17
  128. package/plugins/settings/filter.md +19 -19
  129. package/plugins/settings/potato.md +22 -22
  130. package/plugins/settings/ratio.md +19 -19
  131. package/plugins/settings/textsize.md +19 -19
  132. package/plugins/settings/volume.md +21 -21
  133. package/plugins/text/inject.md +22 -22
  134. package/plugins/text/locs.md +36 -36
  135. package/plugins/text/meet.md +19 -19
  136. package/plugins/text/smooth.md +33 -33
  137. package/plugins/text/text.md +76 -69
  138. package/plugins/text/wall.md +20 -20
  139. package/plugins/time/date.md +22 -22
  140. package/plugins/time/time.md +23 -23
  141. package/plugins/vars/counters.md +28 -28
  142. package/plugins/vars/flags.md +24 -24
  143. package/plugins/vars/vars.md +29 -29
  144. package/plugins/views/achievement.md +44 -44
  145. package/plugins/views/comment.md +31 -31
  146. package/plugins/views/controls.hints.md +34 -34
  147. package/plugins/views/cursor.md +19 -19
  148. package/plugins/views/fps.md +33 -33
  149. package/plugins/views/gamepad.debug.md +32 -32
  150. package/plugins/views/settings.md +39 -39
  151. package/plugins/views/video.md +37 -37
  152. package/plugins/views.scenario/choose.md +41 -41
  153. package/plugins/views.scenario/interface.controls.md +31 -31
  154. package/plugins/views.scenario/interface.fastforward.md +29 -29
  155. package/plugins/views.scenario/interface.md +74 -74
  156. package/plugins/views.scenario/point_and_click.md +39 -39
  157. package/plugins/views.scenario/qte.md +51 -51
  158. package/plugins/views.screens/checkers.md +35 -35
  159. package/plugins/views.screens/confirm.md +35 -35
  160. package/plugins/views.screens/credits.md +31 -31
  161. package/plugins/views.screens/disclaimer.md +42 -42
  162. package/plugins/views.screens/eula.md +37 -37
  163. package/plugins/views.screens/gallery.full.md +41 -41
  164. package/plugins/views.screens/gallery.md +75 -75
  165. package/plugins/views.screens/gamemenu.md +41 -41
  166. package/plugins/views.screens/history.md +39 -39
  167. package/plugins/views.screens/intro.md +32 -32
  168. package/plugins/views.screens/loading.md +30 -30
  169. package/plugins/views.screens/mainmenu.md +49 -49
  170. package/plugins/views.screens/mainmenu.socials.md +25 -25
  171. package/plugins/views.screens/save.md +66 -66
  172. package/plugins/views.screens/settings.defaults.md +37 -37
  173. package/plugins/views.screens/settings.md +40 -40
  174. package/scenario.catalog/README.md +13 -13
  175. package/scenario.catalog/index.md +35 -35
  176. package/scenario.catalog/stubs/achievement.md +4 -4
  177. package/scenario.catalog/stubs/audio.ambient.md +4 -4
  178. package/scenario.catalog/stubs/audio.music.md +4 -4
  179. package/scenario.catalog/stubs/audio.sound.md +4 -4
  180. package/scenario.catalog/stubs/audio.voice.md +4 -4
  181. package/scenario.catalog/stubs/bl.animation.md +5 -5
  182. package/scenario.catalog/stubs/bl.bg.md +5 -5
  183. package/scenario.catalog/stubs/bl.clip.md +5 -5
  184. package/scenario.catalog/stubs/bl.fill.md +5 -5
  185. package/scenario.catalog/stubs/bl.filter.md +5 -5
  186. package/scenario.catalog/stubs/bl.mask.md +5 -5
  187. package/scenario.catalog/stubs/bl.scale.md +5 -5
  188. package/scenario.catalog/stubs/bl.sprite.md +5 -5
  189. package/scenario.catalog/stubs/bl.text.md +5 -5
  190. package/scenario.catalog/stubs/bl.video.md +5 -5
  191. package/scenario.catalog/stubs/choose.block.md +7 -7
  192. package/scenario.catalog/stubs/choose.md +4 -4
  193. package/scenario.catalog/stubs/choose.option.md +7 -7
  194. package/scenario.catalog/stubs/comment.md +5 -5
  195. package/scenario.catalog/stubs/counter.md +5 -5
  196. package/scenario.catalog/stubs/credits.md +4 -4
  197. package/scenario.catalog/stubs/date.md +4 -4
  198. package/scenario.catalog/stubs/disclaimer.md +5 -5
  199. package/scenario.catalog/stubs/fl.animation.md +5 -5
  200. package/scenario.catalog/stubs/fl.bg.md +5 -5
  201. package/scenario.catalog/stubs/fl.clip.md +5 -5
  202. package/scenario.catalog/stubs/fl.fill.md +5 -5
  203. package/scenario.catalog/stubs/fl.filter.md +5 -5
  204. package/scenario.catalog/stubs/fl.mask.md +5 -5
  205. package/scenario.catalog/stubs/fl.scale.md +5 -5
  206. package/scenario.catalog/stubs/fl.sprite.md +5 -5
  207. package/scenario.catalog/stubs/fl.text.md +5 -5
  208. package/scenario.catalog/stubs/fl.video.md +5 -5
  209. package/scenario.catalog/stubs/flag.md +13 -13
  210. package/scenario.catalog/stubs/interface.md +4 -4
  211. package/scenario.catalog/stubs/intro.md +4 -4
  212. package/scenario.catalog/stubs/mainmenu.md +4 -4
  213. package/scenario.catalog/stubs/ml.animation.md +5 -5
  214. package/scenario.catalog/stubs/ml.bg.md +5 -5
  215. package/scenario.catalog/stubs/ml.clip.md +5 -5
  216. package/scenario.catalog/stubs/ml.fill.md +5 -5
  217. package/scenario.catalog/stubs/ml.filter.md +5 -5
  218. package/scenario.catalog/stubs/ml.mask.md +5 -5
  219. package/scenario.catalog/stubs/ml.scale.md +5 -5
  220. package/scenario.catalog/stubs/ml.sprite.md +5 -5
  221. package/scenario.catalog/stubs/ml.text.md +5 -5
  222. package/scenario.catalog/stubs/ml.video.md +5 -5
  223. package/scenario.catalog/stubs/other.md +6 -6
  224. package/scenario.catalog/stubs/pause.md +5 -5
  225. package/scenario.catalog/stubs/point-and-click.block.md +4 -4
  226. package/scenario.catalog/stubs/point-and-click.md +4 -4
  227. package/scenario.catalog/stubs/point-and-click.option.md +4 -4
  228. package/scenario.catalog/stubs/qte.md +4 -4
  229. package/scenario.catalog/stubs/random.md +4 -4
  230. package/scenario.catalog/stubs/random.option.md +4 -4
  231. package/scenario.catalog/stubs/save.auto.md +4 -4
  232. package/scenario.catalog/stubs/save.md +5 -5
  233. package/scenario.catalog/stubs/scenario.md +4 -4
  234. package/scenario.catalog/stubs/settings.defaults.md +4 -4
  235. package/scenario.catalog/stubs/stack.md +4 -4
  236. package/scenario.catalog/stubs/text.meet.md +4 -4
  237. package/scenario.catalog/stubs/text.wall.md +4 -4
  238. package/scenario.catalog/stubs/time.md +4 -4
  239. package/scenario.catalog/stubs/ul.animation.md +5 -5
  240. package/scenario.catalog/stubs/ul.bg.md +5 -5
  241. package/scenario.catalog/stubs/ul.clip.md +5 -5
  242. package/scenario.catalog/stubs/ul.fill.md +5 -5
  243. package/scenario.catalog/stubs/ul.filter.md +5 -5
  244. package/scenario.catalog/stubs/ul.mask.md +5 -5
  245. package/scenario.catalog/stubs/ul.scale.md +5 -5
  246. package/scenario.catalog/stubs/ul.sprite.md +5 -5
  247. package/scenario.catalog/stubs/ul.text.md +5 -5
  248. package/scenario.catalog/stubs/video.md +4 -4
  249. package/scenario.catalog/stubs/wallet.md +4 -4
  250. package/scenario.guide/README.md +38 -38
  251. package/scenario.guide/audio.md +11 -11
  252. package/scenario.guide/canvas.md +23 -23
  253. package/scenario.guide/choose.md +28 -28
  254. package/scenario.guide/dialogue.md +23 -23
  255. package/scenario.guide/flow.md +21 -21
  256. package/scenario.guide/point-and-click.md +12 -12
  257. package/scenario.guide/qte-random.md +20 -20
  258. package/scenario.guide/vars.md +19 -19
  259. package/scenario.guide/views.md +20 -20
  260. package/CHANGELOG.md +0 -383
  261. package/architecture.md +0 -566
@@ -1,73 +1,73 @@
1
1
  # plugins/core/scenario/
2
2
 
3
- Пакет: `@vnejs/plugins.core.scenario` · namespace: `SCENARIO`
3
+ Package: `@vnejs/plugins.core.scenario` · namespace: `SCENARIO`
4
4
 
5
- Исполнение сценария `.vne`: метки, строки, exec handlers, продвижение `NEXT`.
5
+ Runs a `.vne` scenario: labels, lines, exec handlers, `NEXT` advance.
6
6
 
7
- ## События
7
+ ## Events
8
8
 
9
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.core.scenario`.
9
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.core.scenario`.
10
10
 
11
- | Ключ | Строка | Смысл |
12
- | --------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------- |
13
- | `EXEC` | `vne:scenario:exec` | Выполнить строку сценария: dispatch по module/block с line, args и keywords. |
14
- | `EXEC_DELAY` | `vne:scenario:exec_delay` | Отложить promise до завершения текущего exec (async-строки). |
15
- | `NEXT` | `vne:scenario:next` | Шаг вперёд по сценарию: выполнить текущую строку или завершить текущую метку. |
16
- | `LABEL_GET` | `vne:scenario:label_get` | Предзагрузка строк метки на глубину `deep` с приоритетом. Упавшая строка не блокирует метку. |
17
- | `LINE_LOAD` | `vne:scenario:line_load` | Условная предзагрузка одной строки (с учётом depth в memory). |
18
- | `LINE_GET` | `vne:scenario:line_get` | Получить и подготовить одну строку сценария по label и index. Ошибка предзагрузки не оставляет промис висящим. |
19
- | `LINE_LOAD_REG` | `vne:scenario:line_load_reg` | Зарегистрировать обработчик предзагрузки строк для module/block. |
20
- | `LINE_EXEC_REG` | `vne:scenario:line_exec_reg` | Зарегистрировать обработчик выполнения строк для module/block. |
21
- | `LINES_GET` | `vne:scenario:lines_get` | Получить массив строк метки (JSON с хоста, кэш в memory). |
11
+ | Key | String | Meaning |
12
+ | --------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------- |
13
+ | `EXEC` | `vne:scenario:exec` | Run a scenario line: dispatch by module/block with line, args, and keywords. |
14
+ | `EXEC_DELAY` | `vne:scenario:exec_delay` | Defer a promise until the current exec finishes (async lines). |
15
+ | `NEXT` | `vne:scenario:next` | Step forward: run the current line or finish the current label. |
16
+ | `LABEL_GET` | `vne:scenario:label_get` | Preload label lines to depth `deep` with priority. One failed line does not block the label. |
17
+ | `LINE_LOAD` | `vne:scenario:line_load` | Conditional preload of one line (uses depth in memory). |
18
+ | `LINE_GET` | `vne:scenario:line_get` | Get and prepare one scenario line by label and index. A preload error does not leave a hanging promise. |
19
+ | `LINE_LOAD_REG` | `vne:scenario:line_load_reg` | Register a line preload handler for a module/block. |
20
+ | `LINE_EXEC_REG` | `vne:scenario:line_exec_reg` | Register a line exec handler for a module/block. |
21
+ | `LINES_GET` | `vne:scenario:lines_get` | Get an array of label lines (JSON from host, cache in memory). |
22
22
 
23
- ## Константы
23
+ ## Constants
24
24
 
25
- - **`OTHER_MODULE`** — `"other"`: fallback-модуль для строк без префикса.
26
- - **`LINE_KEYWORDS`** — ключевые слова строки сценария: `skip-if-possible`, `async`, `autonext`. Остальные keywords живут в доменных контрактах (`TEXT.extend`, `VARS.global`, `LAYER_ANIMATION.dangerous`, `QTE.qte-fallback`).
27
- - **`LINE_PREFIXES.MODULE`** — `"$"`: префикс вызова модуля.
28
- - **`LINE_PREFIXES.BLOCK`** — `"%"`: префикс блока сценария.
29
- - **`LOGS_ACTIONS`** — метки логов: `goto`, `goto_missing`, `exec start` / `exec end`, `reg`, `loaded start` / `loaded finish`, `load start` / `load end` / `load check` / `load finish`, `next emit start` / `next emit end`, `exec`.
25
+ - **`OTHER_MODULE`** — `"other"`: fallback module for lines without a prefix.
26
+ - **`LINE_KEYWORDS`** — scenario line keywords: `skip-if-possible`, `async`, `autonext`. Other keywords live in domain contracts (`TEXT.extend`, `VARS.global`, `LAYER_ANIMATION.dangerous`, `QTE.qte-fallback`).
27
+ - **`LINE_PREFIXES.MODULE`** — `"$"`: module call prefix.
28
+ - **`LINE_PREFIXES.BLOCK`** — `"%"`: scenario block prefix.
29
+ - **`LOGS_ACTIONS`** — log labels: `goto`, `goto_missing`, `exec start` / `exec end`, `reg`, `loaded start` / `loaded finish`, `load start` / `load end` / `load check` / `load finish`, `next emit start` / `next emit end`, `exec`.
30
30
 
31
- ## Параметры
31
+ ## Parameters
32
32
 
33
- | Ключ | Тип | Смысл |
34
- | ----------------- | -------- | ------------------------------------------- |
35
- | `INIT_LABEL_NAME` | `string` | Имя стартовой метки; по умолчанию `"init"`. |
33
+ | Key | Type | Meaning |
34
+ | ----------------- | -------- | ----------------------------------- |
35
+ | `INIT_LABEL_NAME` | `string` | Start label name; Default `"init"`. |
36
36
 
37
- ## Настройки
37
+ ## Settings
38
38
 
39
- Нет.
39
+ None.
40
40
 
41
41
  ## Shared
42
42
 
43
- | Поле | Тип | Смысл |
44
- | ------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
45
- | `shouldAutostartScenario` | `boolean` | В `start` модуль `scenario.autostart` эмитит `LABEL_GET` (init) и `NEXT`, только если не `false`. В `postinject` ставится `true` через `??=`; другие плагины могут выставить `false`. `STATE.CLEAR` по-прежнему грузит init label в `scenario.label` без этого гейта. |
43
+ | Field | Type | Meaning |
44
+ | ------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
45
+ | `shouldAutostartScenario` | `boolean` | In `start`, module `scenario.autostart` emits `LABEL_GET` (init) and `NEXT` only when not `false`. In `postinject` set to `true` via `??=`; other plugins may set `false`. `STATE.CLEAR` still loads init label in `scenario.label` without this gate. |
46
46
 
47
- ## Модули
47
+ ## Modules
48
48
 
49
- | Модуль | Зона ответственности |
50
- | -------------------- | ------------------------------------------------------------------------------------------------------------------------- |
51
- | `scenario` | Главный цикл `NEXT`, exec строк, sync state. Handler `NEXT` читает `module` из `EmitParams` (`Module.emit`). |
52
- | `scenario.autostart` | Дефолт `shared.shouldAutostartScenario` в `postinject`; в `start` — init label + `emit SCENARIO.NEXT` при включённом флаге. |
53
- | `scenario.exec` | Dispatch `$module` / `%block`, registry handlers, `EXEC_DELAY`. |
54
- | `scenario.label` | `LABEL_GET`, preload меток; `MEMORY.REG` в `setup`; init label на `STATE.CLEAR`. Одна упавшая строка не валит всю метку. |
55
- | `scenario.line` | `MEMORY.REG` в `setup`; `LINE_LOAD` / `LINE_GET`, registry preload handlers. Executor `LINE_GET` всегда resolve. |
56
- | `scenario.lines` | `MEMORY.REG` в `setup`; fetch `label/<path>.json` с `HOST` (например `label/prologue/1.json`). |
49
+ | Module | Role |
50
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
51
+ | `scenario` | Main `NEXT` loop, line exec, sync state. `NEXT` handler reads `module` from `EmitParams` (`Module.emit`). |
52
+ | `scenario.autostart` | Default `shared.shouldAutostartScenario` in `postinject`; in `start` — init label + `emit SCENARIO.NEXT` when flag is on. |
53
+ | `scenario.exec` | Dispatch `$module` / `%block`, handler registry, `EXEC_DELAY`. |
54
+ | `scenario.label` | `LABEL_GET`, label preload; `MEMORY.REG` in `setup`; init label on `STATE.CLEAR`. One failed line does not break the whole label. |
55
+ | `scenario.line` | `MEMORY.REG` in `setup`; `LINE_LOAD` / `LINE_GET`, preload handler registry. `LINE_GET` executor always resolves. |
56
+ | `scenario.lines` | `MEMORY.REG` in `setup`; fetch `label/<path>.json` from `HOST` (e.g. `label/prologue/1.json`). |
57
57
 
58
- ## Близкие плагины
58
+ ## Related plugins
59
59
 
60
60
  ### plugins/core/
61
61
 
62
62
  - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
63
- - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload строк и меток)
64
- - [memory.md](./memory.md) — `MEMORY`: `REG`, `GET`, `SET` (кэш строк и меток)
65
- - [platforms.md](./platforms.md) — `PLATFORMS`: `PARAMS.CURRENT_PLATFORM` (глубина preload метки)
66
- - [stack.md](./stack.md) — `STACK`: `POP` (конец метки)
67
- - [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (sync / сброс позиции сценария)
63
+ - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (line and label preload)
64
+ - [memory.md](./memory.md) — `MEMORY`: `REG`, `GET`, `SET` (line and label cache)
65
+ - [platforms.md](./platforms.md) — `PLATFORMS`: `PARAMS.CURRENT_PLATFORM` (label preload depth)
66
+ - [stack.md](./stack.md) — `STACK`: `POP` (end of label)
67
+ - [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (sync / reset scenario position)
68
68
  - [system.md](./system.md) — `SYSTEM`: `STARTED`; `CONST.SYSTEM.HOST` (fetch label JSON)
69
- - [vendors.md](./vendors.md) — `VENDORS`: `HASH` (hash текущей строки)
69
+ - [vendors.md](./vendors.md) — `VENDORS`: `HASH` (current line hash)
70
70
 
71
- ### Остальные
71
+ ### Other
72
72
 
73
- - [electron.md](../platform/electron.md) — `ELECTRON`: при reload выставляет `shared.shouldAutostartScenario = false`
73
+ - [electron.md](../platform/electron.md) — `ELECTRON`: on reload sets `shared.shouldAutostartScenario = false`
@@ -1,45 +1,45 @@
1
1
  # plugins/core/settings/
2
2
 
3
- Пакет: `@vnejs/plugins.core.settings` · namespace: `SETTINGS`
3
+ Package: `@vnejs/plugins.core.settings` · namespace: `SETTINGS`
4
4
 
5
- Глобальные настройки игры в `shared.settings` с персистентностью через storage.
5
+ Global game settings in `shared.settings` with persistence through storage.
6
6
 
7
- ## События
7
+ ## Events
8
8
 
9
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.core.settings`.
9
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.core.settings`.
10
10
 
11
- | Ключ | Строка | Смысл |
12
- | --------- | --------------------- | --------------------------------------------------------------------------------------------------------------------- |
13
- | `SET` | `vne:settings:set` | Установить значение настройки по `name`, сохранить в storage, emit `CHANGED`. Payload: `{ name?, value?, options? }`. |
14
- | `INIT` | `vne:settings:init` | Установить default, если значения нет или оно не из `options`; делегирует в `SET`. |
15
- | `CHANGED` | `vne:settings:change` | Значение настройки изменилось: `{ name: string, value: unknown }`. |
11
+ | Key | String | Meaning |
12
+ | --------- | --------------------- | ------------------------------------------------------------------------------------------------- |
13
+ | `SET` | `vne:settings:set` | Set a setting by `name`, save to storage, emit `CHANGED`. Payload: `{ name?, value?, options? }`. |
14
+ | `INIT` | `vne:settings:init` | Set default when value is missing or not in `options`; delegates to `SET`. |
15
+ | `CHANGED` | `vne:settings:change` | Setting value changed: `{ name: string, value: unknown }`. |
16
16
 
17
- ## Константы
17
+ ## Constants
18
18
 
19
- - **`LOGS_ACTIONS`** — метки: `set`, `init`, `changed`.
19
+ - **`LOGS_ACTIONS`** — labels: `set`, `init`, `changed`.
20
20
 
21
- ## Параметры
21
+ ## Parameters
22
22
 
23
- Нет.
23
+ None.
24
24
 
25
- ## Настройки
25
+ ## Settings
26
26
 
27
- Нет.
27
+ None.
28
28
 
29
- ## Модули
29
+ ## Modules
30
30
 
31
- | Модуль | Зона ответственности |
32
- | --------------- | ------------------------------------------------------------------------------------ |
33
- | `settings` | Load из storage при `setup` (`ensureReady`); `SET` / `INIT` тоже ждут `ensureReady`. |
34
- | `settings.logs` | Логирование set/init/changed. |
31
+ | Module | Role |
32
+ | --------------- | ------------------------------------------------------------------------------------- |
33
+ | `settings` | Load from storage in `setup` (`ensureReady`); `SET` / `INIT` also wait `ensureReady`. |
34
+ | `settings.logs` | Log set/init/changed. |
35
35
 
36
- ## Близкие плагины
36
+ ## Related plugins
37
37
 
38
38
  ### plugins/core/
39
39
 
40
40
  - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
41
- - [storage.md](./storage.md) — `STORAGE`: `GET_ALL`, `SET` (персистентность настроек)
41
+ - [storage.md](./storage.md) — `STORAGE`: `GET_ALL`, `SET` (settings persistence)
42
42
 
43
- ### Остальные
43
+ ### Other
44
44
 
45
- — нет
45
+ — None
@@ -1,62 +1,62 @@
1
1
  # plugins/core/stack/
2
2
 
3
- Пакет: `@vnejs/plugins.core.stack` · namespace: `STACK`
3
+ Package: `@vnejs/plugins.core.stack` · namespace: `STACK`
4
4
 
5
- Стек вызовов меток сценария: jump, call, pop, аргументы call-frame.
5
+ Scenario label call stack: jump, call, pop, call-frame args.
6
6
 
7
- ## События
7
+ ## Events
8
8
 
9
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.core.stack`.
9
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.core.stack`.
10
10
 
11
- | Ключ | Строка | Смысл |
12
- | ---------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
- | `EMIT` | `vne:stack:emit` | Перейти на метку: сброс `curLine`, clone args, preload label, **await** `MEMORY.CLEAR` (до возврата из `EMIT`). Payload: `{ label?, args? }`. Перед переходом — `PROHIBIT_REPLACE`; при запрете — `PROHIBITED`, без `LABEL_GET`. |
14
- | `POP` | `vne:stack:pop` | Вернуться к предыдущей позиции в стеке или сбросить игру, если стек пуст. |
15
- | `CLEAR` | `vne:stack:clear` | Сбросить глобальный state и продолжить сценарий. |
16
- | `JUMP` | `vne:stack:jump` | Переход на метку без push в стек (делегирует в `EMIT`). |
17
- | `CALL` | `vne:stack:call` | `PROHIBIT_REPLACE`, затем push текущей позиции и `EMIT`. При запрете — `PROHIBITED`, без push. |
18
- | `EXEC_ARG` | `vne:stack:exec_arg` | По токену строки вернуть значение аргумента из верхнего frame. Payload: `{ line? }`. |
19
- | `PROHIBIT_REPLACE` | `vne:stack:prohibit_replace` | Цепочка `ModuleReplace`: можно ли идти на `label`. Payload: `{ label?, isProhibited? }`. Старт `isProhibited: false`. Возврат — итоговое `isProhibited`. |
20
- | `PROHIBIT_REPLACE_REG` | `vne:stack:prohibit_replace_reg` | Зарегистрировать обработчик `PROHIBIT_REPLACE`. `{ handler, priority? }`. Не блокирующий хендлер: `return isProhibited`; запрет: `return isProhibited \|\| ownCheck`. |
21
- | `PROHIBITED` | `vne:stack:prohibited` | Переход запрещён. Payload: `{ label?, args?, event? }` — `event` это `JUMP` / `CALL` / `EMIT`, чтобы повторить переход. `$ stack jump/call` при запрете не делает `emit SCENARIO.NEXT`. |
11
+ | Key | String | Meaning |
12
+ | ---------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
+ | `EMIT` | `vne:stack:emit` | Go to a label: reset `curLine`, clone args, preload label, **await** `MEMORY.CLEAR` (before `EMIT` returns). Payload: `{ label?, args? }`. Before jump — `PROHIBIT_REPLACE`; when prohibited — `PROHIBITED`, no `LABEL_GET`. |
14
+ | `POP` | `vne:stack:pop` | Return to the previous stack position or reset the game when the stack is empty. |
15
+ | `CLEAR` | `vne:stack:clear` | Clear global state and continue the scenario. |
16
+ | `JUMP` | `vne:stack:jump` | Jump to a label without pushing the stack (delegates to `EMIT`). |
17
+ | `CALL` | `vne:stack:call` | `PROHIBIT_REPLACE`, then push current position and `EMIT`. When prohibited — `PROHIBITED`, no push. |
18
+ | `EXEC_ARG` | `vne:stack:exec_arg` | From a line token, return an argument value from the top frame. Payload: `{ line? }`. |
19
+ | `PROHIBIT_REPLACE` | `vne:stack:prohibit_replace` | `ModuleReplace` chain: may we go to `label`. Payload: `{ label?, isProhibited? }`. Start `isProhibited: false`. Returns final `isProhibited`. |
20
+ | `PROHIBIT_REPLACE_REG` | `vne:stack:prohibit_replace_reg` | Register a `PROHIBIT_REPLACE` handler. `{ handler, priority? }`. Non-blocking handler: `return isProhibited`; prohibit: `return isProhibited \|\| ownCheck`. |
21
+ | `PROHIBITED` | `vne:stack:prohibited` | Jump forbidden. Payload: `{ label?, args?, event? }` — `event` is `JUMP` / `CALL` / `EMIT` to retry the jump. On prohibit, `$ stack jump/call` does not `emit SCENARIO.NEXT`. |
22
22
 
23
- ## Константы
23
+ ## Constants
24
24
 
25
25
  - **`LOGS_ACTIONS`** — `emit`, `call`, `jump`, `pop`, `clear`, `prohibited`.
26
- - **`EXEC_ACTIONS`** — действия в строках `$stack`: `jump`, `call`, `pop`.
26
+ - **`EXEC_ACTIONS`** — actions in `$stack` lines: `jump`, `call`, `pop`.
27
27
 
28
- ## Параметры
28
+ ## Parameters
29
29
 
30
- Нет.
30
+ None.
31
31
 
32
- ## Настройки
32
+ ## Settings
33
33
 
34
- Нет.
34
+ None.
35
35
 
36
- ## Модули
36
+ ## Modules
37
37
 
38
- | Модуль | Зона ответственности |
39
- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
- | `stack` | State стека; обработка `EMIT` (`PROHIBIT_REPLACE` → переход или `PROHIBITED`); sync на `STATE.SET` / `CLEAR`. |
41
- | `stack.call` | `PROHIBIT_REPLACE`, затем push frame + `EMIT`. |
42
- | `stack.jump` | Jump без сохранения. |
43
- | `stack.pop` | Pop frame. |
44
- | `stack.clear` | Clear state + next. |
45
- | `stack.args` | Резолв аргументов из строки сценария. |
46
- | `stack.exec` | Регистрация `$stack` handlers в scenario (jump/call/pop + preload). На `LINE_LOAD` jump/call — `PROHIBIT_REPLACE` до `LABEL_GET`. `onLineExec`: `emit SCENARIO.NEXT` только если jump/call не вернули `false` (запрет); `pop` — как раньше. |
47
- | `stack.replace` | Реестр обработчиков `PROHIBIT_REPLACE_REG`; наследник `@vnejs/module.replace`; `REPLACE_KEY` — `isProhibited`. |
48
- | `stack.logs` | Логирование операций стека, в т.ч. `PROHIBITED`; в `init` регистрирует хендлер `PROHIBIT_REPLACE` (пропускает флаг). |
38
+ | Module | Role |
39
+ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
40
+ | `stack` | Stack state; handle `EMIT` (`PROHIBIT_REPLACE` → jump or `PROHIBITED`); sync on `STATE.SET` / `CLEAR`. |
41
+ | `stack.call` | `PROHIBIT_REPLACE`, then push frame + `EMIT`. |
42
+ | `stack.jump` | Jump without push on the stack. |
43
+ | `stack.pop` | Pop frame. |
44
+ | `stack.clear` | Clear state + next. |
45
+ | `stack.args` | Resolve arguments from a scenario line. |
46
+ | `stack.exec` | Register `$stack` handlers in scenario (jump/call/pop + preload). On `LINE_LOAD` jump/call — `PROHIBIT_REPLACE` before `LABEL_GET`. `onLineExec`: `emit SCENARIO.NEXT` only when jump/call did not return `false` (prohibit); `pop` — unchanged. |
47
+ | `stack.replace` | Registry for `PROHIBIT_REPLACE_REG` handlers; extends `@vnejs/module.replace`; `REPLACE_KEY` — `isProhibited`. |
48
+ | `stack.logs` | Log stack ops including `PROHIBITED`; in `init` registers `PROHIBIT_REPLACE` handler (passes flag through). |
49
49
 
50
- ## Близкие плагины
50
+ ## Related plugins
51
51
 
52
52
  ### plugins/core/
53
53
 
54
54
  - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
55
- - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload при jump/call)
56
- - [memory.md](./memory.md) — `MEMORY`: `CLEAR` (при `EMIT`)
55
+ - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload on jump/call)
56
+ - [memory.md](./memory.md) — `MEMORY`: `CLEAR` (on `EMIT`)
57
57
  - [scenario.md](./scenario.md) — `SCENARIO`: `LABEL_GET`, `LINE_EXEC_REG`, `LINE_LOAD_REG`; `emit SCENARIO.NEXT`
58
- - [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (sync стека; `CLEAR` из `stack.clear`)
58
+ - [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (stack sync; `CLEAR` from `stack.clear`)
59
59
 
60
- ### Остальные
60
+ ### Other
61
61
 
62
- — нет
62
+ — None
@@ -1,52 +1,52 @@
1
1
  # plugins/core/state/
2
2
 
3
- Пакет: `@vnejs/plugins.core.state` · namespace: `STATE`
3
+ Package: `@vnejs/plugins.core.state` · namespace: `STATE`
4
4
 
5
- Сериализация и восстановление глобального state игры, миграция сохранений.
5
+ Serialize and restore global game state, migrate saves.
6
6
 
7
- ## События
7
+ ## Events
8
8
 
9
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.core.state`.
9
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.core.state`.
10
10
 
11
- | Ключ | Строка | Смысл |
12
- | ------------- | ----------------------- | ---------------------------------------------------------------------------------------- |
13
- | `GET` | `vne:state:get` | Снять snapshot `globalState` (clone, пустые slice модулей отфильтровываются). |
14
- | `SET` | `vne:state:set` | Применить полный snapshot globalState — восстановление состояния всех модулей. |
15
- | `LOAD` | `vne:state:load` | Загрузить сохранение: clone → предобработка → применение state → preload метки сценария. |
16
- | `CLEAR` | `vne:state:clear` | Сбросить локальный state модулей к значениям по умолчанию. |
17
- | `PRELOAD` | `vne:state:preload` | Предобработка state перед применением (нормализация, подготовка к миграции). |
18
- | `MIGRATE` | `vne:state:migrate` | Привести сохранение к текущей версии: проверка version/hash строки, цепочка миграций. |
19
- | `MIGRATE_REG` | `vne:state:migrate_reg` | Зарегистрировать функцию миграции для пары versionMajor / versionMinor. |
11
+ | Key | String | Meaning |
12
+ | ------------- | ----------------------- | ---------------------------------------------------------------------------- |
13
+ | `GET` | `vne:state:get` | Snapshot `globalState` (clone; empty module slices filtered out). |
14
+ | `SET` | `vne:state:set` | Apply full `globalState` snapshot — restore all module state. |
15
+ | `LOAD` | `vne:state:load` | Load a save: clone → preprocess → apply state → preload scenario label. |
16
+ | `CLEAR` | `vne:state:clear` | Reset module local state to defaults. |
17
+ | `PRELOAD` | `vne:state:preload` | Preprocess state before apply (normalize, prep for migration). |
18
+ | `MIGRATE` | `vne:state:migrate` | Bring save to current version: check version/line hash, run migration chain. |
19
+ | `MIGRATE_REG` | `vne:state:migrate_reg` | Register a migration function for a versionMajor / versionMinor pair. |
20
20
 
21
- ## Константы
21
+ ## Constants
22
22
 
23
23
  - **`LOGS_ACTIONS`** — `get`, `load`, `clear`, `migrate`.
24
- - **`MIGRATE_STATUS`** — коды результата: `OK`, `LINE_NOT_FOUND`, `LABEL_NOT_FOUND`, `MAJOR_VERSION_MISMATCH`, `MINOR_VERSION_MISMATCH`.
24
+ - **`MIGRATE_STATUS`** — result codes: `OK`, `LINE_NOT_FOUND`, `LABEL_NOT_FOUND`, `MAJOR_VERSION_MISMATCH`, `MINOR_VERSION_MISMATCH`.
25
25
 
26
- ## Параметры
26
+ ## Parameters
27
27
 
28
- Нет.
28
+ None.
29
29
 
30
- ## Настройки
30
+ ## Settings
31
31
 
32
- Нет.
32
+ None.
33
33
 
34
- ## Модули
34
+ ## Modules
35
35
 
36
- | Модуль | Зона ответственности |
37
- | --------------- | ------------------------------------------------------ |
38
- | `state` | `GET` / `LOAD` — serialize/hydrate globalState. |
39
- | `state.migrate` | Версионная миграция сохранений по hash строк сценария. |
40
- | `state.logs` | Логирование get/load/clear. |
36
+ | Module | Role |
37
+ | --------------- | ----------------------------------------------- |
38
+ | `state` | `GET` / `LOAD` — serialize/hydrate globalState. |
39
+ | `state.migrate` | Versioned save migration by scenario line hash. |
40
+ | `state.logs` | Log get/load/clear. |
41
41
 
42
- ## Близкие плагины
42
+ ## Related plugins
43
43
 
44
44
  ### plugins/core/
45
45
 
46
46
  - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
47
- - [scenario.md](./scenario.md) — `SCENARIO`: `LINES_GET`, `LABEL_GET` (миграция по hash строки)
48
- - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.VERSION_MAJOR` / `VERSION_MINOR` (проверка версии save)
47
+ - [scenario.md](./scenario.md) — `SCENARIO`: `LINES_GET`, `LABEL_GET` (migration by line hash)
48
+ - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.VERSION_MAJOR` / `VERSION_MINOR` (save version check)
49
49
 
50
- ### Остальные
50
+ ### Other
51
51
 
52
- — нет
52
+ — None
@@ -1,91 +1,91 @@
1
1
  # plugins/core/storage/
2
2
 
3
- Пакет: `@vnejs/plugins.core.storage` · namespace: `STORAGE`
3
+ Package: `@vnejs/plugins.core.storage` · namespace: `STORAGE`
4
4
 
5
- Персистентное key-value хранилище на IndexedDB (localforage) с namespace по модулю и группой.
5
+ Persistent key-value store on IndexedDB (localforage) with per-module namespace and group.
6
6
 
7
- ## Формат ключа
7
+ ## Key format
8
8
 
9
- Физический ключ всегда трёхчастный: `{module}/{group}/{key}`.
9
+ The physical key is always three parts: `{module}/{group}/{key}`.
10
10
 
11
- - Если `group` не передан — подставляется `_` (default group).
12
- - `key` может содержать `:` (например settings `vne:volume:common`).
13
- - `module` может содержать `.` (например `vars.global`, `fastforward.storage`).
11
+ - When `group` is omitted — `_` is used (default group).
12
+ - `key` may contain `:` (for example settings `vne:volume:common`).
13
+ - `module` may contain `.` (for example `vars.global`, `fastforward.storage`).
14
14
 
15
- Примеры:
15
+ Examples:
16
16
 
17
- | Вызов | Физический ключ |
17
+ | Call | Physical key |
18
18
  | ---------------------------------------------------------------- | -------------------------------- |
19
19
  | `{ module: "settings", key: "vne:volume:common" }` | `settings/_/vne:volume:common` |
20
20
  | `{ module: "save", group: "0", key: "3" }` | `save/0/3` |
21
21
  | `{ module: "fastforward.storage", group: "intro", key: "hash" }` | `fastforward.storage/intro/hash` |
22
22
 
23
- ## Диск (desktop / Steam)
23
+ ## Disk (desktop / Steam)
24
24
 
25
- | Group | Файл |
26
- | ---------------- | ----------------------- |
27
- | `_` или не задан | `{module}.json` |
28
- | любая другая | `{module}/{group}.json` |
25
+ | Group | File |
26
+ | -------------- | ----------------------- |
27
+ | `_` or omitted | `{module}.json` |
28
+ | any other | `{module}/{group}.json` |
29
29
 
30
- Примеры: `settings.json`, `save/0.json`, `save/autosave.json`, `fastforward.storage/intro.json`.
30
+ Examples: `settings.json`, `save/0.json`, `save/autosave.json`, `fastforward.storage/intro.json`.
31
31
 
32
- ## События
32
+ ## Events
33
33
 
34
- Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.core.storage`.
34
+ Handler payloads and results are typed through module augmentation of the contract (`VneEventPayloadMap` / `VneEventResultMap`). The types live in `@vnejs/contracts.core.storage`.
35
35
 
36
- | Ключ | Строка | Смысл |
37
- | --------- | --------------------- | ------------------------------------------------------------------------------------ |
38
- | `SET` | `vne:storage:set` | Записать ключ (`module`, опционально `group`, `key`); emit `CHANGED`. |
39
- | `SET_ALL` | `vne:storage:set_all` | Merge/replace всех ключей (плоские физические ключи); возвращает, были ли изменения. |
40
- | `GET` | `vne:storage:get` | Прочитать один ключ (`module`, опционально `group`, `key`). |
41
- | `GET_ALL` | `vne:storage:get_all` | Ключи модуля; с `group` — только группа. |
42
- | `RM` | `vne:storage:rm` | Удалить один ключ. |
43
- | `RM_ALL` | `vne:storage:rm_all` | Удалить ключи модуля; с `group` — только группа. |
44
- | `KEYS` | `vne:storage:keys` | Список всех физических ключей в store. |
45
- | `INIT` | `vne:storage:init` | Инициализация IndexedDB driver, ожидание ready (`ensureReady`, не `isReady`). |
46
- | `CHANGED` | `vne:storage:changed` | В хранилище произошла запись, обновление или удаление. |
47
- | `IMPORT` | `vne:storage:import` | Заменить всё содержимое store данными из JSON-файла и перезагрузить страницу. |
48
- | `EXPORT` | `vne:storage:export` | Скачать всё хранилище как JSON. |
49
- | `CLEAR` | `vne:storage:clear` | Полностью очистить store и перезагрузить страницу. |
36
+ | Key | String | Meaning |
37
+ | --------- | --------------------- | ------------------------------------------------------------------------------ |
38
+ | `SET` | `vne:storage:set` | Write a key (`module`, optional `group`, `key`); emit `CHANGED`. |
39
+ | `SET_ALL` | `vne:storage:set_all` | Merge/replace all keys (flat physical keys); returns whether anything changed. |
40
+ | `GET` | `vne:storage:get` | Read one key (`module`, optional `group`, `key`). |
41
+ | `GET_ALL` | `vne:storage:get_all` | Keys for a module; with `group` — that group only. |
42
+ | `RM` | `vne:storage:rm` | Remove one key. |
43
+ | `RM_ALL` | `vne:storage:rm_all` | Remove module keys; with `group` — that group only. |
44
+ | `KEYS` | `vne:storage:keys` | List all physical keys in the store. |
45
+ | `INIT` | `vne:storage:init` | Initialize IndexedDB driver, wait for ready (`ensureReady`, not `isReady`). |
46
+ | `CHANGED` | `vne:storage:changed` | A write, update, or delete happened in the store. |
47
+ | `IMPORT` | `vne:storage:import` | Replace entire store contents from a JSON file and reload the page. |
48
+ | `EXPORT` | `vne:storage:export` | Download the whole store as JSON. |
49
+ | `CLEAR` | `vne:storage:clear` | Clear the store completely and reload the page. |
50
50
 
51
- ### `GET_ALL` и имена ключей в ответе
51
+ ### `GET_ALL` and key names in the response
52
52
 
53
- - `GET_ALL({ module, group })` — в ответе «голые» `key`.
54
- - `GET_ALL({ module })` без group:
55
- - для default-группы `_` — тоже «голые» `key` (префикс `_/` снимается);
56
- - для остальных групп — `group/key` (чтобы не смешивать одинаковые key из разных групп).
53
+ - `GET_ALL({ module, group })` — response uses bare `key` values.
54
+ - `GET_ALL({ module })` without group:
55
+ - for default group `_` — bare `key` too (`_/` prefix stripped);
56
+ - for other groups — `group/key` (so identical keys in different groups do not collide).
57
57
 
58
- ## Константы
58
+ ## Constants
59
59
 
60
- - **`LOGS_ACTIONS.CHANGED`** — `"changed"`: метка лога при `CHANGED`.
60
+ - **`LOGS_ACTIONS.CHANGED`** — `"changed"`: log label on `CHANGED`.
61
61
 
62
- ## Параметры
62
+ ## Parameters
63
63
 
64
- | Ключ | Тип | Смысл |
65
- | ---------- | -------- | ------------------------------------------------------------ |
66
- | `GAMENAME` | `string` | Префикс имени IndexedDB store; по умолчанию `"vne-default"`. |
64
+ | Key | Type | Meaning |
65
+ | ---------- | -------- | ----------------------------------------------------- |
66
+ | `GAMENAME` | `string` | IndexedDB store name prefix; Default `"vne-default"`. |
67
67
 
68
- ## Настройки
68
+ ## Settings
69
69
 
70
- Нет.
70
+ None.
71
71
 
72
- ## Модули
72
+ ## Modules
73
73
 
74
- | Модуль | Зона ответственности |
75
- | ----------------- | ----------------------------------------------------------------- |
76
- | `storage` | localforage в `setup` / `ensureReady`; `KEYS`, `CHANGED`, `INIT`. |
77
- | `storage.get` | `GET` / `GET_ALL`. |
78
- | `storage.set` | `SET` / `SET_ALL`. |
79
- | `storage.rm` | `RM` / `RM_ALL`. |
80
- | `storage.actions` | Import / export / clear с file picker и reload. |
74
+ | Module | Role |
75
+ | ----------------- | ------------------------------------------------------------------ |
76
+ | `storage` | localforage in `setup` / `ensureReady`; `KEYS`, `CHANGED`, `INIT`. |
77
+ | `storage.get` | `GET` / `GET_ALL`. |
78
+ | `storage.set` | `SET` / `SET_ALL`. |
79
+ | `storage.rm` | `RM` / `RM_ALL`. |
80
+ | `storage.actions` | Import / export / clear with file picker and reload. |
81
81
 
82
- ## Близкие плагины
82
+ ## Related plugins
83
83
 
84
84
  ### plugins/core/
85
85
 
86
- - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …) (событие `CHANGED`)
86
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …) (`CHANGED` event)
87
87
  - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.VERSION_MAJOR`; `FILE_LOAD`, `FILE_READ`, `RELOAD` (import/export/clear)
88
88
 
89
- ### Остальные
89
+ ### Other
90
90
 
91
- — нет
91
+ — None