stop processing framework queue while in gpose
This commit is contained in:
@@ -163,16 +163,6 @@ public class CachedPlayer
|
||||
ApplyBaseData(moddedPaths);
|
||||
}
|
||||
|
||||
if (_dalamudUtil.IsInGpose)
|
||||
{
|
||||
Logger.Verbose("Player is in GPose, waiting");
|
||||
while (_dalamudUtil.IsInGpose)
|
||||
{
|
||||
await Task.Delay(TimeSpan.FromSeconds(0.5));
|
||||
downloadToken.ThrowIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var kind in objectKind)
|
||||
{
|
||||
ApplyCustomizationData(kind);
|
||||
|
||||
@@ -198,30 +198,6 @@ public class OnlinePlayerManager : IDisposable
|
||||
return;
|
||||
}
|
||||
|
||||
if (_dalamudUtil.IsInGpose)
|
||||
{
|
||||
_playerTokenDisposal.TryGetValue(cachedPlayer, out var cancellationTokenSource);
|
||||
cancellationTokenSource?.Cancel();
|
||||
cachedPlayer.IsVisible = false;
|
||||
_playerTokenDisposal[cachedPlayer] = new CancellationTokenSource();
|
||||
cancellationTokenSource = _playerTokenDisposal[cachedPlayer];
|
||||
var token = cancellationTokenSource.Token;
|
||||
Task.Run(async () =>
|
||||
{
|
||||
Logger.Verbose("Cannot dispose Player, in GPose");
|
||||
while (_dalamudUtil.IsInGpose)
|
||||
{
|
||||
await Task.Delay(TimeSpan.FromSeconds(0.5));
|
||||
if (token.IsCancellationRequested) return;
|
||||
}
|
||||
|
||||
cachedPlayer.DisposePlayer();
|
||||
_onlineCachedPlayers.TryRemove(characterHash, out _);
|
||||
}, token);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
cachedPlayer.DisposePlayer();
|
||||
_onlineCachedPlayers.TryRemove(characterHash, out _);
|
||||
}
|
||||
|
||||
@@ -165,8 +165,6 @@ namespace MareSynchronos.Managers
|
||||
|
||||
private void OnPlayerOrAttachedObjectsChanged()
|
||||
{
|
||||
if (_dalamudUtil.IsInGpose) return;
|
||||
|
||||
var unprocessedObjects = playerRelatedObjects.Where(c => c.HasUnprocessedUpdate).ToList();
|
||||
foreach (var unprocessedObject in unprocessedObjects)
|
||||
{
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace MareSynchronos.Utils
|
||||
|
||||
private void FrameworkOnUpdate(Framework framework)
|
||||
{
|
||||
if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51])
|
||||
if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51] || IsInGpose)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user