@vnejs/docs 0.2.57 → 0.2.59
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 +16 -0
- package/architecture.md +25 -22
- package/package.json +1 -1
- package/plugins/scenario/choose.md +20 -12
- package/plugins/text/text.md +32 -32
- package/plugins/views/video.md +9 -8
- package/plugins/views.scenario/interface.controls.md +4 -4
- package/plugins/views.scenario/interface.fastforward.md +4 -4
- package/plugins/views.scenario/interface.md +8 -8
- package/plugins/views.screens/credits.md +10 -10
- package/plugins/views.screens/intro.md +8 -6
- package/plugins/views.screens/mainmenu.md +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
|
|
4
4
|
|
|
5
|
+
## 0.2.59
|
|
6
|
+
|
|
7
|
+
- `views.scenario/interface.controls`, `views.scenario/interface.fastforward` — hide не сбрасывает локальный стейт (`SHOULD_CLEAR_STATE_ON_CLEANUP` = `false`). Иначе `$ interface show` после выбора публиковал `isVisible: false`, и кнопки с индикатором прокрутки оставались прозрачными. API: `InterfaceControlsController.SHOULD_CLEAR_STATE_ON_CLEANUP`, `InterfaceFastforwardController.SHOULD_CLEAR_STATE_ON_CLEANUP`.
|
|
8
|
+
- `module.controller.hide.on.controls`, `module.controller.accept`, `module.controller.interact`, `module.controller.arrows.vertical`, `module.controller.arrows.horizontal`, `module.controller.arrows.grid`, `module.controller.tabs`, `module.controller.audio` — свой `state.isShow` снят. Повторный `SHOW` / `HIDE` обрывает `ModuleController` на `GATE`; расширения больше не пропускают `POP` по локальному флагу. API: снято `state.isShow` у `ModuleControllerHideOnControlsState`, `ModuleControllerAcceptState`, `ModuleControllerInteractState`, `ModuleControllerArrowsVerticalState`, `ModuleControllerArrowsHorizontalState`, `ModuleControllerArrowsGridState`, `ModuleControllerTabsState`, `ModuleControllerAudioState`.
|
|
9
|
+
- `module.components` — `ModuleController.setShow` пишет `{ isShow }` через `EVENT_UPDATE_STATE`, затем вызывает `updateView(isForce, false)`.
|
|
10
|
+
- `module.controller.backgrounds`, `module.controller.bg`, `module.controller.preload` — подписка на `EVENT_UPDATE_STATE` (`updateState`). Свой `isShow` на `SHOW` / `HIDE` снят. `backgrounds` на `HIDE.AFTER` всегда снимает таймер ротации. API: `ModuleControllerPreload.EVENT_UPDATE_STATE`.
|
|
11
|
+
|
|
12
|
+
## 0.2.58
|
|
13
|
+
|
|
14
|
+
- `text/text` — `STATE.SET` и `STATE.CLEAR` эмитят `TEXT.EMIT` с `isKeepProcessState`, чтобы восстановление не затирало `text.process.state`. `TEXT.EMIT_END` с этим флагом не шлёт `TEXT.PROCESS_STATE` и `TEXT.EMIT_NEXT`. Сценарный `TEXT.EMIT` флаг не ставит. API: `TextEmitPayload.isKeepProcessState`, `TextEmitEndPayload.isKeepProcessState`.
|
|
15
|
+
- `scenario/choose` — у каждого открытия выбора свой `id` (`crypto.randomUUID()` на `EMIT`, `""` после закрытия). `STATE.SET` при другом открытом выборе пишет срез и шлёт `HIDE`, затем `SHOW` с `{ isForce: true }`. Смена `isShow` шлёт один `EVENTS.CHOOSE.HIDE` или `EVENTS.CHOOSE.SHOW` с `{ isForce: true }`. API: `ChoosePluginModelState.id`.
|
|
16
|
+
- `module.controller.interact` — `BUTTONS.ANY` → `EVENTS.INTERACT.EMIT`; после показа `EVENTS.INTERACT.PUSH` с `onInteract`, перед скрытием `EVENTS.INTERACT.POP`; controls PUSH/POP на `SHOW.CONTROLS` / `HIDE.CONTROLS`. API: `ModuleControllerInteract.onInteract`, `ModuleControllerInteract.EVENT_SHOW`, `ModuleControllerInteract.EVENT_HIDE`, `ModuleControllerInteract.CONTROLS_ZINDEX`, `ModuleControllerInteract.CONTROLS_CHECK_NEXT`.
|
|
17
|
+
- `views/video` — `BUTTONS.ANY` и `INTERACT.PUSH` / `POP` в `video.controller.interact` на `@vnejs/module.controller.interact`; `onInteract` возвращает промис `EVENTS.VIDEO.HIDE`. `video.controller` на `SHOW.BEFORE` эмитит `EVENTS.INTERFACE.TEXT_HIDE`, на `HIDE.AFTER` — `EVENTS.VIDEO.SET_SRC` и `EVENTS.SCENARIO.NEXT`.
|
|
18
|
+
- `views.screens/intro` — `BUTTONS.ANY` и `INTERACT.PUSH` / `POP` в `intro.controller.interact` на `@vnejs/module.controller.interact`; `onInteract` → `EVENTS.INTRO.INTERACT`.
|
|
19
|
+
- `views.screens/credits` — `credits.controller.accept` заменён на `credits.controller.interact` на `@vnejs/module.controller.interact`; `onInteract` → `EVENTS.CREDITS.HIDE`. Снято `EVENTS.CREDITS.ACCEPT`.
|
|
20
|
+
|
|
5
21
|
## 0.2.57
|
|
6
22
|
|
|
7
23
|
- `module.controller.arrows.horizontal` — кнопки зовут переопределяемые `onArrowLeft` / `onArrowRight` (по умолчанию `decCurrentItem` / `incCurrentItem`). Хук может вернуть `Promise`. `getMaxCurrentItem` больше не abstract, по умолчанию `0`. `EVENT_UPDATE_STATE` сливает partial в стейт модуля. API: `ModuleControllerArrowsHorizontal.onArrowLeft`, `ModuleControllerArrowsHorizontal.onArrowRight`, `ModuleControllerArrowsHorizontal.getMaxCurrentItem`.
|
package/architecture.md
CHANGED
|
@@ -137,6 +137,7 @@ flowchart TD
|
|
|
137
137
|
MCB["@vnejs/module.controller.backgrounds"]
|
|
138
138
|
MCBG["@vnejs/module.controller.bg"]
|
|
139
139
|
MCAC["@vnejs/module.controller.accept"]
|
|
140
|
+
MCIN["@vnejs/module.controller.interact"]
|
|
140
141
|
MCAV["@vnejs/module.controller.arrows.vertical"]
|
|
141
142
|
MCAH["@vnejs/module.controller.arrows.horizontal"]
|
|
142
143
|
MCAG["@vnejs/module.controller.arrows.grid"]
|
|
@@ -156,6 +157,7 @@ flowchart TD
|
|
|
156
157
|
MC --> MCB
|
|
157
158
|
MC --> MCBG
|
|
158
159
|
MC --> MCAC
|
|
160
|
+
MC --> MCIN
|
|
159
161
|
MC --> MCAV
|
|
160
162
|
MC --> MCAH
|
|
161
163
|
MC --> MCAG
|
|
@@ -166,28 +168,29 @@ flowchart TD
|
|
|
166
168
|
MCO --> ML
|
|
167
169
|
```
|
|
168
170
|
|
|
169
|
-
| Пакет | Назначение
|
|
170
|
-
| ------------------------------------------------ |
|
|
171
|
-
| **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle
|
|
172
|
-
| **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам**
|
|
173
|
-
| **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers
|
|
174
|
-
| **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`)
|
|
175
|
-
| **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls. SHOW
|
|
176
|
-
| **`@vnejs/module.layer`** | Canvas layers: controller, image, sprite, text, video, props, view
|
|
177
|
-
| **`@vnejs/module.audio`** | База для audio-плагинов scenario-слоёв (`music` / `sound` / …)
|
|
178
|
-
| **`@vnejs/module.controller.audio`** | Overlay-BGM для view-экранов: pause global / play `view` / resume на `SHOW.AFTER` / `HIDE.AFTER` / PRELOAD
|
|
179
|
-
| **`@vnejs/module.controller.tabs`** | Навигация по вкладкам: TAB_PREV/TAB_NEXT → `TAB_SET`; guard + `applyTab` (`UPDATE_STATE` `{ tab }`) + abstract `onTabSet`; вкладка на `SHOW.BEFORE`, PUSH/POP на `CONTROLS`
|
|
180
|
-
| **`@vnejs/module.controller.preload`** | Предзагрузка меток и событий
|
|
181
|
-
| **`@vnejs/module.controller.backgrounds`** | Ротация списка фонов на `SHOW.AFTER` / таймеру / MEMORY.CLEARED
|
|
182
|
-
| **`@vnejs/module.controller.bg`** | Статичный фон экрана: `SHOW.BEFORE` пишет `bgSrc` через `UPDATE_STATE`; `isShow`
|
|
183
|
-
| **`@vnejs/module.controller.accept`** | ACCEPT / INTERACT → событие ACCEPT плагина; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS`
|
|
184
|
-
| **`@vnejs/module.controller.
|
|
185
|
-
| **`@vnejs/module.controller.arrows.
|
|
186
|
-
| **`@vnejs/module.controller.arrows.
|
|
187
|
-
| **`@vnejs/module.controller.
|
|
188
|
-
| **`@vnejs/module.controller.
|
|
189
|
-
| **`@vnejs/module.controller.hide.on.
|
|
190
|
-
| **`@vnejs/module.
|
|
171
|
+
| Пакет | Назначение |
|
|
172
|
+
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
173
|
+
| **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle |
|
|
174
|
+
| **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам** |
|
|
175
|
+
| **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers |
|
|
176
|
+
| **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`) |
|
|
177
|
+
| **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls. `SHOW`: `GATE` `-200`, `BEFORE` `-100`, `MAIN` `0`, `CONTROLS` `100`, `AFTER` `200`, `CLEANUP` `300`. `HIDE`: `GATE` `-300`, `CONTROLS` `-200`, `BEFORE` `-100`, `MAIN` `0`, `AFTER` `100`, `CLEANUP` `200`. `setShow` эмитит `UPDATE_STATE` `{ isShow }`, затем `updateView(isForce, false)`. `UPDATE_FAST`, `EXTERNAL_UPDATE` (`isShow` → `updateViewFast`) |
|
|
178
|
+
| **`@vnejs/module.layer`** | Canvas layers: controller, image, sprite, text, video, props, view |
|
|
179
|
+
| **`@vnejs/module.audio`** | База для audio-плагинов scenario-слоёв (`music` / `sound` / …) |
|
|
180
|
+
| **`@vnejs/module.controller.audio`** | Overlay-BGM для view-экранов: pause global / play `view` / resume на `SHOW.AFTER` / `HIDE.AFTER` / PRELOAD |
|
|
181
|
+
| **`@vnejs/module.controller.tabs`** | Навигация по вкладкам: TAB_PREV/TAB_NEXT → `TAB_SET`; guard + `applyTab` (`UPDATE_STATE` `{ tab }`) + abstract `onTabSet`; вкладка на `SHOW.BEFORE`, PUSH/POP на `CONTROLS` |
|
|
182
|
+
| **`@vnejs/module.controller.preload`** | Предзагрузка меток и событий на `SHOW.BEFORE` (эмитит PRELOAD) и по PRELOAD. `isShow` из `UPDATE_STATE`; `MEMORY.CLEARED` — только при `isShow`. События задаёт плагин (`EVENT_SHOW` / `EVENT_HIDE` / `EVENT_PRELOAD` / `EVENT_UPDATE_STATE`) |
|
|
183
|
+
| **`@vnejs/module.controller.backgrounds`** | Ротация списка фонов на `SHOW.AFTER` / таймеру / `MEMORY.CLEARED` при `isShow` из `UPDATE_STATE`. Таймер на `HIDE.AFTER` снимается всегда. События и список задаёт плагин |
|
|
184
|
+
| **`@vnejs/module.controller.bg`** | Статичный фон экрана: `SHOW.BEFORE` пишет `bgSrc` через `UPDATE_STATE`; `isShow` приходит из `UPDATE_STATE`. Опционально PRELOAD / start / STATE.CLEAR; `MEMORY.CLEARED` — preload и/или refresh при `isShow` |
|
|
185
|
+
| **`@vnejs/module.controller.accept`** | ACCEPT / INTERACT → событие ACCEPT плагина; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
|
|
186
|
+
| **`@vnejs/module.controller.interact`** | `BUTTONS.ANY` → `INTERACT.EMIT`; после показа `INTERACT.PUSH` (`onInteract`), перед скрытием `INTERACT.POP`; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
|
|
187
|
+
| **`@vnejs/module.controller.arrows.vertical`** | ARROW_UP / ARROW_BOTTOM по видимым пунктам; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS`; индекс через `UPDATE_STATE` |
|
|
188
|
+
| **`@vnejs/module.controller.arrows.horizontal`** | ARROW_LEFT / ARROW_RIGHT по пунктам; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS`; индекс через `UPDATE_STATE` |
|
|
189
|
+
| **`@vnejs/module.controller.arrows.grid`** | Четыре стрелки по сетке; `GRID_NEXT` / `GRID_PREV` на краю; PUSH/POP на `SHOW.CONTROLS` / `HIDE.CONTROLS`; `GRID_UPDATE_ITEMS` без payload, meta через `UPDATE_STATE` |
|
|
190
|
+
| **`@vnejs/module.controller.pages`** | Пагинация: `PAGE_SET` / `PAGE_NEXT` / `PAGE_PREV` → `setPage` → `UPDATE_STATE` (`pageIndex`) + abstract `applyPage` + `UPDATE_FAST` |
|
|
191
|
+
| **`@vnejs/module.controller.hide.on.state`** | STATE.SET / STATE.CLEAR → emit HIDE плагина (`isForce` задаёт наследник) |
|
|
192
|
+
| **`@vnejs/module.controller.hide.on.controls`** | BACK / MENU / GAMEMENU → emit HIDE плагина; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
|
|
193
|
+
| **`@vnejs/module.scales.common`** | База для scales / RPG-модулей |
|
|
191
194
|
|
|
192
195
|
### Принципы
|
|
193
196
|
|
package/package.json
CHANGED
|
@@ -57,20 +57,28 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
57
57
|
|
|
58
58
|
Нет.
|
|
59
59
|
|
|
60
|
+
## Стейт
|
|
61
|
+
|
|
62
|
+
`globalState.choose`: `options`, `args`, `isShow`, `id`.
|
|
63
|
+
|
|
64
|
+
`id` — экземпляр открытия. `crypto.randomUUID()` на `EMIT` (в том числе `$ choose repeat`), `""` после закрытия. В сейв и снапшот истории попадает вместе со стейтом. В сценарий не выводится.
|
|
65
|
+
|
|
66
|
+
`STATE.SET` не меняет стейт, если совпали `isShow` и `id`. Другой открытый выбор (`isShow: true`, другой `id`): запись среза, затем `HIDE` и `SHOW` с `{ isForce: true }`, чтобы view заново прочитал опции. Смена видимости — один `SHOW` или `HIDE` с `{ isForce: true }`. Пока выбор скрыт, другой срез только записывается в стейт.
|
|
67
|
+
|
|
60
68
|
## Модули
|
|
61
69
|
|
|
62
|
-
| Модуль | Зона ответственности
|
|
63
|
-
| ------------------------ |
|
|
64
|
-
| `choose` | State
|
|
65
|
-
| `choose.emit` | Обрабатывает `EMIT` (→ `STATE_UPDATE` + `SHOW` или `SKIP`).
|
|
66
|
-
| `choose.option` | Обрабатывает `OPTION`.
|
|
67
|
-
| `choose.skip` | Обрабатывает `SKIP` через `getBlockSkipShift`.
|
|
68
|
-
| `choose.logs` | Логирование `EMIT` / `OPTION` / `SKIP` / `SHOW` / `HIDE`.
|
|
69
|
-
| `choose.replace` | Реестр обработчиков `OPTION_REPLACE_REG`; наследник `@vnejs/module.replace`.
|
|
70
|
-
| `choose.exec` | Реестр обработчиков EXEC_REG / EXEC_GET.
|
|
71
|
-
| `choose.scenario` | Регистрация `% choose`: сбор option-строк через `getBlockOptions`, emit `EMIT`.
|
|
72
|
-
| `choose.scenario.option` | Регистрация `% choose.option`: skip невыбранных веток.
|
|
73
|
-
| `choose.scenario.module` | Регистрация `$ choose`: action `repeat`.
|
|
70
|
+
| Модуль | Зона ответственности |
|
|
71
|
+
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
72
|
+
| `choose` | State (`id`, `options`, `args`, `isShow`): `STATE_UPDATE`, `STATE.SET` / `STATE.CLEAR` (→ `SHOW` / `HIDE`; смена открытого выбора — `HIDE`, затем `SHOW`). |
|
|
73
|
+
| `choose.emit` | Обрабатывает `EMIT` (→ `STATE_UPDATE` + `SHOW` или `SKIP`). |
|
|
74
|
+
| `choose.option` | Обрабатывает `OPTION`. |
|
|
75
|
+
| `choose.skip` | Обрабатывает `SKIP` через `getBlockSkipShift`. |
|
|
76
|
+
| `choose.logs` | Логирование `EMIT` / `OPTION` / `SKIP` / `SHOW` / `HIDE`. |
|
|
77
|
+
| `choose.replace` | Реестр обработчиков `OPTION_REPLACE_REG`; наследник `@vnejs/module.replace`. |
|
|
78
|
+
| `choose.exec` | Реестр обработчиков EXEC_REG / EXEC_GET. |
|
|
79
|
+
| `choose.scenario` | Регистрация `% choose`: сбор option-строк через `getBlockOptions`, emit `EMIT`. |
|
|
80
|
+
| `choose.scenario.option` | Регистрация `% choose.option`: skip невыбранных веток. |
|
|
81
|
+
| `choose.scenario.module` | Регистрация `$ choose`: action `repeat`. |
|
|
74
82
|
|
|
75
83
|
## Compatibility
|
|
76
84
|
|
package/plugins/text/text.md
CHANGED
|
@@ -8,25 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.text`.
|
|
10
10
|
|
|
11
|
-
| Ключ | Строка | Смысл
|
|
12
|
-
| --------------------- | ------------------------------ |
|
|
13
|
-
| `EMIT` | `vne:text:emit` | Начать вывод: подготовка токенов, обновление state, запуск process. |
|
|
14
|
-
| `EMIT_END` | `vne:text:emit_end` | Завершить текущий шаг; при autonext перейти к следующему.
|
|
15
|
-
| `EMIT_NEXT` | `vne:text:emit_next` | Перейти к следующему шагу emit (подписки с `priority` на Observer).
|
|
16
|
-
| `EMIT_BEFORE` | `vne:text:emit_before` | Хук перед основным emit (подписки с `priority` на Observer).
|
|
17
|
-
| `EMIT_PROCESS` | `vne:text:emit_process` | Запустить пошаговый процесс вывода.
|
|
18
|
-
| `PREPARE_TOKENS` | `vne:text:prepare_tokens` | Подготовить токены или промежуточные данные.
|
|
19
|
-
| `PROCESS_CANCEL` | `vne:text:process_cancel` | Отменить текущий процесс.
|
|
20
|
-
| `PROCESS_STATE` | `vne:text:process_state` | Изменить состояние процесса.
|
|
21
|
-
| `CHANGED` | `vne:text:changed` | Зафиксировать изменение состояния.
|
|
22
|
-
| `SPEAKER_CHANGED` | `vne:text:speaker_changed` | Зафиксировать смену текущего спикера.
|
|
23
|
-
| `SPEAKER_INFO_UPDATE` | `vne:text:speaker_info_update` | Обновить метаданные спикера (цвет, имя, opacity).
|
|
24
|
-
| `STATE_UPDATE` | `vne:text:state_update` | Обновить накопленное состояние модуля.
|
|
25
|
-
| `STATE_CHANGED` | `vne:text:state_changed` | Сигнал об изменении накопленного состояния.
|
|
26
|
-
| `RECALC` | `vne:text:recalc` | Запросить данные у обработчиков и продолжить цепочку.
|
|
27
|
-
| `RECALC_DONE` | `vne:text:recalc_done` | Завершить операцию `RECALC`.
|
|
28
|
-
| `REPLACE` | `vne:text:replace` | Заменить текущее значение или контент.
|
|
29
|
-
| `REPLACE_REG` | `vne:text:replace_reg` | Зарегистрировать обработчик `REPLACE`.
|
|
11
|
+
| Ключ | Строка | Смысл |
|
|
12
|
+
| --------------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| `EMIT` | `vne:text:emit` | Начать вывод: подготовка токенов, обновление state, запуск process. С `isKeepProcessState` после `STATE_CHANGED` сразу `EMIT_END`. |
|
|
14
|
+
| `EMIT_END` | `vne:text:emit_end` | Завершить текущий шаг; при autonext перейти к следующему. С `isKeepProcessState` не шлёт `PROCESS_STATE` и `EMIT_NEXT`. |
|
|
15
|
+
| `EMIT_NEXT` | `vne:text:emit_next` | Перейти к следующему шагу emit (подписки с `priority` на Observer). |
|
|
16
|
+
| `EMIT_BEFORE` | `vne:text:emit_before` | Хук перед основным emit (подписки с `priority` на Observer). |
|
|
17
|
+
| `EMIT_PROCESS` | `vne:text:emit_process` | Запустить пошаговый процесс вывода. |
|
|
18
|
+
| `PREPARE_TOKENS` | `vne:text:prepare_tokens` | Подготовить токены или промежуточные данные. |
|
|
19
|
+
| `PROCESS_CANCEL` | `vne:text:process_cancel` | Отменить текущий процесс. |
|
|
20
|
+
| `PROCESS_STATE` | `vne:text:process_state` | Изменить состояние процесса. |
|
|
21
|
+
| `CHANGED` | `vne:text:changed` | Зафиксировать изменение состояния. |
|
|
22
|
+
| `SPEAKER_CHANGED` | `vne:text:speaker_changed` | Зафиксировать смену текущего спикера. |
|
|
23
|
+
| `SPEAKER_INFO_UPDATE` | `vne:text:speaker_info_update` | Обновить метаданные спикера (цвет, имя, opacity). |
|
|
24
|
+
| `STATE_UPDATE` | `vne:text:state_update` | Обновить накопленное состояние модуля. |
|
|
25
|
+
| `STATE_CHANGED` | `vne:text:state_changed` | Сигнал об изменении накопленного состояния. |
|
|
26
|
+
| `RECALC` | `vne:text:recalc` | Запросить данные у обработчиков и продолжить цепочку. |
|
|
27
|
+
| `RECALC_DONE` | `vne:text:recalc_done` | Завершить операцию `RECALC`. |
|
|
28
|
+
| `REPLACE` | `vne:text:replace` | Заменить текущее значение или контент. |
|
|
29
|
+
| `REPLACE_REG` | `vne:text:replace_reg` | Зарегистрировать обработчик `REPLACE`. |
|
|
30
30
|
|
|
31
31
|
## Константы
|
|
32
32
|
|
|
@@ -48,19 +48,19 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
48
48
|
|
|
49
49
|
## Модули
|
|
50
50
|
|
|
51
|
-
| Модуль | Зона ответственности
|
|
52
|
-
| ---------------------- |
|
|
53
|
-
| `text.emit.end` | Завершение emit и переход к next или финальному state.
|
|
54
|
-
| `text.emit.next` | На `EMIT_NEXT`: `PROCESS_STATE` NEXT, затем `onTextEmitNext` → `emit SCENARIO.NEXT` (`priority` 999999).
|
|
55
|
-
| `text.emit` | Точка входа emit: подготовка и запуск process.
|
|
56
|
-
| `text.exec` | Подмодуль `exec` плагина.
|
|
57
|
-
| `text.prepare.tokens` | Токенизация текста перед отображением.
|
|
58
|
-
| `text.process.state` | В `postinject` — `shared.textProcessSkipSources`; PROCESS_STATE, SET, CLEAR.
|
|
59
|
-
| `text.process.enabled` | Подмодуль `process.enabled` плагина.
|
|
60
|
-
| `text.recalc` | Пересчёт производного состояния текста.
|
|
61
|
-
| `text.replace` | Реестр обработчиков REPLACE_REG.
|
|
62
|
-
| `text.speaker` | SPEAKER_INFO_UPDATE, CLEAR, SET; на `EMIT_BEFORE` (`priority` 100) — speaker.
|
|
63
|
-
| `text` | Обрабатывает STATE_UPDATE, STATE_CHANGED, CLEAR, SET.
|
|
51
|
+
| Модуль | Зона ответственности |
|
|
52
|
+
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
53
|
+
| `text.emit.end` | Завершение emit и переход к next или финальному state. `isKeepProcessState` выходит без `PROCESS_STATE` и `EMIT_NEXT`. |
|
|
54
|
+
| `text.emit.next` | На `EMIT_NEXT`: `PROCESS_STATE` NEXT, затем `onTextEmitNext` → `emit SCENARIO.NEXT` (`priority` 999999). |
|
|
55
|
+
| `text.emit` | Точка входа emit: подготовка и запуск process. `isKeepProcessState` после `STATE_CHANGED` сразу `EMIT_END`. |
|
|
56
|
+
| `text.exec` | Подмодуль `exec` плагина. |
|
|
57
|
+
| `text.prepare.tokens` | Токенизация текста перед отображением. |
|
|
58
|
+
| `text.process.state` | В `postinject` — `shared.textProcessSkipSources`; PROCESS_STATE, SET, CLEAR. |
|
|
59
|
+
| `text.process.enabled` | Подмодуль `process.enabled` плагина. |
|
|
60
|
+
| `text.recalc` | Пересчёт производного состояния текста. |
|
|
61
|
+
| `text.replace` | Реестр обработчиков REPLACE_REG. |
|
|
62
|
+
| `text.speaker` | SPEAKER_INFO_UPDATE, CLEAR, SET; на `EMIT_BEFORE` (`priority` 100) — speaker. |
|
|
63
|
+
| `text` | Обрабатывает STATE_UPDATE, STATE_CHANGED, CLEAR, SET. `STATE.SET` и `STATE.CLEAR` передают `isKeepProcessState`. |
|
|
64
64
|
|
|
65
65
|
## Compatibility
|
|
66
66
|
|
package/plugins/views/video.md
CHANGED
|
@@ -40,19 +40,20 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
40
40
|
|
|
41
41
|
## Модули
|
|
42
42
|
|
|
43
|
-
| Модуль
|
|
44
|
-
|
|
|
45
|
-
| `video.controller`
|
|
46
|
-
| `video.controller.
|
|
47
|
-
| `video.
|
|
48
|
-
| `video`
|
|
49
|
-
| `video
|
|
43
|
+
| Модуль | Зона ответственности |
|
|
44
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
45
|
+
| `video.controller` | SHOW/HIDE; `SHOW.BEFORE` → `INTERFACE.TEXT_HIDE`; `HIDE.AFTER` → `SET_SRC` и `SCENARIO.NEXT`. |
|
|
46
|
+
| `video.controller.interact` | Наследует `@vnejs/module.controller.interact`: `BUTTONS.ANY` → `INTERACT.EMIT`; `onInteract` возвращает промис `VIDEO.HIDE`; `CONTROLS_CHECK_NEXT = false`. |
|
|
47
|
+
| `video.controller.src` | `SET_SRC` → `UPDATE_STATE` `{ src }` + `UPDATE_FAST`. |
|
|
48
|
+
| `video.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: только `STATE.CLEAR` → `HIDE` с `{ isForce: true }` (`IS_STATE_SET_ENABLED = false`). |
|
|
49
|
+
| `video` | Обрабатывает HIDE, PLAY, LOAD, GET, …. |
|
|
50
|
+
| `video.view` | Подмодуль `view` плагина. |
|
|
50
51
|
|
|
51
52
|
## Близкие плагины
|
|
52
53
|
|
|
53
54
|
### plugins/core/
|
|
54
55
|
|
|
55
|
-
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT, EVENTS.PUSH
|
|
56
|
+
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT, EVENTS.PUSH, EVENTS.POP
|
|
56
57
|
- [media.md](../core/media.md) — `MEDIA`: EVENTS.LOAD, EVENTS.GET, CONST.PRIORITIES.BACKGROUND, CONST.TYPES.VIDEO
|
|
57
58
|
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINE_LOAD_REG
|
|
58
59
|
- [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
|
|
@@ -37,10 +37,10 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
37
37
|
|
|
38
38
|
## Модули
|
|
39
39
|
|
|
40
|
-
| Модуль | Зона ответственности
|
|
41
|
-
| ------------------------------- |
|
|
42
|
-
| `interface.controls.controller` | Обрабатывает UPDATE, VISIBLE, INTERACT, SHOW, …. `CONTROLS_EXTENSIONS` сливается в `CONTROLS` в `ModuleController.init`. |
|
|
43
|
-
| `interface.controls.view` | Подмодуль `controls.view` плагина.
|
|
40
|
+
| Модуль | Зона ответственности |
|
|
41
|
+
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| `interface.controls.controller` | Обрабатывает UPDATE, VISIBLE, INTERACT, SHOW, …. `CONTROLS_EXTENSIONS` сливается в `CONTROLS` в `ModuleController.init`. `SHOULD_CLEAR_STATE_ON_CLEANUP` — `false`: hide не сбрасывает `isVisible` и `view`, чтобы следующий `$ interface show` снова показал кнопки. |
|
|
43
|
+
| `interface.controls.view` | Подмодуль `controls.view` плагина. |
|
|
44
44
|
|
|
45
45
|
## Близкие плагины
|
|
46
46
|
|
|
@@ -35,10 +35,10 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
35
35
|
|
|
36
36
|
## Модули
|
|
37
37
|
|
|
38
|
-
| Модуль | Зона ответственности
|
|
39
|
-
| ---------------------------------- |
|
|
40
|
-
| `interface.fastforward.controller` | Обрабатывает UPDATE, TOGGLE, START, STOP, …. |
|
|
41
|
-
| `interface.fastforward.view` | Подмодуль `fastforward.view` плагина.
|
|
38
|
+
| Модуль | Зона ответственности |
|
|
39
|
+
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
40
|
+
| `interface.fastforward.controller` | Обрабатывает UPDATE, TOGGLE, START, STOP, …. `SHOULD_CLEAR_STATE_ON_CLEANUP` — `false`: hide не сбрасывает `isVisible` и `view`, чтобы следующий `$ interface show` снова показал кнопку. |
|
|
41
|
+
| `interface.fastforward.view` | Подмодуль `fastforward.view` плагина. |
|
|
42
42
|
|
|
43
43
|
## Близкие плагины
|
|
44
44
|
|
|
@@ -54,14 +54,14 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
54
54
|
|
|
55
55
|
## Модули
|
|
56
56
|
|
|
57
|
-
| Модуль | Зона ответственности
|
|
58
|
-
| ----------------------------- |
|
|
59
|
-
| `interface.controller` | Обрабатывает VIEW_UPDATE, VIEW_SHOW, VIEW_HIDE, …. Пустой `controls` на `ZINDEX`; `CONTROLS_UNVISIBLE` при скрытии слоя.
|
|
60
|
-
| `interface.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `INTERFACE.INTERACT`; видимый слой → `INTERACT.EMIT`, скрытый → `INTERFACE.VISIBLE`; PUSH/POP на VIEW_SHOW/HIDE.
|
|
61
|
-
| `interface` | STATE.SET / STATE.CLEAR → STATE_CHANGED.
|
|
62
|
-
| `interface.scenario` | `$ interface`: `LINE_EXEC_REG` → SHOW / HIDE / VIEW по `CONST.INTERFACE.EXEC_ACTIONS`.
|
|
63
|
-
| `interface.actions` | SHOW / HIDE / VISIBLE / TEXT_HIDE / VIEW через `globalState.interface`.
|
|
64
|
-
| `interface.view` | Подмодуль `view` плагина.
|
|
57
|
+
| Модуль | Зона ответственности |
|
|
58
|
+
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
59
|
+
| `interface.controller` | Обрабатывает VIEW_UPDATE, VIEW_SHOW, VIEW_HIDE, …. Пустой `controls` на `ZINDEX`; `CONTROLS_UNVISIBLE` при скрытии слоя. `SHOULD_CLEAR_STATE_ON_CLEANUP` — `false`, поэтому текст и задник переживают hide. |
|
|
60
|
+
| `interface.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `INTERFACE.INTERACT`; видимый слой → `INTERACT.EMIT`, скрытый → `INTERFACE.VISIBLE`; PUSH/POP на VIEW_SHOW/HIDE. |
|
|
61
|
+
| `interface` | STATE.SET / STATE.CLEAR → STATE_CHANGED. |
|
|
62
|
+
| `interface.scenario` | `$ interface`: `LINE_EXEC_REG` → SHOW / HIDE / VIEW по `CONST.INTERFACE.EXEC_ACTIONS`. |
|
|
63
|
+
| `interface.actions` | SHOW / HIDE / VISIBLE / TEXT_HIDE / VIEW через `globalState.interface`. |
|
|
64
|
+
| `interface.view` | Подмодуль `view` плагина. |
|
|
65
65
|
|
|
66
66
|
## Compatibility
|
|
67
67
|
|
|
@@ -16,7 +16,6 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
16
16
|
| `UPDATE_FAST` | `vne:credits:update_fast` | Быстрое обновление отображения. |
|
|
17
17
|
| `UPDATE_FORCE` | `vne:credits:update_force` | Перерисовать view с `isForce`, стейт не меняет. |
|
|
18
18
|
| `UPDATE_STATE` | `vne:credits:update_state` | Слить partial в стейт контроллера. |
|
|
19
|
-
| `ACCEPT` | `vne:credits:accept` | ACCEPT / INTERACT → затем `HIDE`. |
|
|
20
19
|
|
|
21
20
|
## Константы
|
|
22
21
|
|
|
@@ -34,22 +33,23 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
34
33
|
|
|
35
34
|
## Модули
|
|
36
35
|
|
|
37
|
-
| Модуль
|
|
38
|
-
|
|
|
39
|
-
| `credits.controller`
|
|
40
|
-
| `credits.controller.
|
|
41
|
-
| `credits.hide.controls`
|
|
42
|
-
| `credits.hide.state`
|
|
43
|
-
| `credits`
|
|
44
|
-
| `credits.view`
|
|
36
|
+
| Модуль | Зона ответственности |
|
|
37
|
+
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
38
|
+
| `credits.controller` | SHOW/HIDE по фазам `CONST.COMPONENTS.LIFECYCLE_PRIORITY`; пустой `controls` на `ZINDEX`; на `HIDE.AFTER` — `SCENARIO.NEXT`. |
|
|
39
|
+
| `credits.controller.interact` | Наследует `@vnejs/module.controller.interact`: `BUTTONS.ANY` → `INTERACT.EMIT`; `onInteract` → `CREDITS.HIDE`. |
|
|
40
|
+
| `credits.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
41
|
+
| `credits.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
42
|
+
| `credits` | Модуль `credits`. |
|
|
43
|
+
| `credits.view` | Подмодуль `view` плагина. |
|
|
45
44
|
|
|
46
45
|
## Близкие плагины
|
|
47
46
|
|
|
48
47
|
### plugins/core/
|
|
49
48
|
|
|
49
|
+
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT, EVENTS.PUSH, EVENTS.POP
|
|
50
50
|
- [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
|
|
51
51
|
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
|
|
52
52
|
|
|
53
53
|
### Остальные
|
|
54
54
|
|
|
55
|
-
- [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.
|
|
55
|
+
- [controls.md](../controls/controls.md) — `CONTROLS`: CONST.BUTTONS.ANY, CONST.BUTTONS.BACK, CONST.BUTTONS.MENU, CONST.BUTTONS.GAMEMENU
|
|
@@ -36,17 +36,19 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
36
36
|
|
|
37
37
|
## Модули
|
|
38
38
|
|
|
39
|
-
| Модуль
|
|
40
|
-
|
|
|
41
|
-
| `intro.controller`
|
|
42
|
-
| `intro.controller.
|
|
43
|
-
| `intro`
|
|
44
|
-
| `intro
|
|
39
|
+
| Модуль | Зона ответственности |
|
|
40
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
41
|
+
| `intro.controller` | SHOW/HIDE по фазам `CONST.COMPONENTS.LIFECYCLE_PRIORITY`; `UPDATE_STATE` / `UPDATE_FAST`. |
|
|
42
|
+
| `intro.controller.interact` | Наследует `@vnejs/module.controller.interact`: `BUTTONS.ANY` → `INTERACT.EMIT`; `onInteract` → `INTRO.INTERACT`; `CONTROLS_CHECK_NEXT = false`. |
|
|
43
|
+
| `intro.controller.bg` | Наследует `@vnejs/module.controller.bg`: `SHOW` + `LIFECYCLE_PRIORITY.SHOW.BEFORE` → `bgSrc`; `start` preload. |
|
|
44
|
+
| `intro` | Связь со сценарием: шаг next после завершения действия. |
|
|
45
|
+
| `intro.view` | Подмодуль `view` плагина. |
|
|
45
46
|
|
|
46
47
|
## Близкие плагины
|
|
47
48
|
|
|
48
49
|
### plugins/core/
|
|
49
50
|
|
|
51
|
+
- [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT, EVENTS.PUSH, EVENTS.POP
|
|
50
52
|
- [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
|
|
51
53
|
- [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, CONST.LINE_KEYWORDS.SKIP_IF_POSSIBLE
|
|
52
54
|
- [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
|
|
@@ -51,12 +51,12 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
51
51
|
| Модуль | Зона ответственности |
|
|
52
52
|
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
53
53
|
| `mainmenu.controller` | UPDATE, SHOW, HIDE по фазам `CONST.COMPONENTS.LIFECYCLE_PRIORITY`; на `SHOW.BEFORE` — ITEMS. Пустой `controls` на `ZINDEX`. UPDATE_STATE, UPDATE_FAST, UPDATE_FORCE. |
|
|
54
|
-
| `mainmenu.controller.bg` | Наследует `@vnejs/module.controller.bg`: начальный `bgSrc` на `SHOW` + `LIFECYCLE_PRIORITY.SHOW.BEFORE`; `start` / `STATE.CLEAR` preload. Ротацию не трогает.
|
|
54
|
+
| `mainmenu.controller.bg` | Наследует `@vnejs/module.controller.bg`: начальный `bgSrc` на `SHOW` + `LIFECYCLE_PRIORITY.SHOW.BEFORE`; `isShow` из `UPDATE_STATE`; `start` / `STATE.CLEAR` preload. Ротацию не трогает. |
|
|
55
55
|
| `mainmenu.hide` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
56
56
|
| `mainmenu.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CLICK` по `currentArrowVerticalItem`; зеркалит `UPDATE_STATE`; PUSH/POP на SHOW/HIDE. |
|
|
57
57
|
| `mainmenu.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по видимым пунктам; PUSH/POP controls на SHOW/HIDE; эмитит `UPDATE_STATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
|
|
58
|
-
| `mainmenu.backgrounds` | Наследует `@vnejs/module.controller.backgrounds`: ротация `BACKGROUNDS`, preload и таймер; эмитит `UPDATE_STATE` и `UPDATE_FAST`.
|
|
59
|
-
| `mainmenu.preload` | Наследует `@vnejs/module.controller.preload`: по SHOW / PRELOAD
|
|
58
|
+
| `mainmenu.backgrounds` | Наследует `@vnejs/module.controller.backgrounds`: ротация `BACKGROUNDS`, preload и таймер; `isShow` из `UPDATE_STATE`; эмитит `UPDATE_STATE` и `UPDATE_FAST`. Таймер снимается на `HIDE.AFTER`. |
|
|
59
|
+
| `mainmenu.preload` | Наследует `@vnejs/module.controller.preload`: по SHOW / PRELOAD грузит `PRELOAD_LABELS` и `PRELOAD_EVENTS`. `MEMORY.CLEARED` — только при `isShow` из `UPDATE_STATE`. |
|
|
60
60
|
| `mainmenu.scenario` | LINE_EXEC → SHOW, LINE_LOAD → PRELOAD. |
|
|
61
61
|
| `mainmenu` | Обрабатывает ITEMS и CLICK. |
|
|
62
62
|
| `mainmenu.view` | Подмодуль `view` плагина. |
|