From 6eb1dcaf7036e4e1702de15d0dd02181a3577852 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 29 Oct 2026 17:08:08 +0400 Subject: feat(runtime): publish provider values into model node state --- docs/tomes/06-behavior.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'docs/tomes/06-behavior.md') 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 объекта, а не только нового количества. -- cgit v1.2.3