docs(runtime): trace original Control clock delivery
Docs Deploy / Build and Deploy MkDocs (push) Successful in 38s

This commit is contained in:
Valentin Popov committed 2026-10-29 15:26:02 +04:00
1 parent 3cec599688
commit e6408fe912
3 files changed
+80 -7

No files matched your search

+17
View File
@@ -346,6 +346,23 @@ end-of-render callbacks. Эти callbacks позволяют объектам б
изменит движение, камеру и сценарные таймеры. Подробности render item и рисков
кадровой совместимости вынесены в справочник [Render frame](../reference/render-frame.md).
У исходного Control источник времени прослежен статически до World3D.
World3D берёт миллисекунды `timeGetTime()`, учитывает игровое смещение и паузу,
затем передаёт младшие 32 бита результата всем объектам в событии `6/1`.
После этого следуют шаг мировой физики и второй обход объектов с событием
`6/0x1c`; они получают то же значение часов. Поэтому порядок обновлений имеет
значение даже тогда, когда все участники видят одинаковое время.
Объект AniMesh передаёт первое событие последовательно в Behavior, Wizard,
CollObject, Control и PhysicalModel, пропуская отсутствующие интерфейсы, а затем
ещё раз в CollObject с подсобытием `0x1c`. Control численно преобразует
беззнаковые миллисекунды в `f32` и выбирает обработчик по классу объекта.
Это абсолютные часы: длительность шага обработчик вычисляет из сохранённых
значений сам. Таблицы, адреса и различие путей классов приведены в
[техническом разборе](../appendices/script-vm.md#доставка-игровых-часов-в-control).
Статическая цепочка ещё не доказывает исполнение активного Control update на
миссии. Rust пока сохраняет начальные provider-снимки и не изменяет их этим путём.
## World3D
World3D связывает игровые объекты, события, время, ввод, камеру, сетевые