add transient nav coverage hints
Introduce nav-only corridor hints and feed them into clustered coverage scheduling so runtime NavMesh can prewarm ahead of active movement paths.
This commit is contained in:
@@ -23,6 +23,18 @@ namespace InfiniteWorld.VoxelWorld.Contracts
|
||||
void GetCoverageWindows(List<NavCoverageWindowSnapshot> results);
|
||||
}
|
||||
|
||||
public interface INavCoverageHintRegistry
|
||||
{
|
||||
void SetLinearHint(int ownerId, Vector3 from, Vector3 to, float priority, float ttlSeconds);
|
||||
void ClearHint(int ownerId);
|
||||
}
|
||||
|
||||
public interface INavCoverageHintReader
|
||||
{
|
||||
int HintVersion { get; }
|
||||
void GetHintPoints(List<WorldInterestPoint> results);
|
||||
}
|
||||
|
||||
public readonly struct ChunkNavSourceSnapshot
|
||||
{
|
||||
public ChunkNavSourceSnapshot(Vector2Int coord, int version, ChunkNavBuildSourceDescriptor[] sources)
|
||||
@@ -84,7 +96,8 @@ namespace InfiniteWorld.VoxelWorld.Contracts
|
||||
PlayerActor = 0,
|
||||
ActiveNpc = 1,
|
||||
SpawnAnchor = 2,
|
||||
Other = 3
|
||||
TransientNavHint = 3,
|
||||
Other = 4
|
||||
}
|
||||
|
||||
public readonly struct NavCoverageWindowSnapshot
|
||||
@@ -143,4 +156,14 @@ namespace InfiniteWorld.VoxelWorld.Contracts
|
||||
|
||||
public int Version { get; }
|
||||
}
|
||||
|
||||
public readonly struct NavCoverageHintChangedMessage
|
||||
{
|
||||
public NavCoverageHintChangedMessage(int version)
|
||||
{
|
||||
Version = version;
|
||||
}
|
||||
|
||||
public int Version { get; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user