< Summary

Information
Class: Gravitas.GravitasReplayHashService
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/Determinism/GravitasReplayHashService.cs
Line coverage
100%
Covered lines: 26
Uncovered lines: 0
Coverable lines: 26
Total lines: 50
Line coverage: 100%
Branch coverage
100%
Covered branches: 10
Total branches: 10
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Compute(...)100%1010100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/Determinism/GravitasReplayHashService.cs

#LineLine coverage
 1//=======================================================================
 2// GravitasReplayHashService.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2026-present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8using Chronicler;
 9using FixedMathSharp.Chronicler;
 10
 11namespace Gravitas;
 12
 13internal static class GravitasReplayHashService
 14{
 15    public static ChronicleHash Compute(
 16        GravitasWorldContext context,
 17        GravitasReplayHashMode mode)
 18    {
 99319        var writer = new ChronicleHashWriter();
 99320        writer.WriteSection("gravitas.replay", 1);
 99321        writer.WriteEnum(mode);
 99322        writer.WriteEnum(context.Settings.RuntimeMode);
 99323        writer.WriteInt32(context.FrameRate);
 99324        writer.WriteFixed64(context.DeltaTime);
 99325        writer.WriteFixed64(context.InvDeltaTime);
 99326        writer.WriteInt32(context.FrameCount);
 99327        writer.WriteFixed64(context.TotalTime);
 99328        writer.WriteInt32(context.LateSimulateToken);
 29
 99330        PhysicsRuntimeMode runtimeMode = context.Settings.RuntimeMode;
 99331        if (runtimeMode.Runs3D())
 71332            context.Physics.PrepareReplayColliders();
 99333        if (runtimeMode.Runs2D())
 45434            context.Physics2D.PrepareReplayColliders();
 35
 99336        context.Settings.ContributeReplayHash(ref writer);
 99337        context.Environment.ContributeReplayHash(ref writer);
 99338        context.Constraints3D.ContributeReplayHash(ref writer, mode);
 99339        context.Constraints2D.ContributeReplayHash(ref writer, mode);
 40
 99341        if (runtimeMode.Runs3D())
 71342            context.Physics.ContributeReplayHash(ref writer, mode);
 99343        if (runtimeMode.Runs2D())
 45444            context.Physics2D.ContributeReplayHash(ref writer, mode);
 99345        if (runtimeMode.RunsMixedContacts())
 17446            context.MixedCollisions.ContributeReplayHash(ref writer, mode);
 47
 99348        return writer.ToHash();
 49    }
 50}