@vnejs/docs 0.2.28 → 0.2.29
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 +11 -0
- package/architecture.md +6 -4
- package/package.json +1 -1
- package/plugins/core/components.md +1 -1
- package/plugins/core/logs.md +2 -2
- package/plugins/core/media.md +2 -2
- package/plugins/core/memory.md +6 -4
- package/plugins/core/scenario.md +5 -5
- package/plugins/core/settings.md +1 -1
- package/plugins/core/stack.md +23 -19
- package/plugins/core/storage.md +2 -2
- package/plugins/core/system.md +3 -4
- package/plugins/text/locs.md +1 -1
- package/plugins/text/smooth.md +1 -1
- package/plugins/vars/counters.md +6 -4
- package/plugins/views/controls.hints.md +1 -1
- package/plugins/views.scenario/interface.md +1 -1
- package/plugins/views.screens/eula.md +1 -1
- package/plugins/views.screens/history.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
|
|
4
4
|
|
|
5
|
+
## 0.2.29
|
|
6
|
+
|
|
7
|
+
- `core/memory` — `GET` / `SET` / `KEYS` больше не ждут `waitForModuleReg`. Все `MEMORY.REG` в `setup`: `scenario.label` / `line` / `lines`, `media.memory` (вместе с `#media`), `locs`, `history`. Незарегистрированный namespace: `GET` → `null`, `SET` no-op, `KEYS` → `[]`. Реестр — только `shared.memory` (создаётся в `Memory.postinject`). `GET` / `SET` / `KEYS` в `memory.store`, `CLEAR` в `memory.clear`. API: `shared.memory`.
|
|
8
|
+
- `modules_extensions/base` — в конце `inject` вызывается `postinject`, если метод есть. API: `Module.postinject()`.
|
|
9
|
+
- `packages/core`, `modules_extensions/base` — фаза `start` после всех `init` вместо `EVENTS.SYSTEM.STARTED` (`vne:system:started`). Перешли: `scenario.autostart`, `vendors.screen`, `cursor`, `cursor.view.set`, `layer.viewport`, `ratio`, `fps`, `gamepad.debug`, `electron`, `android`, `controls.hints.controller`, `interface.fastforward.controller`, mainmenu/save/intro/loading controllers, `mainmenu.socials.controller`, `gallery.controller`, `compatibility` text.smooth и canvas.layer/save. API: `Module.start()`, `window.unstartedModules`.
|
|
10
|
+
- `core/storage`, `core/settings`, `core/media`, `core/components` — провайдеры готовятся в `setup`: localforage / `shared.settings` / semaphore / `#components`. `STORAGE.INIT` и `SETTINGS.SET`/`INIT` ждут `ensureReady`. Снят `waitIsReady` / гарды `isReady` у `memory`, `media`, `mainmenu`, `logs`, `eula`, `scenario.label`, `settings.screen.controller`, `interface.fastforward.controller`. `logs` / `eula` регистрируют `SETTINGS.INIT` в `setup`. Остались `ModuleView` (`RENDER`) и `electron` (`STORAGE.CHANGED`).
|
|
11
|
+
- `packages/core`, `modules_extensions/base` — у всех модулей фаза `setup` до `init`: `inject → subscribe → setup → init → start`. Все `setup` завершаются раньше любого `init`. API: `Module.setup()`, `window.unsetupModules`.
|
|
12
|
+
- `core/stack` — перед `EMIT` / `CALL` / `JUMP` и preload jump/call на `LINE_LOAD` цепочка `PROHIBIT_REPLACE` (`isProhibited`); при запрете — `PROHIBITED` (`label`, `args`, `event` — `JUMP` / `CALL` / `EMIT` для повтора), без `LABEL_GET` и без `emitNext` на `$ stack jump/call`. `EMIT` / `JUMP` / `CALL` возвращают `false` при запрете, `true` после успешного `EMIT`. Хендлеры через `PROHIBIT_REPLACE_REG` (`return isProhibited || ownCheck`). Модуль `stack.replace`. API: `EVENTS.STACK.PROHIBIT_REPLACE`, `EVENTS.STACK.PROHIBIT_REPLACE_REG`, `EVENTS.STACK.PROHIBITED`, `CONST.STACK.LOGS_ACTIONS.PROHIBITED`, `StackProhibitReplacePayload`, `StackProhibitedPayload`.
|
|
13
|
+
- `vars/counters` — CHANGE / COMPARE в `vars.counters.handlers`; EXEC_INFO / EXEC_CHECK / EXEC_GET в `vars.counters.exec`; регистрация `LINE_EXEC` в `vars.counters.scenario` (бывший `vars.counters.exec`). События и payload без изменений.
|
|
14
|
+
- `cli/monorepo` — `run-changed` гоняет скрипты слоями графа зависимостей: внутри слоя параллельно (`--concurrency`), следующий слой ждёт предыдущий. `publish:changed:*` больше не собирает зависимый пакет, пока зависимость чистит `dist`. API: слои в dry-run / confirm; `--concurrency`, `--parallel-ms`, `--first-serial` без изменений.
|
|
15
|
+
|
|
5
16
|
## 0.2.26
|
|
6
17
|
|
|
7
18
|
- `compatibility/views.scenario.interface/text` — TEXT → INTERFACE: `CHANGED` / `SPEAKER_CHANGED` / `EMIT_BEFORE` → `TEXT_CHANGED` / `SPEAKER_CHANGED` / `SHOW`; init `shared.interfaceTextShowAllTokensOnChange`. API: `@vnejs/compatibility.views.scenario.interface-with-text`.
|
package/architecture.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
- **`Observer`** — шина событий; модули подписываются (`on`) и публикуют (`emit`) по строковым ключам.
|
|
10
10
|
- **`VNE`** — реестр, заполняемый при загрузке: `CONST`, `EVENTS`, `SETTINGS`, `PARAMS` — по namespace каждого плагина.
|
|
11
|
-
- **`VneCore`** — runtime: собирает зарегистрированные модули, инжектит зависимости и запускает lifecycle (`inject → subscribe → init`).
|
|
11
|
+
- **`VneCore`** — runtime: собирает зарегистрированные модули, инжектит зависимости и запускает lifecycle (`inject → subscribe → setup → init → start`).
|
|
12
12
|
|
|
13
13
|
Регистрация происходит **side-effect импортами** — при импорте пакета код сразу вызывает `regPlugin` или `regModule`, не дожидаясь явного вызова API.
|
|
14
14
|
|
|
@@ -263,9 +263,11 @@ flowchart LR
|
|
|
263
263
|
|
|
264
264
|
Плагин — **набор модулей** с уникальным `name`. После `new VneCore()`:
|
|
265
265
|
|
|
266
|
-
1. **`inject`** — observer, global state, shared, media.
|
|
266
|
+
1. **`inject`** — observer, global state, shared, media. В конце, если метод есть, вызывается `postinject`.
|
|
267
267
|
2. **`subscribe`** — подписки на события.
|
|
268
|
-
3. **`
|
|
268
|
+
3. **`setup`** — подготовка до `init` (все `setup` завершаются раньше любого `init`).
|
|
269
|
+
4. **`init`** — асинхронная инициализация.
|
|
270
|
+
5. **`start`** — после всех `init` (все `init` завершаются раньше любого `start`).
|
|
269
271
|
|
|
270
272
|
```mermaid
|
|
271
273
|
sequenceDiagram
|
|
@@ -503,7 +505,7 @@ flowchart TD
|
|
|
503
505
|
|
|
504
506
|
1. `bundles/` регистрирует `plugins/` и `compatibility/` в `VNE`.
|
|
505
507
|
2. `cli/` собирает сценарий в JSON и клиент в `dist/`.
|
|
506
|
-
3. `new VneCore().init()` — модули, media, `
|
|
508
|
+
3. `new VneCore().init()` — модули, media, lifecycle до `start`.
|
|
507
509
|
4. Игра живёт на событиях шины; cross-plugin связи — через `compatibility/` из `bundles/`.
|
|
508
510
|
|
|
509
511
|
---
|
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@ React/DOM-контейнер для монтирования view-компоне
|
|
|
29
29
|
|
|
30
30
|
| Модуль | Зона ответственности |
|
|
31
31
|
| ------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
32
|
-
| `components.render` |
|
|
32
|
+
| `components.render` | В `setup` создаёт `#components` в DOM и `shared.viewForceAnimationSources`; обрабатывает `RENDER`. |
|
|
33
33
|
| `components.inject` | Регистрация и последовательный вызов inject-обработчиков на `INJECT` / `INJECT_REG`. |
|
|
34
34
|
| `components.logs` | Логирование `RENDER` (результат фильтруется из ответа emit). |
|
|
35
35
|
|
package/plugins/core/logs.md
CHANGED
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
|
|
26
26
|
| Ключ | Тип | Смысл |
|
|
27
27
|
| ------------------------------ | --------- | ------------------------------------------------------------ |
|
|
28
|
-
| `ENABLED` (`vne:logs:enabled`) | `boolean` | Включено ли логирование;
|
|
28
|
+
| `ENABLED` (`vne:logs:enabled`) | `boolean` | Включено ли логирование; `SETTINGS.INIT` в `setup`. |
|
|
29
29
|
|
|
30
30
|
## Модули
|
|
31
31
|
|
|
32
32
|
| Модуль | Зона ответственности |
|
|
33
33
|
| ------ | ----------------------------------------------------------------------------- |
|
|
34
|
-
| `logs` | Очередь логов, `EMIT`/`PUSH`/`LOAD`/`CLEAR`; регистрация настройки `ENABLED`. |
|
|
34
|
+
| `logs` | Очередь логов, `EMIT`/`PUSH`/`LOAD`/`CLEAR`; регистрация настройки `ENABLED` в `setup`. |
|
|
35
35
|
|
|
36
36
|
## Близкие плагины
|
|
37
37
|
|
package/plugins/core/media.md
CHANGED
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
|
|
40
40
|
| Модуль | Зона ответственности |
|
|
41
41
|
| --------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
-
| `media.load` | Semaphore
|
|
42
|
+
| `media.load` | Semaphore в `setup`; gated load, dedup, делегирование в process/memory. Слот всегда освобождается (`finally`), даже если process reject. |
|
|
43
43
|
| `media.process` | Fetch blob и создание DOM-медиа. HTTP не-ok и timeout fetch → `ERROR_FETCH`, без `SET`. |
|
|
44
|
-
| `media.memory` |
|
|
44
|
+
| `media.memory` | В `setup`: скрытый `#media` и `MEMORY.REG` (`onAdd` / `onClear`). |
|
|
45
45
|
| `media` | Высокоуровневый get/set. `GET` возвращает `null`, если asset нет или не готов (битая картинка, error). |
|
|
46
46
|
| `media.logs` | Логирование lifecycle media. |
|
|
47
47
|
|
package/plugins/core/memory.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Пакет: `@vnejs/plugins.core.memory` · namespace: `MEMORY`
|
|
4
4
|
|
|
5
|
-
In-memory кэш с reference counting по namespace модуля; используется media, scenario и др.
|
|
5
|
+
In-memory кэш с reference counting по namespace модуля; используется media, scenario и др. Реестр namespace — `shared.memory`, создаётся в `Memory.postinject`.
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
@@ -29,9 +29,11 @@ In-memory кэш с reference counting по namespace модуля; исполь
|
|
|
29
29
|
|
|
30
30
|
## Модули
|
|
31
31
|
|
|
32
|
-
| Модуль
|
|
33
|
-
|
|
|
34
|
-
| `memory`
|
|
32
|
+
| Модуль | Зона ответственности |
|
|
33
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
34
|
+
| `memory` | `REG` и `shared.memory = {}` в `postinject`. |
|
|
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`. |
|
|
35
37
|
|
|
36
38
|
## Близкие плагины
|
|
37
39
|
|
package/plugins/core/scenario.md
CHANGED
|
@@ -39,18 +39,18 @@
|
|
|
39
39
|
|
|
40
40
|
| Поле | Тип | Смысл |
|
|
41
41
|
| ------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
-
| `shouldAutostartScenario` | `boolean` |
|
|
42
|
+
| `shouldAutostartScenario` | `boolean` | В `start` модуль `scenario.autostart` эмитит `LABEL_GET` (init) и `NEXT`, только если не `false`. В `init` ставится `true` через `??=`; другие плагины могут выставить `false`. `STATE.CLEAR` по-прежнему грузит init label в `scenario.label` без этого гейта. |
|
|
43
43
|
|
|
44
44
|
## Модули
|
|
45
45
|
|
|
46
46
|
| Модуль | Зона ответственности |
|
|
47
47
|
| -------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
48
48
|
| `scenario` | Главный цикл `NEXT`, exec строк, sync state. |
|
|
49
|
-
| `scenario.autostart` | Дефолт `shared.shouldAutostartScenario`;
|
|
49
|
+
| `scenario.autostart` | Дефолт `shared.shouldAutostartScenario`; в `start` — init label + `emitNext` при включённом флаге. |
|
|
50
50
|
| `scenario.exec` | Dispatch `$module` / `%block`, registry handlers, `EXEC_DELAY`. |
|
|
51
|
-
| `scenario.label` | `LABEL_GET`, preload меток; init label на `STATE.CLEAR`. Одна упавшая строка не валит всю метку.
|
|
52
|
-
| `scenario.line` | `LINE_LOAD` / `LINE_GET`, registry preload handlers. Executor `LINE_GET` всегда resolve.
|
|
53
|
-
| `scenario.lines` |
|
|
51
|
+
| `scenario.label` | `LABEL_GET`, preload меток; `MEMORY.REG` в `setup`; init label на `STATE.CLEAR`. Одна упавшая строка не валит всю метку. |
|
|
52
|
+
| `scenario.line` | `MEMORY.REG` в `setup`; `LINE_LOAD` / `LINE_GET`, registry preload handlers. Executor `LINE_GET` всегда resolve. |
|
|
53
|
+
| `scenario.lines` | `MEMORY.REG` в `setup`; fetch `label/<path>.json` с `HOST` (например `label/prologue/1.json`). |
|
|
54
54
|
|
|
55
55
|
## Близкие плагины
|
|
56
56
|
|
package/plugins/core/settings.md
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
| Модуль | Зона ответственности |
|
|
30
30
|
| --------------- | --------------------------------------------------------------------- |
|
|
31
|
-
| `settings` | Load из storage при
|
|
31
|
+
| `settings` | Load из storage при `setup` (`ensureReady`); `SET` / `INIT` тоже ждут `ensureReady`. |
|
|
32
32
|
| `settings.logs` | Логирование set/init/changed. |
|
|
33
33
|
|
|
34
34
|
## Близкие плагины
|
package/plugins/core/stack.md
CHANGED
|
@@ -6,18 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ
|
|
10
|
-
|
|
|
11
|
-
| `EMIT`
|
|
12
|
-
| `POP`
|
|
13
|
-
| `CLEAR`
|
|
14
|
-
| `JUMP`
|
|
15
|
-
| `CALL`
|
|
16
|
-
| `EXEC_ARG`
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| --------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| `EMIT` | `vne:stack:emit` | Перейти на метку: сброс `curLine`, clone args, preload label, clear memory. Payload: `{ label?, args? }`. Перед переходом — `PROHIBIT_REPLACE`; при запрете — `PROHIBITED`, без `LABEL_GET`. |
|
|
12
|
+
| `POP` | `vne:stack:pop` | Вернуться к предыдущей позиции в стеке или сбросить игру, если стек пуст. |
|
|
13
|
+
| `CLEAR` | `vne:stack:clear` | Сбросить глобальный state и продолжить сценарий. |
|
|
14
|
+
| `JUMP` | `vne:stack:jump` | Переход на метку без push в стек (делегирует в `EMIT`). |
|
|
15
|
+
| `CALL` | `vne:stack:call` | `PROHIBIT_REPLACE`, затем push текущей позиции и `EMIT`. При запрете — `PROHIBITED`, без push. |
|
|
16
|
+
| `EXEC_ARG` | `vne:stack:exec_arg` | По токену строки вернуть значение аргумента из верхнего frame. Payload: `{ line? }`. |
|
|
17
|
+
| `PROHIBIT_REPLACE` | `vne:stack:prohibit_replace` | Цепочка `ModuleReplace`: можно ли идти на `label`. Payload: `{ label?, isProhibited? }`. Старт `isProhibited: false`. Возврат — итоговое `isProhibited`. |
|
|
18
|
+
| `PROHIBIT_REPLACE_REG` | `vne:stack:prohibit_replace_reg` | Зарегистрировать обработчик `PROHIBIT_REPLACE`. `{ handler, priority? }`. Не блокирующий хендлер: `return isProhibited`; запрет: `return isProhibited \|\| ownCheck`. |
|
|
19
|
+
| `PROHIBITED` | `vne:stack:prohibited` | Переход запрещён. Payload: `{ label?, args?, event? }` — `event` это `JUMP` / `CALL` / `EMIT`, чтобы повторить переход. `$ stack jump/call` при запрете не делает `emitNext`. |
|
|
17
20
|
|
|
18
21
|
## Константы
|
|
19
22
|
|
|
20
|
-
- **`LOGS_ACTIONS`** — `emit`, `call`, `jump`, `pop`, `clear`.
|
|
23
|
+
- **`LOGS_ACTIONS`** — `emit`, `call`, `jump`, `pop`, `clear`, `prohibited`.
|
|
21
24
|
- **`EXEC_ACTIONS`** — действия в строках `$stack`: `jump`, `call`, `pop`.
|
|
22
25
|
|
|
23
26
|
## Параметры
|
|
@@ -30,16 +33,17 @@
|
|
|
30
33
|
|
|
31
34
|
## Модули
|
|
32
35
|
|
|
33
|
-
| Модуль
|
|
34
|
-
|
|
|
35
|
-
| `stack`
|
|
36
|
-
| `stack.call`
|
|
37
|
-
| `stack.jump`
|
|
38
|
-
| `stack.pop`
|
|
39
|
-
| `stack.clear`
|
|
40
|
-
| `stack.args`
|
|
41
|
-
| `stack.exec`
|
|
42
|
-
| `stack.
|
|
36
|
+
| Модуль | Зона ответственности |
|
|
37
|
+
| --------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
38
|
+
| `stack` | State стека; обработка `EMIT` (`PROHIBIT_REPLACE` → переход или `PROHIBITED`); sync на `STATE.SET` / `CLEAR`. |
|
|
39
|
+
| `stack.call` | `PROHIBIT_REPLACE`, затем push frame + `EMIT`. |
|
|
40
|
+
| `stack.jump` | Jump без сохранения. |
|
|
41
|
+
| `stack.pop` | Pop frame. |
|
|
42
|
+
| `stack.clear` | Clear state + next. |
|
|
43
|
+
| `stack.args` | Резолв аргументов из строки сценария. |
|
|
44
|
+
| `stack.exec` | Регистрация `$stack` handlers в scenario (jump/call/pop + preload). На `LINE_LOAD` jump/call — `PROHIBIT_REPLACE` до `LABEL_GET`. `onLineExec`: `emitNext` только если jump/call не вернули `false` (запрет); `pop` — как раньше. |
|
|
45
|
+
| `stack.replace` | Реестр обработчиков `PROHIBIT_REPLACE_REG`; наследник `@vnejs/module.replace`; `REPLACE_KEY` — `isProhibited`. |
|
|
46
|
+
| `stack.logs` | Логирование операций стека, в т.ч. `PROHIBITED`; в `init` регистрирует хендлер `PROHIBIT_REPLACE` (пропускает флаг). |
|
|
43
47
|
|
|
44
48
|
## Близкие плагины
|
|
45
49
|
|
package/plugins/core/storage.md
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
| `RM` | `vne:storage:rm` | Удалить один ключ. |
|
|
41
41
|
| `RM_ALL` | `vne:storage:rm_all` | Удалить ключи модуля; с `group` — только группа. |
|
|
42
42
|
| `KEYS` | `vne:storage:keys` | Список всех физических ключей в store. |
|
|
43
|
-
| `INIT` | `vne:storage:init` | Инициализация IndexedDB driver, ожидание ready.
|
|
43
|
+
| `INIT` | `vne:storage:init` | Инициализация IndexedDB driver, ожидание ready (`ensureReady`, не `isReady`). |
|
|
44
44
|
| `CHANGED` | `vne:storage:changed` | В хранилище произошла запись, обновление или удаление. |
|
|
45
45
|
| `IMPORT` | `vne:storage:import` | Заменить всё содержимое store данными из JSON-файла и перезагрузить страницу. |
|
|
46
46
|
| `EXPORT` | `vne:storage:export` | Скачать всё хранилище как JSON. |
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
| Модуль | Зона ответственности |
|
|
73
73
|
| ----------------- | ----------------------------------------------- |
|
|
74
|
-
| `storage` |
|
|
74
|
+
| `storage` | localforage в `setup` / `ensureReady`; `KEYS`, `CHANGED`, `INIT`. |
|
|
75
75
|
| `storage.get` | `GET` / `GET_ALL`. |
|
|
76
76
|
| `storage.set` | `SET` / `SET_ALL`. |
|
|
77
77
|
| `storage.rm` | `RM` / `RM_ALL`. |
|
package/plugins/core/system.md
CHANGED
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
## События
|
|
8
8
|
|
|
9
|
-
| Ключ | Строка | Смысл
|
|
10
|
-
| -------------- | ------------------------- |
|
|
11
|
-
| `
|
|
12
|
-
| `RESIZE` | `vne:system:resize` | Изменились размеры окна приложения. |
|
|
9
|
+
| Ключ | Строка | Смысл |
|
|
10
|
+
| -------------- | ------------------------- | ----------------------------------------------------------- |
|
|
11
|
+
| `RESIZE` | `vne:system:resize` | Изменились размеры окна приложения. |
|
|
13
12
|
| `RELOAD` | `vne:system:reload` | Перезагрузка страницы после фазы `CLOSE_BEFORE`. |
|
|
14
13
|
| `FULLSCREEN` | `vne:system:fullscreen` | Переключение полноэкранного режима документа. |
|
|
15
14
|
| `CLOSE` | `vne:system:close` | Закрытие окна приложения после фазы `CLOSE_BEFORE`. |
|
package/plugins/text/locs.md
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
| Модуль | Зона ответственности |
|
|
39
39
|
| ------ | -------------------------------- |
|
|
40
|
-
| `locs` |
|
|
40
|
+
| `locs` | `MEMORY.REG` в `setup`; LOAD, GET, CHANGED; `SETTINGS.INIT` / inject / replace в `init`. |
|
|
41
41
|
|
|
42
42
|
## Близкие плагины
|
|
43
43
|
|
package/plugins/text/smooth.md
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
Пакет: `@vnejs/compatibility.views.scenario.interface-with-text.smooth`
|
|
47
47
|
|
|
48
|
-
Связка с [interface.md](../views.scenario/interface.md): `CHANGED` → `INTERFACE.TEXT_CHANGED` (`tokens` из `globalState.text`, `tokensVisible`, `uid`). `
|
|
48
|
+
Связка с [interface.md](../views.scenario/interface.md): `CHANGED` → `INTERFACE.TEXT_CHANGED` (`tokens` из `globalState.text`, `tokensVisible`, `uid`). `start` сбрасывает `shared.interfaceTextShowAllTokensOnChange`.
|
|
49
49
|
|
|
50
50
|
## Близкие плагины
|
|
51
51
|
|
package/plugins/vars/counters.md
CHANGED
|
@@ -30,10 +30,12 @@
|
|
|
30
30
|
|
|
31
31
|
## Модули
|
|
32
32
|
|
|
33
|
-
| Модуль
|
|
34
|
-
|
|
|
35
|
-
| `vars.counters`
|
|
36
|
-
| `vars.counters.
|
|
33
|
+
| Модуль | Зона ответственности |
|
|
34
|
+
| ------------------------ | ------------------------------------------------------------ |
|
|
35
|
+
| `vars.counters` | Обрабатывает SET, GET; регистрирует DEFAULT_REG. |
|
|
36
|
+
| `vars.counters.handlers` | Обрабатывает CHANGE, COMPARE. |
|
|
37
|
+
| `vars.counters.exec` | Обрабатывает EXEC_INFO, EXEC_CHECK, EXEC_GET. |
|
|
38
|
+
| `vars.counters.scenario` | Регистрирует LINE_EXEC для module/block (`$/% counter`). |
|
|
37
39
|
|
|
38
40
|
## Близкие плагины
|
|
39
41
|
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
| Модуль | Зона ответственности |
|
|
40
40
|
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
41
|
-
| `controls.hints.controller` | Preload иконок
|
|
41
|
+
| `controls.hints.controller` | Preload иконок в `start` и на `MEMORY.CLEARED`; show/hide групп; `DEVICE_CHANGED`; `COMPONENTS.EXTERNAL_UPDATE` → `updateViewFast`. |
|
|
42
42
|
| `controls.hints.view` | Рендер нескольких `View` + `Flex` + `Icon` + `Text`. |
|
|
43
43
|
|
|
44
44
|
## Близкие плагины
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
|
|
71
71
|
Пакет: `@vnejs/compatibility.views.scenario.interface-with-text.smooth`
|
|
72
72
|
|
|
73
|
-
На `TEXT_SMOOTH.CHANGED` эмитит `INTERFACE.TEXT_CHANGED` с `tokens` из `globalState.text`, `tokensVisible` и `uid`.
|
|
73
|
+
На `TEXT_SMOOTH.CHANGED` эмитит `INTERFACE.TEXT_CHANGED` с `tokens` из `globalState.text`, `tokensVisible` и `uid`. В `start` ставит `shared.interfaceTextShowAllTokensOnChange` в `false`.
|
|
74
74
|
|
|
75
75
|
## Близкие плагины
|
|
76
76
|
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
| `eula.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по строкам текста; пустые строки через `isArrowItemAvailable`; смена `SETTINGS.EULA.LANG` сбрасывает индекс; PUSH/POP на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
|
|
43
43
|
| `eula.controller.accept` | Наследует `@vnejs/module.controller.accept`: только `ACCEPT` (`IS_INTERACT_ENABLED = false`) → `EULA.ACCEPT` → `ACCEPTED_VERSION`, `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
44
44
|
| `eula.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
|
|
45
|
-
| `eula` | `MAINMENU.SHOW` → `SHOW` (если версия не принята); `EXIT` → `SYSTEM.CLOSE`.
|
|
45
|
+
| `eula` | В `setup` — `SETTINGS.INIT` для версии и языка; `MAINMENU.SHOW` → `SHOW` (если версия не принята); `EXIT` → `SYSTEM.CLOSE`. |
|
|
46
46
|
| `eula.view` | Подмодуль `view` плагина. |
|
|
47
47
|
|
|
48
48
|
## Близкие плагины
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
| `history.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по записям журнала; PUSH/POP controls на SHOW/HIDE; эмитит `STATE_UPDATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
|
|
49
49
|
| `history.hide.controls` | Наследует `@vnejs/module.controller.hide.on.controls`: `BACK` / `MENU` / `GAMEMENU` → `HIDE`; PUSH/POP на SHOW/HIDE. |
|
|
50
50
|
| `history.hide.state` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` → `HIDE` с `{ isForce: true }` (`IS_STATE_CLEAR_ENABLED = false`). |
|
|
51
|
-
| `history` |
|
|
51
|
+
| `history` | `MEMORY.REG` в `setup`; ADD, GET, LOAD, BACK, …. |
|
|
52
52
|
| `history.view` | Подмодуль `view` плагина. |
|
|
53
53
|
|
|
54
54
|
## Compatibility
|