2757bf3a3b
Split VoxelWorld nav contracts into focused files and extract clustered coverage helpers so the navmesh service stays a coordinator instead of a catch-all runtime file.
37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace InfiniteWorld.VoxelWorld.Contracts
|
|
{
|
|
public interface IChunkNavSourceReader
|
|
{
|
|
float ChunkWorldSize { get; }
|
|
void GetLoadedChunkCoords(List<Vector2Int> results);
|
|
bool TryGetChunkNavSourceSnapshot(Vector2Int coord, out ChunkNavSourceSnapshot snapshot);
|
|
}
|
|
|
|
public interface IWorldInterestReader
|
|
{
|
|
int InterestVersion { get; }
|
|
void GetInterestPoints(List<WorldInterestPoint> results);
|
|
}
|
|
|
|
public interface INavCoverageReader
|
|
{
|
|
bool IsPositionCovered(Vector3 worldPosition);
|
|
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);
|
|
}
|
|
}
|