diff options
| author | Valentin Popov <valentin@popov.link> | 2026-10-29 16:08:08 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-10-29 16:08:08 +0300 |
| commit | 6eb1dcaf7036e4e1702de15d0dd02181a3577852 (patch) | |
| tree | ab0e2969e599227810e4de670f5cd1cf4b6729f7 /docs/tomes | |
| parent | acdf635ffb3868eee4fa383303cac75fdeea8e23 (diff) | |
| download | fparkan-6eb1dcaf7036e4e1702de15d0dd02181a3577852.tar.xz fparkan-6eb1dcaf7036e4e1702de15d0dd02181a3577852.zip | |
feat(runtime): publish provider values into model node state
Diffstat (limited to 'docs/tomes')
| -rw-r--r-- | docs/tomes/02-architecture.md | 4 | ||||
| -rw-r--r-- | docs/tomes/06-behavior.md | 19 |
2 files changed, 18 insertions, 5 deletions
diff --git a/docs/tomes/02-architecture.md b/docs/tomes/02-architecture.md index 1eaedc7..67dc93d 100644 --- a/docs/tomes/02-architecture.md +++ b/docs/tomes/02-architecture.md @@ -362,8 +362,8 @@ CollObject, Control и PhysicalModel, пропуская отсутствующÐ [техническом разборе](../appendices/script-vm.md#доставка-игровых-часов-в-control). Статическая цепочка ещё не доказывает исполнение активного Control update на миссии. Rust сохраняет исходные и текущие provider-поля отдельно. Прямой delta -API меняет строку и возвращает публикацию узла, но описанный clock/budget-путь -пока не подключён. +API меняет строку и значение соответствующего CPU-узла модели, но описанный +clock/budget-путь и вывод этого состояния в окно пока не подключены. В текущем runtime `step_headless` и `frame` получают время очереди явным аргументом `u32`. По нему запускается представленный ресурсный планировщик diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md index aa2fa09..6e8d9b1 100644 --- a/docs/tomes/06-behavior.md +++ b/docs/tomes/06-behavior.md @@ -945,9 +945,22 @@ let ratio = amount / maximum; Это три отдельные операции над `f32`, с проверкой поддерживаемого численного диапазона до записи состояния. Исходные `initial_*` поля сохраняются; `processed_amount_bits` тоже не меняется, поскольку его обновляет другой -нативный проход — пересчёт стадий. API возвращает обязательную публикацию -`ControlNodeProviderPublication` для узла и selector `0x200`; сам callback -AniMesh и пересчёт стадий этим API не исполняются. Истощение корня либо узла +нативный проход — пересчёт стадий. Публикация selector `0x200` теперь применяется +к CPU-состоянию соответствующего узла модели. Результат +`ControlNodeProviderPublication` описывает уже выполненную запись. Пересчёт +стадий и вывод изменённой модели в окно этим API ещё не запускаются. + +У AniMesh есть собственное поле значения узла, отдельное от доли Control. +Конструктор `AniMesh.dll+0x123e0` начинает его с `1.0`, а видимую стадию — с +`0`. Callback `+0x5750` при selector `0x200` записывает число в поле `+0x124` +строки модели с шагом `0x130`, не меняя её стадию `+0x1c` и соседние узлы. +Native oracle соединяет исходные `Control+0x10f30` и `AniMesh+0x5750`; между +ними стоит только запись диагностической трассы. Прямая добавка `20` к +количеству `40` из максимума `100` записывает `0.6` и в provider, и в узел +модели. Эти поля нельзя объединять: наследование родительской доли в отдельном +стадийном проходе меняет provider, не повторяя callback `0x200`. +В Rust `mesh_state` хранит это отдельное значение и видимую стадию; +неразрешённый узел прерывает изменение до записи остальных полей. Истощение корня либо узла с критическим флагом `1` пока возвращает ошибку без изменения состояния: эта ветвь требует полного lifecycle объекта, а не только нового количества. |
