forked from aly/qstbak
muffin v7.5.6
This commit is contained in:
parent
6266f9e6b7
commit
addf2d530f
619 changed files with 264792 additions and 446022 deletions
626
Questionable/Questionable.External/WigglyNavIpc.cs
Normal file
626
Questionable/Questionable.External/WigglyNavIpc.cs
Normal file
|
|
@ -0,0 +1,626 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Ipc;
|
||||
using Dalamud.Plugin.Ipc.Exceptions;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Questionable.External;
|
||||
|
||||
internal sealed class WigglyNavIpc
|
||||
{
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec__DisplayClass26_0
|
||||
{
|
||||
public WigglyNavIpc _003C_003E4__this;
|
||||
|
||||
public CancellationToken cancellationToken;
|
||||
|
||||
public PathfindQuery query;
|
||||
|
||||
internal Task<string>? _003CPathfind_003Eb__0()
|
||||
{
|
||||
return _003C_003E4__this._pathfind.InvokeFunc(query, cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec__DisplayClass31_0
|
||||
{
|
||||
public WigglyNavIpc _003C_003E4__this;
|
||||
|
||||
public Vector3 position;
|
||||
|
||||
public float halfExtentXZ;
|
||||
|
||||
public float halfExtentY;
|
||||
|
||||
internal Vector3? _003CFindNearestMeshPoint_003Eb__0()
|
||||
{
|
||||
return _003C_003E4__this._nearestPoint.InvokeFunc(position, _202B_206C_200C_200E_200F_202E_202E_200F_206A_200D_200E_202B_206B_202A_200D_200B_202A_202C_202E_202C_206F_206B_200F_206B_200E_200B_200F_206D_200E_200C_206B_200B_206B_200F_200E_200B_202A_202B_202D_202E_202E(halfExtentXZ, halfExtentY));
|
||||
}
|
||||
|
||||
static float _202B_206C_200C_200E_200F_202E_202E_200F_206A_200D_200E_202B_206B_202A_200D_200B_202A_202C_202E_202C_206F_206B_200F_206B_200E_200B_200F_206D_200E_200C_206B_200B_206B_200F_200E_200B_202A_202B_202D_202E_202E(float P_0, float P_1)
|
||||
{
|
||||
return MathF.Max(P_0, P_1);
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Auto)]
|
||||
[CompilerGenerated]
|
||||
private struct _003CPathfind_003Ed__26 : IAsyncStateMachine
|
||||
{
|
||||
public int _003C_003E1__state;
|
||||
|
||||
public AsyncTaskMethodBuilder<PathfindResult> _003C_003Et__builder;
|
||||
|
||||
public WigglyNavIpc _003C_003E4__this;
|
||||
|
||||
public CancellationToken cancellationToken;
|
||||
|
||||
public Vector3 from;
|
||||
|
||||
public Vector3 to;
|
||||
|
||||
public bool fly;
|
||||
|
||||
public float tolerance;
|
||||
|
||||
private ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter _003C_003Eu__1;
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void MoveNext()
|
||||
{
|
||||
int num = _003C_003E1__state;
|
||||
WigglyNavIpc wigglyNavIpc = _003C_003E4__this;
|
||||
PathfindResult result2;
|
||||
try
|
||||
{
|
||||
int num2 = ((num == 0) ? (-1011094235) : (-1011094234));
|
||||
_003C_003Ec__DisplayClass26_0 _003C_003Ec__DisplayClass26_ = default(_003C_003Ec__DisplayClass26_0);
|
||||
ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter awaiter = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter);
|
||||
Task<string> task = default(Task<string>);
|
||||
while (true)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = -1011094236;
|
||||
int num5 = num3;
|
||||
int num6 = num5 + num4;
|
||||
int num7 = num5 & num4;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 0:
|
||||
num2 = -1011094234;
|
||||
break;
|
||||
case 2:
|
||||
_003C_003Ec__DisplayClass26_ = new _003C_003Ec__DisplayClass26_0
|
||||
{
|
||||
_003C_003E4__this = _003C_003E4__this,
|
||||
cancellationToken = cancellationToken
|
||||
};
|
||||
_200F_206C_206B_202E_202C_206F_202C_206A_206F_206C_206D_200E_206E_206A_202B_200B_206D_206D_206F_206E_200C_202B_202B_200F_206F_200B_202A_206D_206D_206E_206A_200B_206B_200D_202C_206F_200F_200E_200C_202D_202E(ref wigglyNavIpc._outstandingPathfinds);
|
||||
num2 = -1011094235;
|
||||
break;
|
||||
case 1:
|
||||
try
|
||||
{
|
||||
num2 = ((num == 0) ? 1011479215 : 1011479213);
|
||||
while (true)
|
||||
{
|
||||
int num8 = num2;
|
||||
num4 = 1011479211;
|
||||
num5 = num8;
|
||||
int num9 = num5 + num4;
|
||||
int num10 = num5 & num4;
|
||||
switch (num9 - (num10 + num10))
|
||||
{
|
||||
case 4:
|
||||
awaiter = _003C_003Eu__1;
|
||||
_003C_003Eu__1 = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter);
|
||||
num = (_003C_003E1__state = -1);
|
||||
num2 = 1011479208;
|
||||
break;
|
||||
case 6:
|
||||
_003C_003Ec__DisplayClass26_.query = new PathfindQuery(from, to, fly, tolerance);
|
||||
task = Guarded(_003C_003Ec__DisplayClass26_._003CPathfind_003Eb__0);
|
||||
num2 = ((task != null) ? 1011479209 : 1011479210);
|
||||
break;
|
||||
case 1:
|
||||
_200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)wigglyNavIpc._logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(433157232), Array.Empty<object>());
|
||||
result2 = EmptyPathfindResult();
|
||||
goto end_IL_00bb;
|
||||
case 5:
|
||||
num2 = 1011479213;
|
||||
break;
|
||||
case 2:
|
||||
awaiter = task.ConfigureAwait(continueOnCapturedContext: false).GetAwaiter();
|
||||
num2 = (awaiter.IsCompleted ? 1011479208 : 1011479211);
|
||||
break;
|
||||
case 0:
|
||||
num = (_003C_003E1__state = 0);
|
||||
_003C_003Eu__1 = awaiter;
|
||||
_003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this);
|
||||
return;
|
||||
case 3:
|
||||
{
|
||||
string result = awaiter.GetResult();
|
||||
try
|
||||
{
|
||||
PathfindResult pathfindResult = JsonConvert.DeserializeObject<PathfindResult>(result);
|
||||
num2 = (((object)pathfindResult == null) ? 1753402747 : 1753402745);
|
||||
while (true)
|
||||
{
|
||||
int num11 = num2;
|
||||
num4 = 1753402744;
|
||||
num5 = num11;
|
||||
switch ((num5 | num4) - (num5 & num4))
|
||||
{
|
||||
case 0:
|
||||
num2 = 1753402745;
|
||||
break;
|
||||
case 1:
|
||||
num2 = ((pathfindResult.Waypoints != null) ? 1753402746 : 1753402747);
|
||||
break;
|
||||
case 3:
|
||||
_200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)wigglyNavIpc._logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1821206779), Array.Empty<object>());
|
||||
result2 = EmptyPathfindResult();
|
||||
goto end_IL_024d;
|
||||
case 2:
|
||||
result2 = pathfindResult;
|
||||
goto end_IL_024d;
|
||||
}
|
||||
continue;
|
||||
end_IL_024d:
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (JsonException ex)
|
||||
{
|
||||
_206B_200D_200C_206C_200B_202B_202D_200B_206E_206F_200F_200D_206A_206B_200E_206B_200D_200C_206D_200F_200E_206B_200F_202A_200E_200E_206C_200D_206C_206B_206A_206F_206F_206B_206F_200B_206E_206F_200F_206F_202E((ILogger)wigglyNavIpc._logger, (Exception)ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1517525166), Array.Empty<object>());
|
||||
result2 = EmptyPathfindResult();
|
||||
}
|
||||
goto end_IL_00bb;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
end_IL_00bb:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
num2 = ((num >= 0) ? (-420000776) : (-420000773));
|
||||
while (true)
|
||||
{
|
||||
int num12 = num2;
|
||||
num4 = -420000774;
|
||||
num5 = num12;
|
||||
switch ((num5 | num4) - (num5 & num4))
|
||||
{
|
||||
case 0:
|
||||
num2 = -420000773;
|
||||
break;
|
||||
case 2:
|
||||
goto end_IL_032e;
|
||||
case 1:
|
||||
_200C_200C_202A_200C_200F_206D_206A_206B_206D_202E_200E_200D_200E_206F_202B_202C_200F_202A_202D_206C_202A_206D_202B_200D_202C_206C_200E_202C_200B_200C_202B_200E_200F_202C_206F_202D_202A_200C_206B_206B_202E(ref wigglyNavIpc._outstandingPathfinds);
|
||||
num2 = -420000776;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_032e:
|
||||
break;
|
||||
}
|
||||
}
|
||||
goto end_IL_002c;
|
||||
}
|
||||
continue;
|
||||
end_IL_002c:
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_003C_003E1__state = -2;
|
||||
_003C_003Et__builder.SetException(exception);
|
||||
return;
|
||||
}
|
||||
_003C_003E1__state = -2;
|
||||
_003C_003Et__builder.SetResult(result2);
|
||||
}
|
||||
|
||||
void IAsyncStateMachine.MoveNext()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
|
||||
this.MoveNext();
|
||||
}
|
||||
|
||||
[DebuggerHidden]
|
||||
private void SetStateMachine(IAsyncStateMachine stateMachine)
|
||||
{
|
||||
_003C_003Et__builder.SetStateMachine(stateMachine);
|
||||
}
|
||||
|
||||
void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in SetStateMachine
|
||||
this.SetStateMachine(stateMachine);
|
||||
}
|
||||
|
||||
static int _200F_206C_206B_202E_202C_206F_202C_206A_206F_206C_206D_200E_206E_206A_202B_200B_206D_206D_206F_206E_200C_202B_202B_200F_206F_200B_202A_206D_206D_206E_206A_200B_206B_200D_202C_206F_200F_200E_200C_202D_202E(ref int P_0)
|
||||
{
|
||||
return Interlocked.Increment(ref P_0);
|
||||
}
|
||||
|
||||
static void _200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206B_200D_200C_206C_200B_202B_202D_200B_206E_206F_200F_200D_206A_206B_200E_206B_200D_200C_206D_200F_200E_206B_200F_202A_200E_200E_206C_200D_206C_206B_206A_206F_206F_206B_206F_200B_206E_206F_200F_206F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static int _200C_200C_202A_200C_200F_206D_206A_206B_206D_202E_200E_200D_200E_206F_202B_202C_200F_202A_202D_206C_202A_206D_202B_200D_202C_206C_200E_202C_200B_200C_202B_200E_200F_202C_206F_202D_202A_200C_206B_206B_202E(ref int P_0)
|
||||
{
|
||||
return Interlocked.Decrement(ref P_0);
|
||||
}
|
||||
}
|
||||
|
||||
private readonly ILogger<WigglyNavIpc> _logger;
|
||||
|
||||
private readonly ICallGateSubscriber<(int, int)> _apiVersion;
|
||||
|
||||
private readonly ICallGateSubscriber<NavStatus> _status;
|
||||
|
||||
private readonly ICallGateSubscriber<bool> _rebuild;
|
||||
|
||||
private readonly ICallGateSubscriber<PathfindQuery, CancellationToken, Task<string>> _pathfind;
|
||||
|
||||
private readonly ICallGateSubscriber<MoveCommand, bool> _move;
|
||||
|
||||
private readonly ICallGateSubscriber<object> _stop;
|
||||
|
||||
private readonly ICallGateSubscriber<bool> _isRunning;
|
||||
|
||||
private readonly ICallGateSubscriber<List<Vector3>> _waypoints;
|
||||
|
||||
private readonly ICallGateSubscriber<Vector3, float, bool, Vector3?> _floorPoint;
|
||||
|
||||
private readonly ICallGateSubscriber<Vector3, float, Vector3?> _nearestPoint;
|
||||
|
||||
private int _outstandingPathfinds;
|
||||
|
||||
public bool IsNavmeshAvailable => TryGetApiVersion().HasValue;
|
||||
|
||||
public bool IsReady
|
||||
{
|
||||
get
|
||||
{
|
||||
NavStatus status = GetStatus();
|
||||
int num = (((object)status == null) ? (-1445089980) : (-1445089979));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1445089980;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
goto IL_0048;
|
||||
case 0:
|
||||
return false;
|
||||
case 1:
|
||||
return status.Ready;
|
||||
}
|
||||
continue;
|
||||
IL_0048:
|
||||
num = -1445089979;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsPathRunning => Guarded(() => _isRunning.InvokeFunc(), fallback: false);
|
||||
|
||||
public bool IsPathfindInProgress => _200B_200F_200B_202C_200F_202B_202E_206F_200F_202C_206B_200D_206D_202B_202E_206D_202A_202D_206F_202E_206D_202E_200F_202D_206C_202A_206D_200F_206F_206F_202C_202B_202C_200C_202B_202C_202E_206B_206B_206A_202E(ref _outstandingPathfinds) > 0;
|
||||
|
||||
public int NumQueuedPathfindRequests => _202C_202D_202B_202E_206B_200B_206F_206B_206F_200D_206F_202B_202E_202C_200C_200B_202D_202A_206B_206D_206D_206E_202E_206B_206B_206C_206E_200F_202B_202D_202D_202E_206D_200F_202C_202D_202B_206D_202A_206C_202E(0, _200B_200F_200B_202C_200F_202B_202E_206F_200F_202C_206B_200D_206D_202B_202E_206D_202A_202D_206F_202E_206D_202E_200F_202D_206C_202A_206D_200F_206F_206F_202C_202B_202C_200C_202B_202C_202E_206B_206B_206A_202E(ref _outstandingPathfinds) - 1);
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public WigglyNavIpc(IDalamudPluginInterface pluginInterface, ILogger<WigglyNavIpc> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
_apiVersion = pluginInterface.GetIpcSubscriber<(int, int)>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-210373295));
|
||||
_status = pluginInterface.GetIpcSubscriber<NavStatus>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1180852660));
|
||||
_rebuild = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1824704594));
|
||||
_pathfind = pluginInterface.GetIpcSubscriber<PathfindQuery, CancellationToken, Task<string>>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1256767723));
|
||||
_move = pluginInterface.GetIpcSubscriber<MoveCommand, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2010421691));
|
||||
_stop = pluginInterface.GetIpcSubscriber<object>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1146720717));
|
||||
_isRunning = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2133174746));
|
||||
_waypoints = pluginInterface.GetIpcSubscriber<List<Vector3>>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(206019124));
|
||||
_floorPoint = pluginInterface.GetIpcSubscriber<Vector3, float, bool, Vector3?>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1729999483));
|
||||
_nearestPoint = pluginInterface.GetIpcSubscriber<Vector3, float, Vector3?>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-229973248));
|
||||
}
|
||||
|
||||
private static T Guarded<T>(Func<T> invoke, T fallback = default(T))
|
||||
{
|
||||
try
|
||||
{
|
||||
return invoke();
|
||||
}
|
||||
catch (IpcError)
|
||||
{
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
public (int Major, int Minor)? TryGetApiVersion()
|
||||
{
|
||||
return Guarded((Func<(int, int)?>)(() => _apiVersion.InvokeFunc()), ((int, int)?)null);
|
||||
}
|
||||
|
||||
public int GetBuildProgress()
|
||||
{
|
||||
NavStatus status = GetStatus();
|
||||
int num = ((!(status == null)) ? (-1561729010) : (-1561729012));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1561729009;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 4:
|
||||
return _200E_200C_202A_206A_202D_206A_200B_200B_200D_206D_202A_206A_202D_202B_206D_200E_202C_202B_206E_206C_200F_202A_206A_202A_206A_200C_206C_206B_202D_202D_206D_202C_200E_206F_206E_200C_206D_202A_206C_202A_202E(status.TilesBuilt * 100 / status.TilesTotal, 0, 100);
|
||||
case 0:
|
||||
return 100;
|
||||
case 1:
|
||||
num = ((status.TilesTotal <= 0) ? (-1561729014) : (-1561729013));
|
||||
break;
|
||||
case 6:
|
||||
num = -1561729012;
|
||||
break;
|
||||
case 2:
|
||||
return 0;
|
||||
case 5:
|
||||
num = (status.Ready ? (-1561729009) : (-1561729011));
|
||||
break;
|
||||
case 3:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<PathfindResult> Pathfind(Vector3 from, Vector3 to, bool fly, float tolerance, CancellationToken cancellationToken)
|
||||
{
|
||||
int num = -1011094234;
|
||||
_003C_003Ec__DisplayClass26_0 _003C_003Ec__DisplayClass26_ = default(_003C_003Ec__DisplayClass26_0);
|
||||
ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter configuredTaskAwaiter = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter);
|
||||
ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter);
|
||||
Task<string> task = default(Task<string>);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1011094236;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = -1011094234;
|
||||
break;
|
||||
case 2:
|
||||
_003C_003Ec__DisplayClass26_ = new _003C_003Ec__DisplayClass26_0();
|
||||
_003C_003Ec__DisplayClass26_._003C_003E4__this = this;
|
||||
_003C_003Ec__DisplayClass26_.cancellationToken = cancellationToken;
|
||||
_003CPathfind_003Ed__26._200F_206C_206B_202E_202C_206F_202C_206A_206F_206C_206D_200E_206E_206A_202B_200B_206D_206D_206F_206E_200C_202B_202B_200F_206F_200B_202A_206D_206D_206E_206A_200B_206B_200D_202C_206F_200F_200E_200C_202D_202E(ref _outstandingPathfinds);
|
||||
num = -1011094235;
|
||||
break;
|
||||
case 1:
|
||||
try
|
||||
{
|
||||
num = 1011479213;
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = 1011479211;
|
||||
num4 = num7;
|
||||
int num8 = num4 + num3;
|
||||
int num9 = num4 & num3;
|
||||
switch (num8 - (num9 + num9))
|
||||
{
|
||||
case 4:
|
||||
configuredTaskAwaiter = configuredTaskAwaiter2;
|
||||
configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter);
|
||||
num = 1011479208;
|
||||
break;
|
||||
case 6:
|
||||
_003C_003Ec__DisplayClass26_.query = new PathfindQuery(from, to, fly, tolerance);
|
||||
task = Guarded(_003C_003Ec__DisplayClass26_._003CPathfind_003Eb__0);
|
||||
num = ((task != null) ? 1011479209 : 1011479210);
|
||||
break;
|
||||
case 1:
|
||||
_003CPathfind_003Ed__26._200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(433157232), Array.Empty<object>());
|
||||
return EmptyPathfindResult();
|
||||
case 5:
|
||||
num = 1011479213;
|
||||
break;
|
||||
case 2:
|
||||
configuredTaskAwaiter = task.ConfigureAwait(continueOnCapturedContext: false).GetAwaiter();
|
||||
num = (configuredTaskAwaiter.IsCompleted ? 1011479208 : 1011479211);
|
||||
break;
|
||||
case 0:
|
||||
await configuredTaskAwaiter;
|
||||
num = 1011479215;
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
string result = configuredTaskAwaiter.GetResult();
|
||||
try
|
||||
{
|
||||
PathfindResult pathfindResult = JsonConvert.DeserializeObject<PathfindResult>(result);
|
||||
num = (((object)pathfindResult == null) ? 1753402747 : 1753402745);
|
||||
while (true)
|
||||
{
|
||||
int num10 = num;
|
||||
num3 = 1753402744;
|
||||
num4 = num10;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 1753402745;
|
||||
break;
|
||||
case 1:
|
||||
num = ((pathfindResult.Waypoints != null) ? 1753402746 : 1753402747);
|
||||
break;
|
||||
case 3:
|
||||
_003CPathfind_003Ed__26._200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1821206779), Array.Empty<object>());
|
||||
return EmptyPathfindResult();
|
||||
case 2:
|
||||
return pathfindResult;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JsonException ex)
|
||||
{
|
||||
_003CPathfind_003Ed__26._206B_200D_200C_206C_200B_202B_202D_200B_206E_206F_200F_200D_206A_206B_200E_206B_200D_200C_206D_200F_200E_206B_200F_202A_200E_200E_206C_200D_206C_206B_206A_206F_206F_206B_206F_200B_206E_206F_200F_206F_202E((ILogger)_logger, (Exception)ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1517525166), Array.Empty<object>());
|
||||
return EmptyPathfindResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
num = -420000773;
|
||||
while (true)
|
||||
{
|
||||
int num11 = num;
|
||||
num3 = -420000774;
|
||||
num4 = num11;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -420000773;
|
||||
break;
|
||||
case 2:
|
||||
goto end_IL_032e;
|
||||
case 1:
|
||||
_003CPathfind_003Ed__26._200C_200C_202A_200C_200F_206D_206A_206B_206D_202E_200E_200D_200E_206F_202B_202C_200F_202A_202D_206C_202A_206D_202B_200D_202C_206C_200E_202C_200B_200C_202B_200E_200F_202C_206F_202D_202A_200C_206B_206B_202E(ref _outstandingPathfinds);
|
||||
num = -420000776;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_032e:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool MoveTo(List<Vector3> waypoints, bool fly, float arrivalTolerance)
|
||||
{
|
||||
Stop();
|
||||
MoveCommand command = new MoveCommand(waypoints, fly, arrivalTolerance);
|
||||
return Guarded(() => _move.InvokeFunc(command), fallback: false);
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
Guarded(delegate
|
||||
{
|
||||
_stop.InvokeAction();
|
||||
return true;
|
||||
}, fallback: false);
|
||||
}
|
||||
|
||||
public List<Vector3> GetWaypoints()
|
||||
{
|
||||
return Guarded(() => _waypoints.InvokeFunc()) ?? new List<Vector3>();
|
||||
}
|
||||
|
||||
public Vector3? GetPointOnFloor(Vector3 position, bool unlandable, float halfExtentXZ)
|
||||
{
|
||||
return Guarded(() => _floorPoint.InvokeFunc(position, halfExtentXZ, unlandable));
|
||||
}
|
||||
|
||||
public Vector3? FindNearestMeshPoint(Vector3 position, float halfExtentXZ, float halfExtentY)
|
||||
{
|
||||
return Guarded(() => _nearestPoint.InvokeFunc(position, _003C_003Ec__DisplayClass31_0._202B_206C_200C_200E_200F_202E_202E_200F_206A_200D_200E_202B_206B_202A_200D_200B_202A_202C_202E_202C_206F_206B_200F_206B_200E_200B_200F_206D_200E_200C_206B_200B_206B_200F_200E_200B_202A_202B_202D_202E_202E(halfExtentXZ, halfExtentY)));
|
||||
}
|
||||
|
||||
public Vector3? FindNearestReachableMeshPoint(Vector3 position, float halfExtentXZ, float halfExtentY)
|
||||
{
|
||||
return FindNearestMeshPoint(position, halfExtentXZ, halfExtentY);
|
||||
}
|
||||
|
||||
public void Reload()
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Rebuild()
|
||||
{
|
||||
int num = (Guarded(() => _rebuild.InvokeFunc(), fallback: false) ? 890598497 : 890598498);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 890598496;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
return;
|
||||
case 2:
|
||||
_202D_202D_200D_202C_202A_200E_206D_202D_206A_200F_206B_200C_206D_200F_202C_202E_202A_206D_206E_206E_206A_206F_206E_202A_200D_206D_202C_200D_206D_206B_202C_206E_206D_202A_206C_202A_200F_202C_206A_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1801615064), Array.Empty<object>());
|
||||
num = 890598497;
|
||||
break;
|
||||
case 0:
|
||||
num = 890598498;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private NavStatus? GetStatus()
|
||||
{
|
||||
return Guarded(() => _status.InvokeFunc());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private static PathfindResult EmptyPathfindResult()
|
||||
{
|
||||
return new PathfindResult(new List<Vector3>(), IsPartial: false, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1706749360), 0f);
|
||||
}
|
||||
|
||||
static int _200B_200F_200B_202C_200F_202B_202E_206F_200F_202C_206B_200D_206D_202B_202E_206D_202A_202D_206F_202E_206D_202E_200F_202D_206C_202A_206D_200F_206F_206F_202C_202B_202C_200C_202B_202C_202E_206B_206B_206A_202E(ref int P_0)
|
||||
{
|
||||
return Volatile.Read(in P_0);
|
||||
}
|
||||
|
||||
static int _202C_202D_202B_202E_206B_200B_206F_206B_206F_200D_206F_202B_202E_202C_200C_200B_202D_202A_206B_206D_206D_206E_202E_206B_206B_206C_206E_200F_202B_202D_202D_202E_206D_200F_202C_202D_202B_206D_202A_206C_202E(int P_0, int P_1)
|
||||
{
|
||||
return Math.Max(P_0, P_1);
|
||||
}
|
||||
|
||||
static int _200E_200C_202A_206A_202D_206A_200B_200B_200D_206D_202A_206A_202D_202B_206D_200E_202C_202B_206E_206C_200F_202A_206A_202A_206A_200C_206C_206B_202D_202D_206D_202C_200E_206F_206E_200C_206D_202A_206C_202A_202E(int P_0, int P_1, int P_2)
|
||||
{
|
||||
return Math.Clamp(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static void _202D_202D_200D_202C_202A_200E_206D_202D_206A_200F_206B_200C_206D_200F_202C_202E_202A_206D_206E_206E_206A_206F_206E_202A_200D_206D_202C_200D_206D_206B_202C_206E_206D_202A_206C_202A_200F_202C_206A_202C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue