namespace Questionable.Controller.Steps.Common; internal sealed class WaitNavmesh { internal sealed record Task : ITask { public override string ToString() { return "Wait(navmesh)"; } } internal sealed class Executor(MovementController movementController) : TaskExecutor(), IDebugStateProvider, ITaskExecutor { protected override bool Start() { return true; } public override ETaskResult Update() { if (!movementController.IsNavmeshReady) { return ETaskResult.StillRunning; } return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } public string? GetDebugState() { if (!movementController.IsNavmeshReady) { return $"Navmesh: {movementController.BuiltNavmeshPercent}%"; } return null; } } }