@vnejs/docs 0.2.53 → 0.2.54
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
CHANGED
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
## 0.2.53
|
|
6
6
|
|
|
7
|
+
- `module.controller.hide.on.controls`, `module.controller.accept`, `module.controller.arrows.*` — PUSH/POP controls только при смене локального `isShow` (как у `ModuleController`), без лишнего POP на HIDE до SHOW.
|
|
8
|
+
- `controls/controls` — флаг блокировки EMIT в `shared.isControlsLocked` (инициализация в `controls.postinject`); при `CONTROLS.EMIT` в консоль пишется список `keys`.
|
|
7
9
|
- `controls/cursor` — DOM-клик с тача эмитит `CURSOR.HIDE` (сам клик с `pointerType === "touch"`, клик после `pointerdown` с тача, либо `sourceCapabilities.firesTouchEvents`).
|
|
8
10
|
- `uis.react` — `vne-cursor-target` ставится только на узлы с `vne-cursor-target-possible` (тот же момент, что непустой `vne-cursor-type`). API: `vne-cursor-target-possible`.
|
|
9
|
-
- `views.screens/checkers
|
|
11
|
+
- `views.screens/checkers` — клетки доски помечаются `vne-cursor-target-possible`.
|
|
12
|
+
- `views.scenario/qte` — дефолтный UI: горизонтальная линия и маркер слева направо вместо круга; rail QTE с `vne-cursor-target-possible`. Авто-fail только в конце `duration`, не при выходе маркера из зоны. Фазы `intro` / `outro` сняты; показ и скрытие только через `Screen` (`TRANSITION`). API сценария `start` / `size` / `duration` без изменений.
|
|
10
13
|
- `module` — `setStateFromGlobalState` → `setClonedState`: `setState(structuredClone(getStateSlice(payload)))`. `getStateSlice`: нет слайса в payload → `getDefaultState()` (пустые модули вырезаются из сейва). API: `setClonedState`, `getStateSlice`.
|
|
11
14
|
- `module.core` — снят `onSetStateClone`; вместо него `setClonedState`. Снят `emitClone`; вместо него `structuredClone`. Снят `emitInteractPushPop`; вместо него `emit(EVENTS.INTERACT.PUSH_POP, …)`. API: снято `ModuleCore.onSetStateClone`, `ModuleCore.emitClone`, `ModuleCore.emitInteractPushPop`.
|
|
12
15
|
- `core/logs` — доп. поля `LogsValue` — `LogsCloneable` (строки, числа, boolean, bigint, null, массивы, plain-object), не `unknown`. API: `LogsCloneable`, `LogsValue`.
|
package/package.json
CHANGED
|
@@ -35,10 +35,10 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
35
35
|
|
|
36
36
|
## Модули
|
|
37
37
|
|
|
38
|
-
| Модуль | Зона ответственности
|
|
39
|
-
| ----------------- |
|
|
40
|
-
| `controls` | Обрабатывает EMIT, PUSH, POP.
|
|
41
|
-
| `controls.device` | Хранит `currentDevice`; на `DEVICE_SET` эмитит `DEVICE_CHANGED` только при реальной смене.
|
|
38
|
+
| Модуль | Зона ответственности |
|
|
39
|
+
| ----------------- | --------------------------------------------------------------------------------------------------- |
|
|
40
|
+
| `controls` | Обрабатывает EMIT, PUSH, POP; во время async-обработчика EMIT выставляет `shared.isControlsLocked`. |
|
|
41
|
+
| `controls.device` | Хранит `currentDevice`; на `DEVICE_SET` эмитит `DEVICE_CHANGED` только при реальной смене. |
|
|
42
42
|
|
|
43
43
|
Источники `DEVICE_SET`: keyboard (keydown) → keyboard; `controls.gamepad.device` (button_press / axis_move) → xbox|playstation по `gamepad.id`; cursor (`mousemove`) → keyboard.
|
|
44
44
|
|
|
@@ -29,14 +29,12 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
29
29
|
| Ключ | Тип | Смысл |
|
|
30
30
|
| -------------- | -------- | --------------------------------------------------------------------- |
|
|
31
31
|
| `TRANSITION` | `number` | Длительность анимации показа/скрытия (мс). По умолчанию `500`. |
|
|
32
|
-
| `INITIAL` | `number` |
|
|
32
|
+
| `INITIAL` | `number` | Зарезервирован; не используется view (маркер стартует после `TRANSITION`). По умолчанию `100`. |
|
|
33
33
|
| `ZINDEX` | `number` | Z-index слоя и индекс блока controls. По умолчанию `1300`. |
|
|
34
34
|
| `RESULT_DELAY` | `number` | Пауза на экране success/fail перед `RESULT` (мс). По умолчанию `500`. |
|
|
35
35
|
| `LOC_LABEL` | `string` | Метка локализации текстов статуса (`locs`). По умолчанию `"qte"`. |
|
|
36
36
|
| `VIEW_PROPS` | `object` | Пропсы Screen, PositionBox. |
|
|
37
37
|
|
|
38
|
-
Длительность intro: `max(TRANSITION - INITIAL, 0)`.
|
|
39
|
-
|
|
40
38
|
## Настройки
|
|
41
39
|
|
|
42
40
|
Нет.
|
|
@@ -45,24 +43,22 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
45
43
|
|
|
46
44
|
| Модуль | Зона ответственности |
|
|
47
45
|
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
48
|
-
| `qte_view.controller` | Bridge `QTE.OPENED/CLOSED` → `SHOW/HIDE`; фазы `initial →
|
|
46
|
+
| `qte_view.controller` | Bridge `QTE.OPENED/CLOSED` → `SHOW/HIDE`; фазы `initial → active → resolved`; таймер fail; пустой `controls` на `ZINDEX`; emit `QTE.RESULT`. Показ/скрытие — через `Screen` (`TRANSITION`). |
|
|
49
47
|
| `qte_view.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `QTE_VIEW.ACTION`; PUSH/POP на SHOW/HIDE. |
|
|
50
|
-
| `qte_view.view` | React-render
|
|
48
|
+
| `qte_view.view` | React-render горизонтальной линии, зоны успеха и маркера; `LOC_LABEL` для статусов. |
|
|
51
49
|
|
|
52
50
|
## Фазы
|
|
53
51
|
|
|
54
52
|
| Фаза | Смысл |
|
|
55
53
|
| ---------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
56
54
|
| `idle` | Скрыт / сброшен. |
|
|
57
|
-
| `initial` | Показ Screen
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `resolved` | Показ success/fail (`RESULT_DELAY`). |
|
|
61
|
-
| `outro` | Эмит `QTE.RESULT`, затем hide. |
|
|
55
|
+
| `initial` | Показ `Screen`; маркер ещё не идёт (до `TRANSITION`). |
|
|
56
|
+
| `active` | Маркер идёт слева направо за `item.duration`; клик/ACCEPT проверяет попадание в зону `[start, start+size]` (%). |
|
|
57
|
+
| `resolved` | Показ success/fail (`RESULT_DELAY`), затем `QTE.RESULT` и скрытие через `Screen`. |
|
|
62
58
|
|
|
63
|
-
Авто-fail: таймер на
|
|
59
|
+
Авто-fail: таймер на конец прохода маркера (`duration`), если игрок не нажал раньше.
|
|
64
60
|
|
|
65
|
-
Геометрия view:
|
|
61
|
+
Геометрия view: зона и маркер на одной шкале 0–100% ширины линии; проверка попадания — по progress от elapsed, не по CSS-позиции маркера.
|
|
66
62
|
|
|
67
63
|
## Связь с QTE
|
|
68
64
|
|