feat: camera zoom, day/night cycle, tooltip, crosshair

- Camera zoom: +/- keys adjust cell size 4-24px, grid_w/h recalculated
  Works in both graphics and ascii renderers via GpuRenderer trait
- Day/night cycle: ambient_light_at_tick() modulates brightness by sine
  Applied to terminal renderer (CPU lighting path)
- Tooltip: shows material name + temperature at mouse cursor position
  Tracked via CursorMoved event, world coords computed from screen pos
- Crosshair: dotted line from player to mouse cursor, fading alpha
  Shows aiming trajectory for projectile combat

All 185 tests + 14 scenarios pass. 162 FPS benchmark.
This commit is contained in:
Emil
2026-06-22 17:54:20 +03:00
parent f09c44f7a0
commit d6bd77c133
8 changed files with 172 additions and 17 deletions
+12 -12
View File
@@ -1,17 +1,17 @@
{
"mode": "graphics",
"ticks": 600,
"total_time_ms": 4229.7,
"avg_fps": 141.9,
"avg_frame_time_ms": 7.02,
"p99_frame_time_ms": 17.35,
"min_frame_time_ms": 5.45,
"ticks": 300,
"total_time_ms": 1847.9,
"avg_fps": 162.3,
"avg_frame_time_ms": 6.13,
"p99_frame_time_ms": 15.95,
"min_frame_time_ms": 4.61,
"subsystems": {
"ca_step_avg_us": 2425,
"ca_step_p99_us": 11400,
"ca_step_min_us": 600,
"render_avg_us": 3863,
"render_p99_us": 5805,
"render_min_us": 3218
"ca_step_avg_us": 1708,
"ca_step_p99_us": 11597,
"ca_step_min_us": 332,
"render_avg_us": 3717,
"render_p99_us": 6538,
"render_min_us": 3295
}
}