< Summary

Information
Class: Trailblazer.Pathing.NavigationMapFoldWork
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Map/Operations/NavigationMapFoldWork.cs
Line coverage
100%
Covered lines: 40
Uncovered lines: 0
Coverable lines: 40
Total lines: 70
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
.ctor(...)100%11100%
get_Candidate()100%11100%
get_DisplacedExplicitPayloadBytes()100%11100%
get_DisplacedExplicitPayloadPages()100%11100%
get_DisplacedMapStatePayloadBytes()100%11100%
get_DisplacedMapStatePayloadPages()100%11100%
get_RetainedBytes()100%11100%
get_PersistentPageCount()100%11100%
Advance(...)100%11100%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Map/Operations/NavigationMapFoldWork.cs

#LineLine coverage
 1//=======================================================================
 2// NavigationMapFoldWork.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2024-present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8using FixedMathSharp;
 9using GridForge.Grids.Topology;
 10
 11namespace Trailblazer.Pathing;
 12
 13/// <summary>Advances one map install/remove candidate without rescanning its payload in one frame.</summary>
 14internal sealed class NavigationMapFoldWork
 15{
 16    private readonly NavigationOperationCandidate.MapFoldCursor _cursor;
 17
 139718    internal NavigationMapFoldWork(
 139719        NavigationOperationCandidate source,
 139720        PreparedNavigationMap prepared,
 139721        OverlayReplacementPolicy replacementPolicy,
 139722        NavigationOperationLimits limits,
 139723        GridCellPrism[] corridorPrisms,
 139724        Vector3d[] corridorWaypoints,
 139725        NavigationCellAddress[] corridorAddresses,
 139726        NavigationAddressStampSet corridorAddressSet)
 27    {
 139728        _cursor = source.BeginMapFold(
 139729            prepared,
 139730            replacementPolicy,
 139731            limits,
 139732            corridorPrisms,
 139733            corridorWaypoints,
 139734            corridorAddresses,
 139735            corridorAddressSet);
 139736    }
 37
 1838    internal NavigationMapFoldWork(
 1839        NavigationOperationCandidate source,
 1840        string mapId,
 1841        GridCellPrism[] corridorPrisms,
 1842        Vector3d[] corridorWaypoints,
 1843        NavigationCellAddress[] corridorAddresses,
 1844        NavigationAddressStampSet corridorAddressSet)
 45    {
 1846        _cursor = source.BeginMapRemovalFold(
 1847            mapId,
 1848            corridorPrisms,
 1849            corridorWaypoints,
 1850            corridorAddresses,
 1851            corridorAddressSet);
 1852    }
 53
 6165654    internal NavigationOperationCandidate Candidate => _cursor.Candidate;
 55
 925856    internal long DisplacedExplicitPayloadBytes => _cursor.DisplacedExplicitPayloadBytes;
 57
 925958    internal int DisplacedExplicitPayloadPages => _cursor.DisplacedExplicitPayloadPages;
 59
 926160    internal long DisplacedMapStatePayloadBytes => _cursor.DisplacedMapStatePayloadBytes;
 61
 926162    internal int DisplacedMapStatePayloadPages => _cursor.DisplacedMapStatePayloadPages;
 63
 926064    internal long RetainedBytes => _cursor.RetainedBytes;
 65
 926166    internal int PersistentPageCount => _cursor.PersistentPageCount;
 67
 68    internal bool Advance(MaintenanceWorkMeter meter, out NavigationOperationRejection rejection) =>
 456569        _cursor.Advance(meter, out rejection);
 70}