gmod-rs/crates/engine/tests
Niko Marmeladkov 35cfe38fdd Физган: колесо — дистанция, E — вращение, undo только спавн, модель и CCD
- Отставание пропа: в rapier 0.36 `normalized_max_linear_velocity` по
  умолчанию 400, всё выше обрезалось на шаге (1200 → 400). Поднято до 100k;
  тест-страж body_with_set_velocity_actually_moves (1200 за секунду).
- Управление как в GMod: колесо тянет/толкает вдоль луча (`physgun_wheelspeed`,
  шаг 16, минимум 24), вращение — зажатый E + мышь (камера стоит). Держится
  полная ориентация (pitch/yaw/roll), угловая скорость — по кватерниону
  кратчайшей дуги, а не только yaw.
- Демпфирование: `physgun_maxSpeedDamping`/`maxAngularDamping` = 10000 —
  предел изменения скорости (damp_towards), а не самой скорости.
  `physgun_DampingFactor` в вики не указан, у поверхностей dampening 0.
- Undo как в оригинале: отменяется только спавн; Move/Freeze из истории
  физгана убраны.
- Вьюмодель физгана: `weapon_physgun.txt` → `c_superphyscannon.mdl`, анимация
  `idle` обязательна (bind-поза разваливается), посадка right 25/up −25/
  dist 34/scale 0.9, ствол вдоль +X.
- CCD: пропы с `ccd_enabled(true)`, `max_ccd_substeps` 4,
  `num_solver_iterations` 8 — быстрые пропы не пролетают сквозь карту
  (тест на 5000 юнитов/с).
- HUD: wheel dist | E rotate.

Проверки: clippy -D warnings, cargo test --workspace зелёные; кадр
/tmp/opencode/physgun_final.png.
2026-10-24 23:23:31 +03:00
..
world_real.rs Физган: колесо — дистанция, E — вращение, undo только спавн, модель и CCD 2026-10-24 23:23:31 +03:00