muffin v7.5.1

This commit is contained in:
alydev 2026-05-01 08:59:48 +10:00
parent a6481e7b9a
commit 965a736f84
59 changed files with 4112 additions and 5059 deletions

View file

@ -43,6 +43,12 @@ internal sealed class NavmeshIpc
private readonly ICallGateSubscriber<bool> _navRebuild;
private readonly ICallGateSubscriber<Vector3, bool, bool> _simpleMovePathfindAndMoveTo;
private readonly ICallGateSubscriber<Vector3, bool, float, bool> _simpleMovePathfindAndMoveCloseTo;
private readonly ICallGateSubscriber<bool> _simpleMovePathfindInProgress;
public bool IsNavmeshAvailable
{
get
@ -123,6 +129,21 @@ internal sealed class NavmeshIpc
}
}
public bool IsSimpleMovePathfindInProgress
{
get
{
try
{
return _simpleMovePathfindInProgress.InvokeFunc();
}
catch (IpcError)
{
return false;
}
}
}
public NavmeshIpc(IDalamudPluginInterface pluginInterface, ILogger<NavmeshIpc> logger)
{
_pluginInterface = pluginInterface;
@ -141,6 +162,9 @@ internal sealed class NavmeshIpc
_buildProgress = pluginInterface.GetIpcSubscriber<float>("vnavmesh.Nav.BuildProgress");
_navReload = pluginInterface.GetIpcSubscriber<bool>("vnavmesh.Nav.Reload");
_navRebuild = pluginInterface.GetIpcSubscriber<bool>("vnavmesh.Nav.Rebuild");
_simpleMovePathfindAndMoveTo = pluginInterface.GetIpcSubscriber<Vector3, bool, bool>("vnavmesh.SimpleMove.PathfindAndMoveTo");
_simpleMovePathfindAndMoveCloseTo = pluginInterface.GetIpcSubscriber<Vector3, bool, float, bool>("vnavmesh.SimpleMove.PathfindAndMoveCloseTo");
_simpleMovePathfindInProgress = pluginInterface.GetIpcSubscriber<bool>("vnavmesh.SimpleMove.PathfindInProgress");
}
public void Stop()
@ -280,6 +304,40 @@ internal sealed class NavmeshIpc
}
}
public bool SimplePathfindAndMoveTo(Vector3 destination, bool fly)
{
if (!IsNavmeshAvailable)
{
return false;
}
try
{
return _simpleMovePathfindAndMoveTo.InvokeFunc(destination, fly);
}
catch (IpcError exception)
{
_logger.LogWarning(exception, "Could not pathfind and move via SimpleMove");
return false;
}
}
public bool SimplePathfindAndMoveCloseTo(Vector3 destination, bool fly, float range)
{
if (!IsNavmeshAvailable)
{
return false;
}
try
{
return _simpleMovePathfindAndMoveCloseTo.InvokeFunc(destination, fly, range);
}
catch (IpcError exception)
{
_logger.LogWarning(exception, "Could not pathfind and move close to via SimpleMove");
return false;
}
}
public List<Vector3> GetWaypoints()
{
if (IsPathRunning)