@vnejs/docs 0.2.50 → 0.2.51
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.
- package/CHANGELOG.md +7 -0
- package/architecture.md +1 -1
- package/package.json +1 -1
- package/plugins/core/scenario.md +8 -8
- package/plugins/core/stack.md +3 -3
- package/plugins/entities/wallet.md +1 -1
- package/plugins/game/checkers.md +3 -3
- package/plugins/save/save.md +1 -1
- package/plugins/scenario/choose.md +4 -4
- package/plugins/scenario/pause.md +2 -2
- package/plugins/scenario/point_and_click.md +4 -4
- package/plugins/scenario/qte.md +5 -5
- package/plugins/scenario/random.md +1 -1
- package/plugins/text/meet.md +1 -1
- package/plugins/text/text.md +2 -2
- package/plugins/text/wall.md +1 -1
- package/plugins/time/date.md +1 -1
- package/plugins/time/time.md +1 -1
- package/plugins/vars/counters.md +1 -1
- package/plugins/vars/flags.md +1 -1
- package/plugins/views/achievement.md +1 -1
- package/plugins/views/comment.md +1 -1
- package/plugins/views/video.md +1 -1
- package/plugins/views.scenario/interface.md +1 -1
- package/plugins/views.screens/credits.md +2 -2
- package/plugins/views.screens/disclaimer.md +2 -2
- package/plugins/views.screens/intro.md +1 -1
- package/plugins/views.screens/save.md +1 -1
- package/plugins/views.screens/settings.defaults.md +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
|
|
4
4
|
|
|
5
|
+
## 0.2.51
|
|
6
|
+
|
|
7
|
+
- `observer` / `module` — `Observer.emit(event, payload, params)` вместо rest-args; `Module.emit(event, payload?)` сам собирает `params = { module: this.name }`. API: `EmitParams`, `EmitPayload`.
|
|
8
|
+
- `core/scenario` — `NEXT` payload `void`; имя вызывающего модуля в `EmitParams` (через `Module.emit`). API: `ScenarioNextPayload` → `void`.
|
|
9
|
+
- `module.core` — снят `emitNext`; вместо него `emit(EVENTS.SCENARIO.NEXT)`. API: снято `ModuleCore.emitNext`.
|
|
10
|
+
- `text/text` — на `EMIT_NEXT` сценарий двигает `text.emit.next` через `onTextEmitNext` → `EVENTS.SCENARIO.NEXT`.
|
|
11
|
+
|
|
5
12
|
## 0.2.50
|
|
6
13
|
|
|
7
14
|
- `observer` — `SubscriberOptions.priority` (default `0`); группы хендлеров собираются в `subscribe`, `emit` обходит их по возрастанию priority (внутри группы — параллельно); ответы со всех групп. API: `SubscriberOptions.priority`, `SubscriberGroup`.
|
package/architecture.md
CHANGED
|
@@ -169,7 +169,7 @@ flowchart TD
|
|
|
169
169
|
| Пакет | Назначение |
|
|
170
170
|
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
171
171
|
| **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle |
|
|
172
|
-
| **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам**; `emitLog`, `
|
|
172
|
+
| **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам**; `emitLog`, `emitClone`, … |
|
|
173
173
|
| **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers |
|
|
174
174
|
| **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`) |
|
|
175
175
|
| **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls |
|
package/package.json
CHANGED
package/plugins/core/scenario.md
CHANGED
|
@@ -45,14 +45,14 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
45
45
|
|
|
46
46
|
## Модули
|
|
47
47
|
|
|
48
|
-
| Модуль | Зона ответственности
|
|
49
|
-
| -------------------- |
|
|
50
|
-
| `scenario` | Главный цикл `NEXT`, exec строк, sync state.
|
|
51
|
-
| `scenario.autostart` | Дефолт `shared.shouldAutostartScenario` в `postinject`; в `start` — init label + `
|
|
52
|
-
| `scenario.exec` | Dispatch `$module` / `%block`, registry handlers, `EXEC_DELAY`.
|
|
53
|
-
| `scenario.label` | `LABEL_GET`, preload меток; `MEMORY.REG` в `setup`; init label на `STATE.CLEAR`. Одна упавшая строка не валит всю метку.
|
|
54
|
-
| `scenario.line` | `MEMORY.REG` в `setup`; `LINE_LOAD` / `LINE_GET`, registry preload handlers. Executor `LINE_GET` всегда resolve.
|
|
55
|
-
| `scenario.lines` | `MEMORY.REG` в `setup`; fetch `label/<path>.json` с `HOST` (например `label/prologue/1.json`).
|
|
48
|
+
| Модуль | Зона ответственности |
|
|
49
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
50
|
+
| `scenario` | Главный цикл `NEXT`, exec строк, sync state. Handler `NEXT` читает `module` из `EmitParams` (`Module.emit`). |
|
|
51
|
+
| `scenario.autostart` | Дефолт `shared.shouldAutostartScenario` в `postinject`; в `start` — init label + `emit SCENARIO.NEXT` при включённом флаге. |
|
|
52
|
+
| `scenario.exec` | Dispatch `$module` / `%block`, registry handlers, `EXEC_DELAY`. |
|
|
53
|
+
| `scenario.label` | `LABEL_GET`, preload меток; `MEMORY.REG` в `setup`; init label на `STATE.CLEAR`. Одна упавшая строка не валит всю метку. |
|
|
54
|
+
| `scenario.line` | `MEMORY.REG` в `setup`; `LINE_LOAD` / `LINE_GET`, registry preload handlers. Executor `LINE_GET` всегда resolve. |
|
|
55
|
+
| `scenario.lines` | `MEMORY.REG` в `setup`; fetch `label/<path>.json` с `HOST` (например `label/prologue/1.json`). |
|
|
56
56
|
|
|
57
57
|
## Близкие плагины
|
|
58
58
|
|
package/plugins/core/stack.md
CHANGED
|
@@ -18,7 +18,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
18
18
|
| `EXEC_ARG` | `vne:stack:exec_arg` | По токену строки вернуть значение аргумента из верхнего frame. Payload: `{ line? }`. |
|
|
19
19
|
| `PROHIBIT_REPLACE` | `vne:stack:prohibit_replace` | Цепочка `ModuleReplace`: можно ли идти на `label`. Payload: `{ label?, isProhibited? }`. Старт `isProhibited: false`. Возврат — итоговое `isProhibited`. |
|
|
20
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` при запрете не делает `
|
|
21
|
+
| `PROHIBITED` | `vne:stack:prohibited` | Переход запрещён. Payload: `{ label?, args?, event? }` — `event` это `JUMP` / `CALL` / `EMIT`, чтобы повторить переход. `$ stack jump/call` при запрете не делает `emit SCENARIO.NEXT`. |
|
|
22
22
|
|
|
23
23
|
## Константы
|
|
24
24
|
|
|
@@ -43,7 +43,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
43
43
|
| `stack.pop` | Pop frame. |
|
|
44
44
|
| `stack.clear` | Clear state + next. |
|
|
45
45
|
| `stack.args` | Резолв аргументов из строки сценария. |
|
|
46
|
-
| `stack.exec` | Регистрация `$stack` handlers в scenario (jump/call/pop + preload). На `LINE_LOAD` jump/call — `PROHIBIT_REPLACE` до `LABEL_GET`. `onLineExec`: `
|
|
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
47
|
| `stack.replace` | Реестр обработчиков `PROHIBIT_REPLACE_REG`; наследник `@vnejs/module.replace`; `REPLACE_KEY` — `isProhibited`. |
|
|
48
48
|
| `stack.logs` | Логирование операций стека, в т.ч. `PROHIBITED`; в `init` регистрирует хендлер `PROHIBIT_REPLACE` (пропускает флаг). |
|
|
49
49
|
|
|
@@ -54,7 +54,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
54
54
|
- [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
55
55
|
- [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload при jump/call)
|
|
56
56
|
- [memory.md](./memory.md) — `MEMORY`: `CLEAR` (при `EMIT`)
|
|
57
|
-
- [scenario.md](./scenario.md) — `SCENARIO`: `LABEL_GET`, `LINE_EXEC_REG`, `LINE_LOAD_REG`; `
|
|
57
|
+
- [scenario.md](./scenario.md) — `SCENARIO`: `LABEL_GET`, `LINE_EXEC_REG`, `LINE_LOAD_REG`; `emit SCENARIO.NEXT`
|
|
58
58
|
- [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (sync стека; `CLEAR` из `stack.clear`)
|
|
59
59
|
- [vendors.md](./vendors.md) — `VENDORS`: `CLONE` (`emitClone` для args)
|
|
60
60
|
|
|
@@ -41,7 +41,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
41
41
|
|
|
42
42
|
### plugins/core/
|
|
43
43
|
|
|
44
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
44
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
45
45
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
46
46
|
|
|
47
47
|
### Остальные
|
package/plugins/game/checkers.md
CHANGED
|
@@ -16,7 +16,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
16
16
|
| `SET` | `vne:checkers:set` | `{ cells, owner }` → `GRID.SET` + `TURNS.SET` (id / rows / columns из констант). |
|
|
17
17
|
| `UNSET` | `vne:checkers:unset` | `GRID.UNSET` + `TURNS.UNSET` по `GRID_ID` / `TURN_ID`. |
|
|
18
18
|
| `STATE_UPDATE` | `vne:checkers:state_update` | Патч game-стейта (без board). |
|
|
19
|
-
| `FINISH` | `vne:checkers:finish` | Конец партии: `{ winner }` → delay → `sources.clear()` + `
|
|
19
|
+
| `FINISH` | `vne:checkers:finish` | Конец партии: `{ winner }` → delay → `sources.clear()` + `emit SCENARIO.NEXT`. |
|
|
20
20
|
| `MOVES_GET` | `vne:checkers:moves_get` | `emitOne`: `{ board, turn }` → `{ moves, hanging, safe }`. |
|
|
21
21
|
| `MOVE_PLAY` | `vne:checkers:move_play` | `emitOne`: `{ move, controllerType? }` → `boolean`; успех → `MOVE_PLAYED` или при победе `FINISH`. |
|
|
22
22
|
| `MOVE_PLAYED` | `vne:checkers:move_played` | После хода (из `MOVE_PLAY`); цикл AI — в `CHECKERS_AI`. |
|
|
@@ -31,7 +31,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
31
31
|
| `CONST.CHECKERS.TURN_ID` | `"checkers"` — id в `TURNS` |
|
|
32
32
|
| `CONST.CHECKERS.GRID_ID` | `"checkers"` — id в `GRID` |
|
|
33
33
|
| `shared.checkersInteractDisableSources` | `SourcesSet` — блок интерактива на ход AI |
|
|
34
|
-
| `PARAMS.CHECKERS.FINISH_DELAY` | пауза перед `
|
|
34
|
+
| `PARAMS.CHECKERS.FINISH_DELAY` | пауза перед `emit SCENARIO.NEXT` на `FINISH` (мс, `300`) |
|
|
35
35
|
| `PARAMS.CHECKERS.ROWS` / `COLUMNS` | `8` — размер для `GRID.SET` (внутри `SET`) |
|
|
36
36
|
| `PARAMS.CHECKERS.PRESETS` | пресеты доски: `COMMON`, `FLIPPED`, `RANDOM` (RANDOM каждый `SHOW` заново) |
|
|
37
37
|
|
|
@@ -43,7 +43,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
43
43
|
| `checkers.show` | SHOW → `SET` + START; HIDE → `UNSET` |
|
|
44
44
|
| `checkers.set` | `SET` → `GRID`/`TURNS`; `UNSET` → `GRID`/`TURNS` UNSET |
|
|
45
45
|
| `checkers.moves` / `checkers.move.play` | ходы; `move.play` → `SET` / `FINISH` |
|
|
46
|
-
| `checkers.finish` | FINISH → delay + `
|
|
46
|
+
| `checkers.finish` | FINISH → delay + `emit SCENARIO.NEXT` |
|
|
47
47
|
|
|
48
48
|
## Сценарий
|
|
49
49
|
|
package/plugins/save/save.md
CHANGED
|
@@ -53,7 +53,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
53
53
|
### plugins/core/
|
|
54
54
|
|
|
55
55
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog, CONST.FILTER_FROM_RESULT_OPTIONS
|
|
56
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
56
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
57
57
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.LOAD, EVENTS.PRELOAD, EVENTS.MIGRATE, EVENTS.GET
|
|
58
58
|
- [storage.md](../core/storage.md) — `STORAGE`: EVENTS.GET, EVENTS.SET, EVENTS.RM_ALL, EVENTS.RM
|
|
59
59
|
- [system.md](../core/system.md) — `SYSTEM`: CONST.DOM_IDS.APP
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| --------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
11
11
|
| `% choose` | Открыть выбор: собрать `% choose.option`, emit `EMIT`. Если все опции `hided` (или список пуст) — `SKIP` и переход за блок. |
|
|
12
12
|
| `% choose.option "…"` | Ветка опции; при проходе мимо невыбранной — skip тела по indent. |
|
|
13
|
-
| `$ choose repeat` | Вернуться к ближайшему `% choose` **выше** текущей строки в том же label и `
|
|
13
|
+
| `$ choose repeat` | Вернуться к ближайшему `% choose` **выше** текущей строки в том же label и `emit SCENARIO.NEXT`. |
|
|
14
14
|
|
|
15
15
|
Пример цикла «осмотреть → вернуться в меню»:
|
|
16
16
|
|
|
@@ -31,11 +31,11 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
31
31
|
| Ключ | Строка | Смысл |
|
|
32
32
|
| -------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
33
|
| `EMIT` | `vne:choose:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
|
|
34
|
-
| `OPTION` | `vne:choose:option` | Принять выбор по UI-индексу: прогнать `OPTION_BEFORE`, затем `HIDE`, `OPTION_REPLACE`, установить `curLine`, сброс state, `
|
|
34
|
+
| `OPTION` | `vne:choose:option` | Принять выбор по UI-индексу: прогнать `OPTION_BEFORE`, затем `HIDE`, `OPTION_REPLACE`, установить `curLine`, сброс state, `emit SCENARIO.NEXT`. |
|
|
35
35
|
| `OPTION_BEFORE` | `vne:choose:option_before` | Side effects до применения выбора (подписки с `priority` на Observer). |
|
|
36
36
|
| `OPTION_REPLACE` | `vne:choose:option_replace` | Подменить UI-индекс принятой опции (цепочка handlers перед переходом по ветке). |
|
|
37
37
|
| `OPTION_REPLACE_REG` | `vne:choose:option_replace_reg` | Зарегистрировать обработчик `OPTION_REPLACE`. |
|
|
38
|
-
| `SKIP` | `vne:choose:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% choose`, `
|
|
38
|
+
| `SKIP` | `vne:choose:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% choose`, `emit SCENARIO.NEXT`. |
|
|
39
39
|
| `SHOW` | `vne:choose:show` | Выбор активен (state готов). Слушает view-плагин. |
|
|
40
40
|
| `HIDE` | `vne:choose:hide` | Выбор закрыт. Слушает view-плагин. |
|
|
41
41
|
| `EXEC_REG` | `vne:choose:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
|
|
@@ -97,7 +97,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
97
97
|
### plugins/core/
|
|
98
98
|
|
|
99
99
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
100
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
100
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
|
|
101
101
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
102
102
|
- [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
|
|
103
103
|
|
|
@@ -35,7 +35,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
35
35
|
| `pause` | `START` ждёт `END`: клик (`INTERACT`) или таймер `time`. |
|
|
36
36
|
| `pause.emit` | В `postinject` — `shared.pauseDisableSources`. `EMIT` → `START`, если набор пуст. |
|
|
37
37
|
| `pause.logs` | Логи `EMIT` / `START` / `END` через `emitLog`. `EMIT` пишет `time`. |
|
|
38
|
-
| `pause.scenario` | `LINE_EXEC_REG` для `$ pause` в `init`. Парсит `time`, эмитит `EMIT`, затем `
|
|
38
|
+
| `pause.scenario` | `LINE_EXEC_REG` для `$ pause` в `init`. Парсит `time`, эмитит `EMIT`, затем `emit SCENARIO.NEXT`. |
|
|
39
39
|
|
|
40
40
|
## Близкие плагины
|
|
41
41
|
|
|
@@ -43,7 +43,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
43
43
|
|
|
44
44
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.POP, EVENTS.PUSH
|
|
45
45
|
- [logs.md](../core/logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
46
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
46
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
47
47
|
|
|
48
48
|
### Остальные
|
|
49
49
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
11
|
| `% point-and-click` | Открыть point-and-click: собрать `% point-and-click.option`, emit `EMIT`. Если все опции `hided` (или список пуст) — `SKIP` и переход за блок. |
|
|
12
12
|
| `% point-and-click.option {icon} {iconHover} x y` | Hotspot; при проходе мимо невыбранного — skip тела по indent. Опционально args `imgWidth` / `imgHeight` (px canvas). |
|
|
13
|
-
| `$ point-and-click repeat` | Вернуться к ближайшему `% point-and-click` **выше** текущей строки в том же label и `
|
|
13
|
+
| `$ point-and-click repeat` | Вернуться к ближайшему `% point-and-click` **выше** текущей строки в том же label и `emit SCENARIO.NEXT`. |
|
|
14
14
|
|
|
15
15
|
Пример цикла осмотра:
|
|
16
16
|
|
|
@@ -33,8 +33,8 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
33
33
|
| Ключ | Строка | Смысл |
|
|
34
34
|
| -------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
35
35
|
| `EMIT` | `vne:point_and_click:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
|
|
36
|
-
| `OPTION` | `vne:point_and_click:option` | Выбор hotspot: `HIDE`, `curLine` внутрь опции, сброс state через `STATE_UPDATE`, `
|
|
37
|
-
| `SKIP` | `vne:point_and_click:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% point-and-click`, `
|
|
36
|
+
| `OPTION` | `vne:point_and_click:option` | Выбор hotspot: `HIDE`, `curLine` внутрь опции, сброс state через `STATE_UPDATE`, `emit SCENARIO.NEXT`. |
|
|
37
|
+
| `SKIP` | `vne:point_and_click:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% point-and-click`, `emit SCENARIO.NEXT`. |
|
|
38
38
|
| `SHOW` | `vne:point_and_click:show` | Выбор активен (state готов). Слушает view-плагин. |
|
|
39
39
|
| `HIDE` | `vne:point_and_click:hide` | Выбор закрыт. Слушает view-плагин. |
|
|
40
40
|
| `EXEC_REG` | `vne:point_and_click:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
|
|
@@ -89,7 +89,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
89
89
|
### plugins/core/
|
|
90
90
|
|
|
91
91
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
92
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
92
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
|
|
93
93
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
94
94
|
- [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
|
|
95
95
|
|
package/plugins/scenario/qte.md
CHANGED
|
@@ -13,7 +13,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
13
13
|
| Ключ | Строка | Смысл |
|
|
14
14
|
| -------- | ---------------- | ------------------------------------------------------------------------------------------------ |
|
|
15
15
|
| `EMIT` | `vne:qte:emit` | Запустить QTE: принять `id` / `item` / `skipScenario`, эмитить `OPENED`. |
|
|
16
|
-
| `RESULT` | `vne:qte:result` | Результат раунда (`success`). Эмитит `CLOSED`; без `skipScenario` — сдвиг сценария и `
|
|
16
|
+
| `RESULT` | `vne:qte:result` | Результат раунда (`success`). Эмитит `CLOSED`; без `skipScenario` — сдвиг сценария и `emit SCENARIO.NEXT`. |
|
|
17
17
|
| `OPENED` | `vne:qte:opened` | QTE активен. Слушает view-плагин. |
|
|
18
18
|
| `CLOSED` | `vne:qte:closed` | QTE закрыт. Слушает view-плагин. |
|
|
19
19
|
|
|
@@ -49,7 +49,7 @@ View сам переводит проценты в геометрию (град
|
|
|
49
49
|
| Модуль | Зона ответственности |
|
|
50
50
|
| -------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
51
51
|
| `qte` | EMIT → `OPENED`; в `postinject` и на `EMIT` пишет `shared.qteScenarioSkip`. |
|
|
52
|
-
| `qte.result` | RESULT → `CLOSED`; без skip — `applyResult` (success → `curLine + 1`, fail → `getBlockSkipShift`) и `
|
|
52
|
+
| `qte.result` | RESULT → `CLOSED`; без skip — `applyResult` (success → `curLine + 1`, fail → `getBlockSkipShift`) и `emit SCENARIO.NEXT`. |
|
|
53
53
|
| `qte.logs` | Логи `EMIT` / `RESULT` через `emitLog`; `skipScenario` из `shared.qteScenarioSkip`. |
|
|
54
54
|
| `qte.scenario` | Регистрация `% qte` в SCENARIO; lookup `ITEMS`; при отсутствии id/item — log `MISSING` и `RESULT { success: false }`. |
|
|
55
55
|
|
|
@@ -64,11 +64,11 @@ View сам переводит проценты в геометрию (град
|
|
|
64
64
|
1. `% qte <id>` → `EMIT` с `item` из `ITEMS[id]`.
|
|
65
65
|
2. **Success** → `curLine` на первую строку внутри блока.
|
|
66
66
|
3. **Fail** (или неизвестный id) → пропуск indented-блока, дальше по сценарию.
|
|
67
|
-
4. После `RESULT` (без `skipScenario`) — `
|
|
67
|
+
4. После `RESULT` (без `skipScenario`) — `emit SCENARIO.NEXT`.
|
|
68
68
|
|
|
69
69
|
## Embedded (`skipScenario`)
|
|
70
70
|
|
|
71
|
-
При `EMIT` с `skipScenario: true` ставится `shared.qteScenarioSkip`; на `RESULT` модуль `qte.result` **не** меняет `curLine` и **не** вызывает `
|
|
71
|
+
При `EMIT` с `skipScenario: true` ставится `shared.qteScenarioSkip`; на `RESULT` модуль `qte.result` **не** меняет `curLine` и **не** вызывает `emit SCENARIO.NEXT` — только `CLOSED`. Используется compatibility choose↔qte, чтобы ветвление осталось у choose. В `postinject` модуля `qte` флаг — `false`.
|
|
72
72
|
|
|
73
73
|
## Compatibility
|
|
74
74
|
|
|
@@ -96,7 +96,7 @@ View сам переводит проценты в геометрию (град
|
|
|
96
96
|
### plugins/core/
|
|
97
97
|
|
|
98
98
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
99
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
99
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
|
|
100
100
|
|
|
101
101
|
### Остальные
|
|
102
102
|
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
### plugins/core/
|
|
32
32
|
|
|
33
33
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
34
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
34
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
|
|
35
35
|
|
|
36
36
|
### Остальные
|
|
37
37
|
|
package/plugins/text/meet.md
CHANGED
|
@@ -35,7 +35,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
35
35
|
### plugins/core/
|
|
36
36
|
|
|
37
37
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
38
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
38
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
39
39
|
|
|
40
40
|
### Остальные
|
|
41
41
|
|
package/plugins/text/text.md
CHANGED
|
@@ -51,7 +51,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
51
51
|
| Модуль | Зона ответственности |
|
|
52
52
|
| ---------------------- | ----------------------------------------------------------------------------- |
|
|
53
53
|
| `text.emit.end` | Завершение emit и переход к next или финальному state. |
|
|
54
|
-
| `text.emit.next` | На `EMIT_NEXT`: `PROCESS_STATE` NEXT, затем `
|
|
54
|
+
| `text.emit.next` | На `EMIT_NEXT`: `PROCESS_STATE` NEXT, затем `onTextEmitNext` → `emit SCENARIO.NEXT` (`priority` 999999). |
|
|
55
55
|
| `text.emit` | Точка входа emit: подготовка и запуск process. |
|
|
56
56
|
| `text.exec` | Подмодуль `exec` плагина. |
|
|
57
57
|
| `text.prepare.tokens` | Токенизация текста перед отображением. |
|
|
@@ -81,7 +81,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
81
81
|
### plugins/core/
|
|
82
82
|
|
|
83
83
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.PUSH, EVENTS.POP
|
|
84
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
84
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, CONST.OTHER_MODULE, CONST.LINE_KEYWORDS.AUTONEXT
|
|
85
85
|
- [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
|
|
86
86
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
87
87
|
- [vendors.md](../core/vendors.md) — `VENDORS`: EVENTS.UID, emitClone
|
package/plugins/text/wall.md
CHANGED
|
@@ -35,7 +35,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
35
35
|
|
|
36
36
|
### plugins/core/
|
|
37
37
|
|
|
38
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
38
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
39
39
|
- [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
|
|
40
40
|
- [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
|
|
41
41
|
|
package/plugins/time/date.md
CHANGED
|
@@ -36,7 +36,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
36
36
|
|
|
37
37
|
### plugins/core/
|
|
38
38
|
|
|
39
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
39
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
40
40
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
41
41
|
|
|
42
42
|
### Остальные
|
package/plugins/time/time.md
CHANGED
|
@@ -37,7 +37,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
37
37
|
|
|
38
38
|
### plugins/core/
|
|
39
39
|
|
|
40
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
40
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
41
41
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
42
42
|
|
|
43
43
|
### Остальные
|
package/plugins/vars/counters.md
CHANGED
|
@@ -43,7 +43,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
43
43
|
|
|
44
44
|
### plugins/core/
|
|
45
45
|
|
|
46
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
46
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
47
47
|
|
|
48
48
|
### Остальные
|
|
49
49
|
|
package/plugins/vars/flags.md
CHANGED
|
@@ -39,7 +39,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
39
39
|
|
|
40
40
|
### plugins/core/
|
|
41
41
|
|
|
42
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
42
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
43
43
|
|
|
44
44
|
### Остальные
|
|
45
45
|
|
|
@@ -58,7 +58,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
58
58
|
|
|
59
59
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog, CONST.FILTER_FROM_RESULT_OPTIONS
|
|
60
60
|
- [media.md](../core/media.md) — `MEDIA`: CONST.PRIORITIES.BACKGROUND
|
|
61
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
61
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINE_LOAD_REG, CONST.LINE_KEYWORDS.SKIP_IF_POSSIBLE
|
|
62
62
|
- [storage.md](../core/storage.md) — `STORAGE`: EVENTS.RM_ALL, EVENTS.GET, EVENTS.SET
|
|
63
63
|
|
|
64
64
|
### Остальные
|
package/plugins/views/comment.md
CHANGED
|
@@ -44,7 +44,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
44
44
|
### plugins/core/
|
|
45
45
|
|
|
46
46
|
- [components.md](../core/components.md) — `COMPONENTS`: EVENTS.EXTERNAL_UPDATE
|
|
47
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
47
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
48
48
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
49
49
|
|
|
50
50
|
### Остальные
|
package/plugins/views/video.md
CHANGED
|
@@ -50,7 +50,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
50
50
|
|
|
51
51
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT, EVENTS.PUSH
|
|
52
52
|
- [media.md](../core/media.md) — `MEDIA`: EVENTS.LOAD, EVENTS.GET, CONST.PRIORITIES.BACKGROUND, CONST.TYPES.VIDEO
|
|
53
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
53
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINE_LOAD_REG
|
|
54
54
|
- [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
|
|
55
55
|
|
|
56
56
|
### Остальные
|
|
@@ -79,7 +79,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
79
79
|
### plugins/core/
|
|
80
80
|
|
|
81
81
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT
|
|
82
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
82
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
83
83
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
84
84
|
|
|
85
85
|
### Остальные
|
|
@@ -33,7 +33,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
33
33
|
|
|
34
34
|
| Модуль | Зона ответственности |
|
|
35
35
|
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
-
| `credits.controller` | SHOW/HIDE; пустой `controls` на `ZINDEX`; `afterHide` →
|
|
36
|
+
| `credits.controller` | SHOW/HIDE; пустой `controls` на `ZINDEX`; `afterHide` → emit SCENARIO.NEXT. |
|
|
37
37
|
| `credits.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `CREDITS.ACCEPT` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
38
38
|
| `credits.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
39
39
|
| `credits.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
@@ -45,7 +45,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
45
45
|
### plugins/core/
|
|
46
46
|
|
|
47
47
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
48
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
48
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
49
49
|
|
|
50
50
|
### Остальные
|
|
51
51
|
|
|
@@ -37,7 +37,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
37
37
|
| Модуль | Зона ответственности |
|
|
38
38
|
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
39
39
|
| `disclaimer.controller` | SHOW/HIDE; пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
|
|
40
|
-
| `disclaimer.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `DISCLAIMER.ACCEPT` → `HIDE`, `
|
|
40
|
+
| `disclaimer.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `DISCLAIMER.ACCEPT` → `HIDE`, `emit SCENARIO.NEXT`; PUSH/POP на SHOW/HIDE. |
|
|
41
41
|
| `disclaimer` | `$ disclaimer show <id>` → SHOW. |
|
|
42
42
|
| `disclaimer.view` | React UI: title / text / accept из locs. |
|
|
43
43
|
|
|
@@ -63,7 +63,7 @@ $ disclaimer show qte
|
|
|
63
63
|
### plugins/core/
|
|
64
64
|
|
|
65
65
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
66
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
66
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
67
67
|
|
|
68
68
|
### Остальные
|
|
69
69
|
|
|
@@ -48,7 +48,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
48
48
|
### plugins/core/
|
|
49
49
|
|
|
50
50
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
51
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
51
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, CONST.LINE_KEYWORDS.SKIP_IF_POSSIBLE
|
|
52
52
|
- [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
|
|
53
53
|
|
|
54
54
|
### Остальные
|
|
@@ -69,7 +69,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
69
69
|
### plugins/core/
|
|
70
70
|
|
|
71
71
|
- [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
|
|
72
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
72
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT
|
|
73
73
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, CONST.MIGRATE_STATUS.LINE_NOT_FOUND, CONST.MIGRATE_STATUS.OK
|
|
74
74
|
- [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
|
|
75
75
|
- [vendors.md](../core/vendors.md) — `VENDORS`: EVENTS.DATE
|
|
@@ -45,8 +45,8 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
45
45
|
| `settings.default.controller` | SHOW/HIDE; `beforeShow` → `SHOW_BEFORE`; `STATE_UPDATE` / `UPDATE_FAST`. |
|
|
46
46
|
| `settings.default.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW_BEFORE` → `bgSrc`; `MEMORY.CLEARED` при `isShow` → refresh. |
|
|
47
47
|
| `settings.default.controller.fields` | На `SHOW_BEFORE`: `STATE_UPDATE` `{ tab }` + `SETTINGS_VIEW.SHOW` с `CONST.SETTINGS_VIEW.DEFAULT_TAB`. |
|
|
48
|
-
| `settings.default.controller.accept` | Наследует `@vnejs/module.controller.accept`: только `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `CONFIRM` → `INITED`, `HIDE`, `
|
|
49
|
-
| `settings.default` | `SETTINGS.INIT` INITED в `setup`; `LINE_EXEC` как `$ settings.defaults` → `SHOW`, либо `
|
|
48
|
+
| `settings.default.controller.accept` | Наследует `@vnejs/module.controller.accept`: только `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `CONFIRM` → `INITED`, `HIDE`, `emit SCENARIO.NEXT`; PUSH/POP на SHOW/HIDE. |
|
|
49
|
+
| `settings.default` | `SETTINGS.INIT` INITED в `setup`; `LINE_EXEC` как `$ settings.defaults` → `SHOW`, либо `emit SCENARIO.NEXT` при `skip_if_possible` и `INITED`. |
|
|
50
50
|
| `settings.default.view` | Chrome: title + кнопка Accept. |
|
|
51
51
|
|
|
52
52
|
## Близкие плагины
|
|
@@ -55,7 +55,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
55
55
|
|
|
56
56
|
- [components.md](../core/components.md) — `COMPONENTS`: EVENTS.EXTERNAL_UPDATE
|
|
57
57
|
- [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
|
|
58
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`:
|
|
58
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, CONST.LINE_KEYWORDS.SKIP_IF_POSSIBLE
|
|
59
59
|
- [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT, EVENTS.SET
|
|
60
60
|
|
|
61
61
|
### Остальные
|