< Summary

Information
Class: Trailblazer.Pathing.TraversalTransitionRegistryState
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Transition/Registry/TraversalTransitionRegistryState.cs
Line coverage
88%
Covered lines: 8
Uncovered lines: 1
Coverable lines: 9
Total lines: 53
Line coverage: 88.8%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%11100%
IncrementRegistryVersion()100%11100%
Dispose()50%2280%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Transition/Registry/TraversalTransitionRegistryState.cs

#LineLine coverage
 1using GridForge.Spatial;
 2using SwiftCollections;
 3using System;
 4using System.Threading;
 5
 6namespace Trailblazer.Pathing;
 7
 8/// <summary>
 9/// Stores traversal transition registrations and lookup indexes for one pathing context.
 10/// </summary>
 11internal sealed class TraversalTransitionRegistryState : IDisposable
 12{
 13    private bool _disposed;
 14
 15    internal SwiftDictionary<string, RegisteredTraversalTransition> Transitions { get; } =
 96116        new(8, StringComparer.Ordinal);
 17
 18    internal SwiftHashSet<string> ActiveTransitionIds { get; } = new();
 19
 20    internal SwiftHashSet<string> SuppressedManagedTransitionIds { get; } = new();
 21
 22    internal SwiftDictionary<WorldVoxelIndex, SwiftHashSet<string>> ManagedManualTransitionIdsByVoxel { get; } = new();
 23
 24    internal SwiftDictionary<WorldVoxelIndex, SwiftHashSet<string>> OutgoingTransitionIdsByVoxel { get; } = new();
 25
 26    internal SwiftDictionary<WorldVoxelIndex, SwiftHashSet<string>> IncomingTransitionIdsByVoxel { get; } = new();
 27
 28    internal SwiftDictionary<int, SwiftHashSet<string>> TransitionIdsBySourceGrid { get; } = new();
 29
 30    internal SwiftDictionary<int, SwiftHashSet<string>> TransitionIdsByDestinationGrid { get; } = new();
 31
 32    internal ReaderWriterLockSlim TransitionLock { get; } = new();
 33
 34    internal int RegistryVersion;
 35
 36    internal int RegistrationOrder;
 37
 96138    internal TraversalTransition[] AllTransitionsSnapshot = Array.Empty<TraversalTransition>();
 39
 40    internal void IncrementRegistryVersion()
 41    {
 189842        Interlocked.Increment(ref RegistryVersion);
 189843    }
 44
 45    public void Dispose()
 46    {
 96147        if (_disposed)
 048            return;
 49
 96150        _disposed = true;
 96151        TransitionLock.Dispose();
 96152    }
 53}