using System; namespace AcDream.Core.Physics; /// /// L.2a slice 1 (2026-05-12) — runtime-toggleable physics probe flags. /// Initialized from env vars at process start; flippable at runtime via /// the DebugPanel mirror (or by direct assignment). Log call sites read /// these statics so a checkbox toggle takes effect on the next resolve /// without relaunching. /// /// /// Slice 1 ships + /// . Future slices may fold the older /// ACDREAM_DUMP_* env vars into this class for unified runtime /// toggling. Until then, those older flags remain sticky-at-startup /// per their original implementation. /// /// public static class PhysicsDiagnostics { /// /// When true, emits /// one structured [resolve] line per call: input + target + /// output position/cell, grounded state, contact-plane status, /// collision-normal validity, walkable polygon status, moving entity /// id. Initial state from ACDREAM_PROBE_RESOLVE=1. /// public static bool ProbeResolveEnabled { get; set; } = Environment.GetEnvironmentVariable("ACDREAM_PROBE_RESOLVE") == "1"; /// /// When true, every change to PlayerMovementController.CellId /// emits one [cell-transit] line: old → new cell, current /// world position, reason tag (resolver / teleport). /// Initial state from ACDREAM_PROBE_CELL=1. /// public static bool ProbeCellEnabled { get; set; } = Environment.GetEnvironmentVariable("ACDREAM_PROBE_CELL") == "1"; }