feat(runtime): publish provider values into model node state
Docs Deploy / Build and Deploy MkDocs (push) Successful in 36s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 36s
This commit is contained in:
6 files changed
+156
-22
No files matched your search
@@ -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`. По нему запускается представленный ресурсный планировщик
|
||||
|
||||
@@ -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 объекта, а не только нового количества.
|
||||
|
||||
|
||||
Reference in new issue
Block a user