@vnejs/docs 0.2.32 → 0.2.34
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 +15 -0
- package/package.json +1 -1
- package/plugins/canvas/layer.md +4 -4
- package/plugins/core/memory.md +12 -12
- package/plugins/scenario/autoread.md +18 -10
- package/plugins/scenario/choose.md +4 -4
- package/plugins/scenario/history.md +75 -0
- package/plugins/scenario/pause.md +15 -10
- package/plugins/text/locs.md +16 -8
- package/plugins/text/text.md +7 -0
- package/plugins/views.scenario/point_and_click.md +5 -5
- package/plugins/views.screens/history.md +19 -36
- package/scenario.catalog/stubs/pause.md +3 -2
- package/scenario.guide/flow.md +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
|
|
4
4
|
|
|
5
|
+
## 0.2.34
|
|
6
|
+
|
|
7
|
+
- `scenario/pause` — логи в модуле `pause.logs`, не `emitLog` из шага. `$ pause` обрабатывает модуль `pause.scenario`: `LINE_EXEC_REG`, затем `EVENTS.PAUSE.EMIT` и `emitNext`. Блокировки — модуль `pause.emit`: в `postinject` создаёт `shared.pauseDisableSources`; `EVENTS.PAUSE.EMIT` (`vne:pause:emit`) эмитит `START`, если набор пуст. `START` больше не смотрит блокировки и не вызывает `emitNext`. `STATE.CLEAR` больше не вызывает `END`. API: `EVENTS.PAUSE.EMIT`, `CONST.PAUSE.LOGS_ACTIONS` (`EMIT` / `emit`, `START` / `start`, `END` / `end`).
|
|
8
|
+
- `scenario/autoread` — постановка и сброс таймера через события, не методы модуля. `TIMEOUT_CREATE` ставит таймер на `SETTINGS.AUTOREAD.DELAY` и по нему эмитит `AUTOREAD.EMIT`. `TIMEOUT_CLEAR` снимает таймер. PUSH / POP / `STATE.SET` / `STATE.CLEAR` идут через эти события. Шаг авточтения — модуль `autoread.emit` на `EVENTS.AUTOREAD.EMIT` (`vne:autoread:emit`). Таймер — модуль `autoread.timeout` (`TIMEOUT_CREATE` / `TIMEOUT_CLEAR`; `STATE.CLEAR` → `TIMEOUT_CLEAR`, `STATE.SET` → `TIMEOUT_CLEAR` затем `TIMEOUT_CREATE`). Блокировки — модуль `autoread.sources`: `postinject` создаёт `shared.autoreadDisableSources`, `PUSH` / `POP` меняют набор, `STATE.SET` его очищает. Вместо `EVENTS.AUTOREAD.TRY` (`vne:autoread:try`). Логи — модуль `autoread.logs`, не `emitLog` из шага. `CONST.AUTOREAD.LOGS_ACTIONS`: `EMIT` (`emit`), `PUSH` (`push`), `POP` (`pop`), `TIMEOUT_CREATE` (`timeout_create`), `TIMEOUT_CLEAR` (`timeout_clear`). `PUSH` / `POP` пишут `source`. API: `EVENTS.AUTOREAD.EMIT`, `EVENTS.AUTOREAD.TIMEOUT_CREATE`, `EVENTS.AUTOREAD.TIMEOUT_CLEAR`, `CONST.AUTOREAD.LOGS_ACTIONS`.
|
|
9
|
+
- `scenario/history` — журнал снапшотов вынесен из экрана (`@vnejs/plugins.scenario.history`). Шаг назад — `EVENTS.HISTORY.BACK`; запись — `EVENTS.HISTORY.ADD` / `GET` / `SET` / `LOAD` / `KEYS` / `KEYS_UPDATE`. Снапшот в память — `EVENTS.HISTORY.SET` (`{ uid, value }`), не прямой `MEMORY.SET`. Прогрев ключей — `EVENTS.HISTORY.KEYS_UPDATE`. Флаг загрузки — `shared.isHistoryLoadInProcess`, не поле модуля. Логи — `CONST.HISTORY.LOGS_ACTIONS` (`ADD`, `LOAD_START`, `LOAD_DELETED`, `LOAD_END`). `PARAMS.HISTORY.MAX_LENGTH`. Мост к `MEMORY` — модуль `history.memory` (`MEMORY.REG` / `GET` / `SET` / `KEYS`, ключ `module: this.name`). Загрузка снапшота — модуль `history.load` (`EVENTS.HISTORY.LOAD`, флаг `shared.isHistoryLoadInProcess`). Шаг назад — модуль `history.back` (`EVENTS.HISTORY.BACK`, последняя запись из `globalState.history`). Плагин и связки записи — в `bundles/vn.skeleton`. Вместо `HISTORY.ADD` с экрана `views.screens/history`.
|
|
10
|
+
- `views.screens/history` — экран журнала: namespace `HISTORY_VIEW` (`@vnejs/plugins.views.screens.history`), в `bundles/vn.base`. API: `EVENTS.HISTORY_VIEW.SHOW`, `EVENTS.HISTORY_VIEW.HIDE`, `EVENTS.HISTORY_VIEW.CLICK`, `EVENTS.HISTORY_VIEW.UPDATE`, `EVENTS.HISTORY_VIEW.STATE_UPDATE`, `EVENTS.HISTORY_VIEW.UPDATE_FAST`, `EVENTS.HISTORY_VIEW.ACCEPT`, `PARAMS.HISTORY_VIEW.ZINDEX`, `PARAMS.HISTORY_VIEW.TRANSITION`, `PARAMS.HISTORY_VIEW.LOC_LABEL`, `PARAMS.HISTORY_VIEW.VIEW_PROPS`. Вместо `EVENTS.HISTORY.SHOW` и остальных view-событий `HISTORY`.
|
|
11
|
+
- `compatibility/text/scenario.history` — `@vnejs/compatibility.text-with-scenario.history` вместо `@vnejs/compatibility.text-with-views.screens.history`. На `TEXT.EMIT_NEXT` эмитит `EVENTS.HISTORY.ADD`.
|
|
12
|
+
- `compatibility/scenario.choose/scenario.history` — `@vnejs/compatibility.scenario.choose-with-scenario.history` вместо `@vnejs/compatibility.scenario.choose-with-views.screens.history`. На `CHOOSE.OPTION_BEFORE_REG` эмитит `EVENTS.HISTORY.ADD` с `{ locKey: "choice" }`.
|
|
13
|
+
|
|
14
|
+
## 0.2.33
|
|
15
|
+
|
|
16
|
+
- `views.scenario/point_and_click` — `SETTINGS.CHANGED` обновляет view только при `state.isShow` (`point_and_click_view.controller`).
|
|
17
|
+
- `core/memory` — `MEMORY.CLEAR` до `isReady` модуля `memory.clear` игнорируется (нет чистки и нет `CLEARED`).
|
|
18
|
+
- `text/locs` — `SETTINGS.CHANGED` не вызывает `setTextLang`, пока `locs` не `isReady`. Применение языка — `LOCS.SET` (`init` и `SETTINGS.CHANGED` после `isReady`), не метод модуля. В `postinject` `shared.textLang = PARAMS.LOCS.DEFAULT_LANG`; ожидание кадра до языка снято. Чтение и запись уже загруженного словаря — события модуля `locs.memory`, не прямой `MEMORY` из загрузчика. `LOCS.MEMORY_SET` принимает `{ label, group, lang?, value }`, ключ считает модуль. API: `LOCS.SET`, `LOCS.MEMORY_GET`, `LOCS.MEMORY_SET`, `shared.textLang`.
|
|
19
|
+
|
|
5
20
|
## 0.2.32
|
|
6
21
|
|
|
7
22
|
- `canvas/layer` — снят модуль `layer.viewport` (он задавал viewport meta размером canvas, `width=1920,height=1080`). Viewport и запрет скролла документа — в `entry/index.html` игры: `width=device-width, initial-scale=1`, `overflow: hidden` на `html`/`body`. Так в `games/coraline` и `games/vn.skeleton`. Разрешение canvas по-прежнему в `--vne-canvas-width` / `--vne-canvas-height`.
|
package/package.json
CHANGED
package/plugins/canvas/layer.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Пакет: `@vnejs/plugins.canvas.layer` · namespace: `LAYER`
|
|
4
4
|
|
|
5
|
-
Качество canvas и размеры через CSS-переменные. Viewport meta и `overflow: hidden` на `html`/`body` задаёт `entry/index.html` игры, не этот плагин.
|
|
5
|
+
Качество canvas и размеры через CSS-переменные. Viewport meta и `overflow: hidden` на `html`/`body` задаёт `entry/index.html` игры, не этот плагин. У `html` и `body` должна быть `height: 100%`, у `body` — flex-центрирование: иначе 16:9-бокс `#app` от `ratio` прилипает к верху окна.
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
|
|
40
40
|
## Модули
|
|
41
41
|
|
|
42
|
-
| Модуль | Зона ответственности
|
|
43
|
-
| --------------- |
|
|
44
|
-
| `layer.quality` |
|
|
42
|
+
| Модуль | Зона ответственности |
|
|
43
|
+
| --------------- | --------------------------------------------------------------------------------- |
|
|
44
|
+
| `layer.quality` | Качество → CSS-размеры и `SETTINGS.LAYER.WIDTH` / `HEIGHT`, затем `MEMORY.CLEAR`. |
|
|
45
45
|
|
|
46
46
|
## Близкие плагины
|
|
47
47
|
|
package/plugins/core/memory.md
CHANGED
|
@@ -6,14 +6,14 @@ In-memory кэш с reference counting по namespace модуля; исполь
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
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` |
|
|
16
|
-
| `CLEARED` | `vne:memory:cleared` | In-memory кэш полностью очищен.
|
|
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` | Если модуль `memory.clear` ещё не `isReady` — no-op. Иначе уменьшает счётчики, удаляет записи с нулевым счётчиком, вызывает `onClear` и `CLEARED`. |
|
|
16
|
+
| `CLEARED` | `vne:memory:cleared` | In-memory кэш полностью очищен. |
|
|
17
17
|
|
|
18
18
|
## Константы
|
|
19
19
|
|
|
@@ -29,11 +29,11 @@ In-memory кэш с reference counting по namespace модуля; исполь
|
|
|
29
29
|
|
|
30
30
|
## Модули
|
|
31
31
|
|
|
32
|
-
| Модуль | Зона ответственности
|
|
33
|
-
| -------------- |
|
|
34
|
-
| `memory` | `REG` и `shared.memory = {}` в `postinject`.
|
|
32
|
+
| Модуль | Зона ответственности |
|
|
33
|
+
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
34
|
+
| `memory` | `REG` и `shared.memory = {}` в `postinject`. |
|
|
35
35
|
| `memory.store` | `GET` / `SET` / `KEYS` через `shared.memory`. Не ждут `REG` — namespace регистрируют в `setup`. Незарегистрированный: `GET` → `null`, `SET` no-op, `KEYS` → `[]`. |
|
|
36
|
-
| `memory.clear` | `CLEAR`: уменьшает счётчики в `shared.memory`, удаляет записи с нулевым счётчиком, `onClear`, затем `CLEARED`.
|
|
36
|
+
| `memory.clear` | `CLEAR`: до `isReady` игнорируется. Иначе уменьшает счётчики в `shared.memory`, удаляет записи с нулевым счётчиком, `onClear`, затем `CLEARED`. |
|
|
37
37
|
|
|
38
38
|
## Близкие плагины
|
|
39
39
|
|
|
@@ -6,15 +6,19 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ
|
|
10
|
-
|
|
|
11
|
-
| `
|
|
12
|
-
| `PUSH`
|
|
13
|
-
| `POP`
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| ---------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
11
|
+
| `EMIT` | `vne:autoread:emit` | Если авточтение включено и нет блокировок — `INTERACT.EMIT` по `vne-autoread-allow`, иначе `TIMEOUT_CREATE`. |
|
|
12
|
+
| `PUSH` | `vne:autoread:push` | Добавить источник блокировки и `TIMEOUT_CLEAR`. Payload: `{ source? }`. |
|
|
13
|
+
| `POP` | `vne:autoread:pop` | Снять источник блокировки; если очередь пуста — `TIMEOUT_CREATE`. Payload: `{ source? }`. |
|
|
14
|
+
| `TIMEOUT_CREATE` | `vne:autoread:timeout_create` | Поставить таймер на `SETTINGS.AUTOREAD.DELAY`; по нему эмитит `EMIT`. |
|
|
15
|
+
| `TIMEOUT_CLEAR` | `vne:autoread:timeout_clear` | Снять поставленный таймер. |
|
|
14
16
|
|
|
15
17
|
## Константы
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
| Ключ | Смысл |
|
|
20
|
+
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
21
|
+
| `LOGS_ACTIONS` | Метки для логов: `EMIT` (`emit`), `PUSH` (`push`), `POP` (`pop`), `TIMEOUT_CREATE` (`timeout_create`), `TIMEOUT_CLEAR` (`timeout_clear`). |
|
|
18
22
|
|
|
19
23
|
## Параметры
|
|
20
24
|
|
|
@@ -32,16 +36,20 @@
|
|
|
32
36
|
|
|
33
37
|
## Модули
|
|
34
38
|
|
|
35
|
-
| Модуль
|
|
36
|
-
|
|
|
37
|
-
| `autoread`
|
|
39
|
+
| Модуль | Зона ответственности |
|
|
40
|
+
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
41
|
+
| `autoread` | `SETTINGS.INIT` в `setup`. `SETTINGS.CHANGED` для `ENABLED` эмитит `PUSH` / `POP`. |
|
|
42
|
+
| `autoread.logs` | Логи всех событий `AUTOREAD` через `emitLog`. `PUSH` / `POP` пишут `source`. |
|
|
43
|
+
| `autoread.sources` | В `postinject` — `shared.autoreadDisableSources`. `PUSH` / `POP`. На `STATE.SET` очищает набор. |
|
|
44
|
+
| `autoread.emit` | `EMIT`: если включено и нет блокировок — `INTERACT.EMIT` по `vne-autoread-allow`, иначе `TIMEOUT_CREATE`. |
|
|
45
|
+
| `autoread.timeout` | `TIMEOUT_CREATE` / `TIMEOUT_CLEAR`. Таймер на `SETTINGS.AUTOREAD.DELAY`, по нему `EMIT`. `STATE.CLEAR` → `TIMEOUT_CLEAR`. `STATE.SET` → `TIMEOUT_CLEAR`, затем `TIMEOUT_CREATE`. |
|
|
38
46
|
|
|
39
47
|
## Близкие плагины
|
|
40
48
|
|
|
41
49
|
### plugins/core/
|
|
42
50
|
|
|
43
51
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT
|
|
44
|
-
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
52
|
+
- [logs.md](../core/logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
45
53
|
- [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
|
|
46
54
|
- [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
|
|
47
55
|
|
|
@@ -80,11 +80,11 @@
|
|
|
80
80
|
|
|
81
81
|
В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `FASTFORWARD.CHECK` (до `HIDE` / `OPTION_REPLACE`).
|
|
82
82
|
|
|
83
|
-
### `compatibility/scenario.choose/
|
|
83
|
+
### `compatibility/scenario.choose/scenario.history/`
|
|
84
84
|
|
|
85
|
-
Пакет: `@vnejs/compatibility.scenario.choose-with-
|
|
85
|
+
Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.history`
|
|
86
86
|
|
|
87
|
-
В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `HISTORY.ADD` с `{ locKey: "choice" }` (без speaker/text). Текст строки берётся из локализации
|
|
87
|
+
В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `HISTORY.ADD` с `{ locKey: "choice" }` (без speaker/text). Текст строки берётся из локализации экрана history (`history.json`). Подключается в `bundles/vn.skeleton`.
|
|
88
88
|
|
|
89
89
|
### `compatibility/scenario.choose/scenario.qte/`
|
|
90
90
|
|
|
@@ -106,6 +106,6 @@
|
|
|
106
106
|
- [text.md](../text/text.md) — `TEXT`: EVENTS.REPLACE (текст опций)
|
|
107
107
|
- [qte.md](./qte.md) — `QTE`: связка через `OPTION_REPLACE` (compatibility выше)
|
|
108
108
|
- [fastforward.md](./fastforward.md) — `FASTFORWARD`: связка через `OPTION_BEFORE_REG` (compatibility выше)
|
|
109
|
-
- [
|
|
109
|
+
- [history.md](./history.md) — `HISTORY`: связка через `OPTION_BEFORE_REG` → `ADD` с `locKey` (compatibility выше)
|
|
110
110
|
- [views.scenario/choose.md](../views.scenario/choose.md) — `CHOOSE_VIEW`: UI выбора (слушает SHOW / HIDE)
|
|
111
111
|
- [scenario/point_and_click.md](./point_and_click.md) — тот же паттерн `repeat` / `SKIP` / `SHOW` / `HIDE` / `STATE_UPDATE`
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# plugins/scenario/history/
|
|
2
|
+
|
|
3
|
+
Пакет: `@vnejs/plugins.scenario.history` · namespace: `HISTORY`
|
|
4
|
+
|
|
5
|
+
Журнал снапшотов состояния. `BACK` возвращает на последнюю запись. Экран журнала — [views.screens/history.md](../views.screens/history.md) (`HISTORY_VIEW`), в `bundles/vn.base`. Этот плагин — в `bundles/vn.skeleton`.
|
|
6
|
+
|
|
7
|
+
## События
|
|
8
|
+
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| ------ | ------------------ | ---------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| `GET` | `vne:history:get` | Снапшот по `uid` (`MEMORY.GET`). Payload: `{ uid? }`. |
|
|
12
|
+
| `SET` | `vne:history:set` | Записать снапшот в `MEMORY` модуля `history.memory`. Payload: `{ uid?, value? }`. |
|
|
13
|
+
| `ADD` | `vne:history:add` | Снять snapshot `STATE` и добавить запись. Payload: реплика (`label`/`text`/`args`/`speaker`…) или `{ locKey }`. Пока `shared.isHistoryLoadInProcess` — игнорируется. |
|
|
14
|
+
| `LOAD` | `vne:history:load` | Загрузить снапшот в `STATE` и перейти на `state.scenario.label` (`SCENARIO.LABEL_GET`). Payload: `{ uid? }`. На время загрузки ставит `shared.isHistoryLoadInProcess`. |
|
|
15
|
+
| `BACK` | `vne:history:back` | `LOAD` последней записи. Пока `shared.isHistoryLoadInProcess` и на пустом журнале ничего не делает. |
|
|
16
|
+
| `KEYS` | `vne:history:keys` | Ключи модуля `history.memory` в `MEMORY`. |
|
|
17
|
+
| `KEYS_UPDATE` | `vne:history:keys_update` | Прогреть ключи: `GET` по каждому `uid` в стейте журнала. |
|
|
18
|
+
|
|
19
|
+
Флаг загрузки — `shared.isHistoryLoadInProcess` (ставит модуль `history.load`; в `postinject` — `false`).
|
|
20
|
+
|
|
21
|
+
## Константы
|
|
22
|
+
|
|
23
|
+
| Ключ | Смысл |
|
|
24
|
+
| -------------- | ---------------------------------------------------------------------------------------------- |
|
|
25
|
+
| `LOGS_ACTIONS` | Метки для логов: `ADD` (`add`), `LOAD_START` (`load start`), `LOAD_DELETED` (`load deleted`), `LOAD_END` (`load end`). |
|
|
26
|
+
|
|
27
|
+
## Параметры
|
|
28
|
+
|
|
29
|
+
| Ключ | Тип | Смысл |
|
|
30
|
+
| ------------ | -------- | ------------------------------------------ |
|
|
31
|
+
| `MAX_LENGTH` | `number` | Максимум записей. Значение по умолчанию: 50. |
|
|
32
|
+
|
|
33
|
+
## Настройки
|
|
34
|
+
|
|
35
|
+
Нет.
|
|
36
|
+
|
|
37
|
+
## Модули
|
|
38
|
+
|
|
39
|
+
| Модуль | Зона ответственности |
|
|
40
|
+
| ---------------- | ------------------------------------------------------------------------------------ |
|
|
41
|
+
| `history` | ADD, KEYS_UPDATE. Стейт `{ history }`. |
|
|
42
|
+
| `history.back` | BACK. Последняя запись — `globalState.history`. Пока `shared.isHistoryLoadInProcess` и на пустом журнале ничего не делает. |
|
|
43
|
+
| `history.load` | LOAD. На время загрузки ставит `shared.isHistoryLoadInProcess`. |
|
|
44
|
+
| `history.memory` | `MEMORY.REG` в `setup` (`module: this.name`); GET, SET, KEYS. |
|
|
45
|
+
|
|
46
|
+
Стейт журнала — у модуля `history` (`globalState.history`). Снапшоты в `MEMORY` лежат под именем модуля `history.memory`.
|
|
47
|
+
|
|
48
|
+
## Compatibility
|
|
49
|
+
|
|
50
|
+
### `compatibility/text/scenario.history/`
|
|
51
|
+
|
|
52
|
+
Пакет: `@vnejs/compatibility.text-with-scenario.history`
|
|
53
|
+
|
|
54
|
+
На `TEXT.EMIT_NEXT` эмитит `HISTORY.ADD` с `{ label, text, args, speaker, speakerInfo }`. Маркеры `{…}` из текста снимаются. Подключается в `bundles/vn.skeleton`.
|
|
55
|
+
|
|
56
|
+
### `compatibility/scenario.choose/scenario.history/`
|
|
57
|
+
|
|
58
|
+
Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.history`
|
|
59
|
+
|
|
60
|
+
На `CHOOSE.OPTION_BEFORE_REG` эмитит `HISTORY.ADD` с `{ locKey: "choice" }`. Перевод строки — ключ `choice` в `history.json` экрана. Подключается в `bundles/vn.skeleton`.
|
|
61
|
+
|
|
62
|
+
## Близкие плагины
|
|
63
|
+
|
|
64
|
+
### plugins/core/
|
|
65
|
+
|
|
66
|
+
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
67
|
+
- [memory.md](../core/memory.md) — `MEMORY`: EVENTS.REG, EVENTS.SET, EVENTS.KEYS, EVENTS.GET
|
|
68
|
+
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.LABEL_GET
|
|
69
|
+
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.GET, EVENTS.LOAD
|
|
70
|
+
|
|
71
|
+
### Остальные
|
|
72
|
+
|
|
73
|
+
- [text.md](../text/text.md) — `TEXT`: `EMIT_NEXT` → `ADD` (compatibility выше)
|
|
74
|
+
- [choose.md](./choose.md) — `CHOOSE`: `OPTION_BEFORE_REG` → `ADD` (compatibility выше)
|
|
75
|
+
- [views.screens/history.md](../views.screens/history.md) — `HISTORY_VIEW`: экран журнала (`SHOW` / `HIDE`); читает `GET` / `KEYS` / `LOAD`
|
|
@@ -6,14 +6,17 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ | Строка | Смысл
|
|
10
|
-
| ------- | ----------------- |
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| ------- | ----------------- | ----------------------------------------------------------------------------------------------- |
|
|
11
|
+
| `EMIT` | `vne:pause:emit` | Если `shared.pauseDisableSources` пуст — `START` с `{ time? }`. Иначе ничего. |
|
|
12
|
+
| `START` | `vne:pause:start` | Ждать клик (`INTERACT.PUSH`, ключ `pause`) или `time` мс, пока не `END`. Payload: `{ time? }`. |
|
|
13
|
+
| `END` | `vne:pause:end` | Снять таймер, `INTERACT.POP`, завершить ожидание `START`. |
|
|
13
14
|
|
|
14
15
|
## Константы
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
| Ключ | Смысл |
|
|
18
|
+
| -------------- | ---------------------------------------------------------------------------------------- |
|
|
19
|
+
| `LOGS_ACTIONS` | Метки для логов: `EMIT` (`emit`), `START` (`start`), `END` (`end`). `EMIT` пишет `time`. |
|
|
17
20
|
|
|
18
21
|
## Параметры
|
|
19
22
|
|
|
@@ -25,18 +28,20 @@
|
|
|
25
28
|
|
|
26
29
|
## Модули
|
|
27
30
|
|
|
28
|
-
| Модуль
|
|
29
|
-
|
|
|
30
|
-
| `pause`
|
|
31
|
+
| Модуль | Зона ответственности |
|
|
32
|
+
| ---------------- | --------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `pause` | `START` ждёт `END`: клик (`INTERACT`) или таймер `time`. |
|
|
34
|
+
| `pause.emit` | В `postinject` — `shared.pauseDisableSources`. `EMIT` → `START`, если набор пуст. |
|
|
35
|
+
| `pause.logs` | Логи `EMIT` / `START` / `END` через `emitLog`. `EMIT` пишет `time`. |
|
|
36
|
+
| `pause.scenario` | `LINE_EXEC_REG` для `$ pause` в `init`. Парсит `time`, эмитит `EMIT`, затем `emitNext`. |
|
|
31
37
|
|
|
32
38
|
## Близкие плагины
|
|
33
39
|
|
|
34
40
|
### plugins/core/
|
|
35
41
|
|
|
36
42
|
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.POP, EVENTS.PUSH
|
|
37
|
-
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
43
|
+
- [logs.md](../core/logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
|
|
38
44
|
- [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG
|
|
39
|
-
- [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR
|
|
40
45
|
|
|
41
46
|
### Остальные
|
|
42
47
|
|
package/plugins/text/locs.md
CHANGED
|
@@ -8,11 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
## События
|
|
10
10
|
|
|
11
|
-
| Ключ
|
|
12
|
-
|
|
|
13
|
-
| `LOAD`
|
|
14
|
-
| `GET`
|
|
15
|
-
| `
|
|
11
|
+
| Ключ | Строка | Смысл |
|
|
12
|
+
| ------------ | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| `LOAD` | `vne:locs:load` | Запросить данные у обработчиков и продолжить цепочку. Payload: `{ label, group, lang? }`. Без `group` файл не грузится. |
|
|
14
|
+
| `GET` | `vne:locs:get` | Получить словарь. Payload: `{ label, group, lang? }`. Без `group` — пустой объект. |
|
|
15
|
+
| `MEMORY_GET` | `vne:locs:memory_get` | Уже загруженный словарь из памяти, без загрузки. Payload: `{ label, group, lang? }`. Без `group` — `undefined`. |
|
|
16
|
+
| `MEMORY_SET` | `vne:locs:memory_set` | Записать словарь в память ядра. Payload: `{ label, group, lang?, value }`. Ключ считает модуль. Без `group` — ничего. `module` не передаётся — всегда `locs.memory`. |
|
|
17
|
+
| `SET` | `vne:locs:set` | Применить язык: `shared.textLang` и `CHANGED`. Payload: `{ lang }`. Без `lang` — ничего. |
|
|
18
|
+
| `CHANGED` | `vne:locs:changed` | Зафиксировать изменение состояния. |
|
|
16
19
|
|
|
17
20
|
## Константы
|
|
18
21
|
|
|
@@ -35,9 +38,14 @@
|
|
|
35
38
|
|
|
36
39
|
## Модули
|
|
37
40
|
|
|
38
|
-
| Модуль
|
|
39
|
-
|
|
|
40
|
-
| `locs`
|
|
41
|
+
| Модуль | Зона ответственности |
|
|
42
|
+
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
43
|
+
| `locs` | В `postinject` — `shared.textLang = PARAMS.LOCS.DEFAULT_LANG`. `SETTINGS.INIT` в `setup`. `SET` применяет язык и эмитит `CHANGED`. `init` и `SETTINGS.CHANGED` после `isReady` эмитят `SET`. Чтение словаря — `MEMORY_GET`. |
|
|
44
|
+
| `locs.changed` | `CHANGED`: если словаря меток нет — `LOAD`, затем `TEXT.RECALC` и `COMPONENTS.EXTERNAL_UPDATE`. |
|
|
45
|
+
| `locs.memory` | `MEMORY.REG` в `setup` с `module: this.name` (`locs.memory`). `MEMORY_GET` / `MEMORY_SET`. |
|
|
46
|
+
| `locs.load` | `LOCS.LOAD`: fetch словаря, чтение и запись только через `MEMORY_GET` / `MEMORY_SET`. |
|
|
47
|
+
| `locs.components.inject` | `COMPONENTS.INJECT_REG` в `init`. `LOC_LABEL` → `LOCS.GET` с `GROUPS.VIEWS`. |
|
|
48
|
+
| `locs.text.replace` | `TEXT.REPLACE_REG` в `init` с priority `-999999`. Без `group` — `GROUPS.LABELS`. |
|
|
41
49
|
|
|
42
50
|
## Близкие плагины
|
|
43
51
|
|
package/plugins/text/text.md
CHANGED
|
@@ -71,6 +71,12 @@
|
|
|
71
71
|
|
|
72
72
|
Связка с [interface.md](../views.scenario/interface.md): `CHANGED` / `SPEAKER_CHANGED` / `EMIT_BEFORE` → `INTERFACE.TEXT_CHANGED` / `SPEAKER_CHANGED` / `SHOW`. В `postinject` ставит `shared.interfaceTextShowAllTokensOnChange`.
|
|
73
73
|
|
|
74
|
+
### `compatibility/text/scenario.history/`
|
|
75
|
+
|
|
76
|
+
Пакет: `@vnejs/compatibility.text-with-scenario.history`
|
|
77
|
+
|
|
78
|
+
На `EMIT_NEXT` эмитит `HISTORY.ADD` с текстом последней реплики (маркеры `{…}` снимаются). Подключается в `bundles/vn.skeleton`.
|
|
79
|
+
|
|
74
80
|
## Близкие плагины
|
|
75
81
|
|
|
76
82
|
### plugins/core/
|
|
@@ -84,3 +90,4 @@
|
|
|
84
90
|
### Остальные
|
|
85
91
|
|
|
86
92
|
- [interface.md](../views.scenario/interface.md) — `INTERFACE`: связка через compatibility выше
|
|
93
|
+
- [history.md](../scenario/history.md) — `HISTORY`: `EMIT_NEXT` → `ADD` (compatibility выше)
|
|
@@ -33,11 +33,11 @@ React-UI point-and-click (иконки-hotspot). Зависит от scenario-п
|
|
|
33
33
|
|
|
34
34
|
## Модули
|
|
35
35
|
|
|
36
|
-
| Модуль | Зона ответственности
|
|
37
|
-
| --------------------------------- |
|
|
38
|
-
| `point_and_click_view.bridge` | Bridge `POINT_AND_CLICK.SHOW/HIDE` → `POINT_AND_CLICK_VIEW.SHOW/HIDE`; на hide — `INTERFACE.TEXT_HIDE`.
|
|
39
|
-
| `point_and_click_view.controller` | Загрузка `iconSrc`, `controls` из `CONTROLS_EXTENSIONS` в `init`, `beforeShow` / `afterHide`.
|
|
40
|
-
| `point_and_click_view.view` | React-render hotspot-иконок.
|
|
36
|
+
| Модуль | Зона ответственности |
|
|
37
|
+
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
38
|
+
| `point_and_click_view.bridge` | Bridge `POINT_AND_CLICK.SHOW/HIDE` → `POINT_AND_CLICK_VIEW.SHOW/HIDE`; на hide — `INTERFACE.TEXT_HIDE`. |
|
|
39
|
+
| `point_and_click_view.controller` | Загрузка `iconSrc`, `controls` из `CONTROLS_EXTENSIONS` в `init`, `beforeShow` / `afterHide`. `SETTINGS.CHANGED` → `updateViewFast` только при `state.isShow`. |
|
|
40
|
+
| `point_and_click_view.view` | React-render hotspot-иконок. |
|
|
41
41
|
|
|
42
42
|
## Связь с POINT_AND_CLICK
|
|
43
43
|
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
# plugins/views.screens/history/
|
|
2
2
|
|
|
3
|
-
Пакет: `@vnejs/plugins.views.screens.history` · namespace: `
|
|
3
|
+
Пакет: `@vnejs/plugins.views.screens.history` · namespace: `HISTORY_VIEW`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Экран журнала диалогов. Снапшоты и шаг назад — [scenario/history.md](../scenario/history.md) (`HISTORY`). Этот плагин в `bundles/vn.base`.
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ | Строка
|
|
10
|
-
| -------------- |
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| `STATE_UPDATE` | `vne:history:state_update` | Слить partial в стейт контроллера без UPDATE view. |
|
|
21
|
-
| `UPDATE_FAST` | `vne:history:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
|
|
22
|
-
| `ACCEPT` | `vne:history:accept` | Событие `ACCEPT` namespace плагина. |
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| -------------- | ------------------------------- | --------------------------------------------------------------------- |
|
|
11
|
+
| `HIDE` | `vne:history_view:hide` | Скрыть экран. |
|
|
12
|
+
| `SHOW` | `vne:history_view:show` | Показать экран. |
|
|
13
|
+
| `CLICK` | `vne:history_view:click` | Клик по строке. Если `uid` есть в ключах журнала — `HISTORY.LOAD`. |
|
|
14
|
+
| `UPDATE` | `vne:history_view:update` | Перерисовать view. |
|
|
15
|
+
| `STATE_UPDATE` | `vne:history_view:state_update` | Слить partial в стейт контроллера без UPDATE view. |
|
|
16
|
+
| `UPDATE_FAST` | `vne:history_view:update_fast` | Перерисовать view с `isFast`, стейт не меняет. |
|
|
17
|
+
| `ACCEPT` | `vne:history_view:accept` | `ACCEPT` / `INTERACT` → `CLICK` по `currentArrowVerticalItem`. |
|
|
18
|
+
|
|
19
|
+
Строки журнала и шаг назад — `EVENTS.HISTORY.GET` / `KEYS` / `LOAD` / `BACK` / `ADD` (`scenario/history`).
|
|
23
20
|
|
|
24
21
|
## Константы
|
|
25
22
|
|
|
@@ -29,11 +26,10 @@
|
|
|
29
26
|
|
|
30
27
|
| Ключ | Тип | Смысл |
|
|
31
28
|
| ------------ | -------- | ------------------------------------ |
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `VIEW_PROPS` | `string` | Значение по умолчанию: "VIEW_PROPS". |
|
|
29
|
+
| `ZINDEX` | `number` | Значение по умолчанию: 2000. |
|
|
30
|
+
| `TRANSITION` | `number` | Значение по умолчанию: 300. |
|
|
31
|
+
| `LOC_LABEL` | `string` | Метка локализации view (`history`). |
|
|
32
|
+
| `VIEW_PROPS` | `object` | Раскладка экрана, строк и кнопки закрытия. |
|
|
37
33
|
|
|
38
34
|
## Настройки
|
|
39
35
|
|
|
@@ -43,34 +39,21 @@
|
|
|
43
39
|
|
|
44
40
|
| Модуль | Зона ответственности |
|
|
45
41
|
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
46
|
-
| `history.controller` | SHOW/HIDE/CLICK/STATE_UPDATE/UPDATE_FAST; перед SHOW резолвит тексты строк (`TEXT.REPLACE`). Для `locKey` — через `PARAMS.
|
|
42
|
+
| `history.controller` | SHOW/HIDE/CLICK/STATE_UPDATE/UPDATE_FAST; перед SHOW резолвит тексты строк (`TEXT.REPLACE`). Для `locKey` — через `PARAMS.HISTORY_VIEW.LOC_LABEL` (локализация view), иначе через label сценария. Пустой `controls` на `ZINDEX`, чтобы стопорить слои ниже. |
|
|
47
43
|
| `history.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CLICK` по `currentArrowVerticalItem`; зеркалит `STATE_UPDATE`; PUSH/POP на SHOW/HIDE. |
|
|
48
44
|
| `history.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по записям журнала; PUSH/POP controls на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
|
|
49
45
|
| `history.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
50
46
|
| `history.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` → `HIDE` с `{ isForce: true }` (`IS_STATE_CLEAR_ENABLED = false`). |
|
|
51
|
-
| `history` | `MEMORY.REG` в `setup`; ADD, GET, LOAD, BACK, …. |
|
|
52
47
|
| `history.view` | Подмодуль `view` плагина. |
|
|
53
48
|
|
|
54
|
-
## Compatibility
|
|
55
|
-
|
|
56
|
-
### `compatibility/scenario.choose/views.screens.history/`
|
|
57
|
-
|
|
58
|
-
Пакет: `@vnejs/compatibility.scenario.choose-with-views.screens.history`
|
|
59
|
-
|
|
60
|
-
На `CHOOSE.OPTION_BEFORE_REG` добавляет в историю запись `{ locKey: "choice" }`. Перевод — ключ `choice` в `history.json` (например «Выбор...»).
|
|
61
|
-
|
|
62
49
|
## Близкие плагины
|
|
63
50
|
|
|
64
51
|
### plugins/core/
|
|
65
52
|
|
|
66
53
|
- [logs.md](../core/logs.md) — `LOGS`: emitLog
|
|
67
|
-
- [memory.md](../core/memory.md) — `MEMORY`: EVENTS.REG, EVENTS.SET, EVENTS.KEYS, EVENTS.GET
|
|
68
|
-
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.LABEL_GET
|
|
69
|
-
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.GET, EVENTS.LOAD
|
|
70
|
-
- [vendors.md](../core/vendors.md) — `VENDORS`: emitClone, EVENTS.UID
|
|
71
54
|
|
|
72
55
|
### Остальные
|
|
73
56
|
|
|
57
|
+
- [scenario/history.md](../scenario/history.md) — `HISTORY`: `GET` / `KEYS` / `LOAD`; запись журнала и `BACK`
|
|
74
58
|
- [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU, CONST.BUTTONS.ARROW_UP, CONST.BUTTONS.ARROW_BOTTOM, CONST.BUTTONS.ACCEPT, CONST.BUTTONS.INTERACT
|
|
75
59
|
- [text.md](../text/text.md) — `TEXT`: EVENTS.REPLACE
|
|
76
|
-
- [choose.md](../scenario/choose.md) — `CHOOSE`: связка через compatibility выше (`OPTION_BEFORE_REG`)
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
| | |
|
|
4
4
|
| -------------- | ------------------------------------------------- |
|
|
5
5
|
| Тип | `module` (`$`) |
|
|
6
|
-
| Сигнатура | `$ pause`
|
|
7
|
-
| Actions / args |
|
|
6
|
+
| Сигнатура | `$ pause [time]` |
|
|
7
|
+
| Actions / args | необязательный `time` (мс) |
|
|
8
8
|
| Plugin doc | [scenario/pause.md](../plugins/scenario/pause.md) |
|
|
9
9
|
|
|
10
10
|
## Примеры
|
|
11
11
|
|
|
12
12
|
```vne
|
|
13
13
|
$ pause
|
|
14
|
+
$ pause 300
|
|
14
15
|
```
|
|
15
16
|
|
|
16
17
|
Source of truth: `SCENARIO_COMMANDS` в соответствующем `contracts/**/commands.ts`.
|