namespace Sand.Core; public sealed class SimulationFrameStats { public int Frame { get; internal set; } public int ProcessedCells { get; internal set; } public int ParticleCount { get; internal set; } public int MinActiveX { get; internal set; } public int MinActiveY { get; internal set; } public int MaxActiveX { get; internal set; } public int MaxActiveY { get; internal set; } public int LoadedChunkCount { get; internal set; } public int ActiveChunkCount { get; internal set; } public int DirtyChunkCount { get; internal set; } public int SteppedChunkCount { get; internal set; } public int SleepingChunkCount { get; internal set; } public int FieldPageCount { get; internal set; } public int MoveAttemptCount { get; internal set; } public int VerticalMoveAttemptCount { get; internal set; } public int DiagonalMoveAttemptCount { get; internal set; } public int LateralMoveAttemptCount { get; internal set; } public int SuccessfulMoveCount { get; internal set; } public int SwapAttemptCount { get; internal set; } public int StalledMovableCount { get; internal set; } public int MovementOnlyFastPathCount { get; internal set; } public int FullRuntimeStepCount { get; internal set; } public int FullRuntimeSolidCount { get; internal set; } public int FullRuntimeLiquidCount { get; internal set; } public int FullRuntimeGasCount { get; internal set; } public int MovedParticleCount { get; internal set; } public int SwappedParticleCount { get; internal set; } public int VisualDirtyPageCount { get; internal set; } public long FrameBuildBytesTouched { get; internal set; } public long ActivationTimeMicroseconds { get; internal set; } public long MovementTimeMicroseconds { get; internal set; } public long RuntimeTimeMicroseconds { get; internal set; } public long FieldDecayTimeMicroseconds { get; internal set; } public long RenderTimeMicroseconds { get; internal set; } }