gmod-rs/docs
Niko Marmeladkov b991cc59f1 lua: мост к движку — Entity(), ents.* работают с живым миром
Батч 3, шаг 2. Крейт glua не зависит от engine: поведение отдаётся через
трейт Host, реализация которого живёт в клиенте. Иначе был бы цикл
зависимостей и Lua-слой нельзя было бы тестировать в одиночку.

Мир переведён в Rc<RefCell<World>> — скрипт обращается к нему из хуков в
любой момент. Все обращения через try_borrow: пересечение заимствований
даёт panic, а падать из-за скрипта клиент не должен.

Проверено измерением на gm_construct: ents.GetAll() возвращает 1227
сущностей, ents.GetByClass('prop_physics') читает позицию.

Найден и исправлен рассинхрон: move_prop обновлял позу экземпляра пропа,
но не запись в пуле сущностей. Lua читал z = -64, пока физика уже опустила
проп на z = -84 — «данные» и «картинка» разошлись, и заметить это можно
было только глазами. Теперь поза пишется в оба места всегда, даже без
модели: проп без модели всё равно стоит правильно, он просто не рисуется.
Возвращаемое значение move_prop теперь означает именно «геометрия
пересчитана».

После правки Lua читает z = -84.15848, физика даёт -84.15847778320313 —
совпадение до последнего бита.

Тест на паникующий хост: скрипт получает «невалидно» вместо падения.

Тестов 24 в glua, 56 в engine, 23 набора по воркспейсу, clippy чист.
2026-10-13 12:57:01 +03:00
..
ARCHITECTURE.md docs: план Source RS — этапы, архитектура, проблемы, Lua, сеть, разведка 2026-10-11 22:25:36 +03:00
LUA.md docs: план Source RS — этапы, архитектура, проблемы, Lua, сеть, разведка 2026-10-11 22:25:36 +03:00
NETWORK.md docs: план Source RS — этапы, архитектура, проблемы, Lua, сеть, разведка 2026-10-11 22:25:36 +03:00
PARITY.md lua: мост к движку — Entity(), ents.* работают с живым миром 2026-10-13 12:57:01 +03:00
PLAN.md render: вода (SURF_WARP), area-скайбокс с правильным порядком глубины, лайтмапы диспов по UV 2026-10-12 08:28:28 +03:00
PROBLEMS.md docs: план Source RS — этапы, архитектура, проблемы, Lua, сеть, разведка 2026-10-11 22:25:36 +03:00
RECON.md net: добавлен недостающий userinfo-конвар cl_playermodel 2026-10-12 14:51:57 +03:00