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";
}