From: Liza Carvelli Date: Mon, 31 Mar 2025 23:52:27 +0000 (+0200) Subject: Don't use mount if too close to target X-Git-Tag: v5.2~3 X-Git-Url: https://git.jacobcasper.com/?a=commitdiff_plain;h=2ef3c60c0f6aa136ec0130977905f2c4a13d4caa;p=Questionable.git Don't use mount if too close to target --- diff --git a/Questionable/Controller/Steps/Movement/MoveExecutor.cs b/Questionable/Controller/Steps/Movement/MoveExecutor.cs index ec11e7ed..a4403a0e 100644 --- a/Questionable/Controller/Steps/Movement/MoveExecutor.cs +++ b/Questionable/Controller/Steps/Movement/MoveExecutor.cs @@ -97,13 +97,15 @@ internal sealed class MoveExecutor : TaskExecutor, IToastAware { var mountTask = new Mount.MountTask(Task.TerritoryId, Mount.EMountIf.Always); _mountBeforeMovement = (_serviceProvider.GetRequiredService(), mountTask); - _mountBeforeMovement.Value.Executor.Start(mountTask); + if (!_mountBeforeMovement.Value.Executor.Start(mountTask)) + _mountBeforeMovement = null; } else if (Task.Mount == false) { var unmountTask = new Mount.UnmountTask(); _unmountBeforeMovement = (_serviceProvider.GetRequiredService(), unmountTask); - _unmountBeforeMovement.Value.Executor.Start(unmountTask); + if (!_unmountBeforeMovement.Value.Executor.Start(unmountTask)) + _unmountBeforeMovement = null; } else { @@ -116,7 +118,10 @@ internal sealed class MoveExecutor : TaskExecutor, IToastAware : Mount.EMountIf.AwayFromPosition; var mountTask = new Mount.MountTask(Task.TerritoryId, mountIf, _destination); _mountDuringMovement = (_serviceProvider.GetRequiredService(), mountTask); - _mountDuringMovement.Value.Executor.Start(mountTask); + if (_mountDuringMovement.Value.Executor.EvaluateMountState(true) != Mount.MountResult.DontMount) + _mountDuringMovement.Value.Executor.Start(mountTask); + else + _mountDuringMovement = null; } }