MCDO fixes
fix ipc probably add individual syncshells and shit don't show shared data from paused people change text fix reverting Use InputText/Combo hybrids for MCDO ACLs (#81) * Use InputText/Combo hybrids for MCDO ACLs * Hybrid combo factoring, filtering, ordering, caching fix selecting latest created data on creation rename close to direct pairs add toggle to keep nearby poses active constantly fix gpose hanging fix potential cancelaltion on updateshareddata
This commit is contained in:
@@ -8,7 +8,7 @@ using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace MareSynchronos.Services;
|
||||
|
||||
internal sealed class CharaDataCharacterHandler : DisposableMediatorSubscriberBase
|
||||
public sealed class CharaDataCharacterHandler : DisposableMediatorSubscriberBase
|
||||
{
|
||||
private readonly GameObjectHandlerFactory _gameObjectHandlerFactory;
|
||||
private readonly DalamudUtilService _dalamudUtilService;
|
||||
@@ -71,22 +71,8 @@ internal sealed class CharaDataCharacterHandler : DisposableMediatorSubscriberBa
|
||||
using var handler = await _gameObjectHandlerFactory.Create(ObjectKind.Player,
|
||||
() => _dalamudUtilService.GetGposeCharacterFromObjectTableByName(name, _dalamudUtilService.IsInGpose)?.Address ?? IntPtr.Zero, false)
|
||||
.ConfigureAwait(false);
|
||||
if (handler.Address != IntPtr.Zero)
|
||||
{
|
||||
var poseData = string.Empty;
|
||||
API.Dto.CharaData.WorldData? worldData = null;
|
||||
if (_dalamudUtilService.IsInGpose && reapplyPose)
|
||||
{
|
||||
poseData = await _ipcManager.Brio.GetPoseAsync(handler.Address).ConfigureAwait(false);
|
||||
worldData = await _ipcManager.Brio.GetTransformAsync(handler.Address).ConfigureAwait(false);
|
||||
}
|
||||
if (handler.Address != nint.Zero)
|
||||
await _ipcManager.Penumbra.RedrawAsync(Logger, handler, applicationId, CancellationToken.None).ConfigureAwait(false);
|
||||
if (_dalamudUtilService.IsInGpose && reapplyPose)
|
||||
{
|
||||
await _ipcManager.Brio.SetPoseAsync(handler.Address, poseData ?? "{}").ConfigureAwait(false);
|
||||
await _ipcManager.Brio.ApplyTransformAsync(handler.Address, worldData!.Value).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> RevertHandledChara(string name, bool reapplyPose = true)
|
||||
|
||||
Reference in New Issue
Block a user