remove legacy penumbra and glamourer api
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Interface.Internal.Notifications;
|
using Dalamud.Interface.Internal.Notifications;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using Dalamud.Plugin.Ipc;
|
|
||||||
using Glamourer.Api.Helpers;
|
using Glamourer.Api.Helpers;
|
||||||
using Glamourer.Api.IpcSubscribers;
|
using Glamourer.Api.IpcSubscribers;
|
||||||
using MareSynchronos.PlayerData.Handlers;
|
using MareSynchronos.PlayerData.Handlers;
|
||||||
@@ -28,16 +27,7 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
private readonly UnlockStateName _glamourerUnlockByName;
|
private readonly UnlockStateName _glamourerUnlockByName;
|
||||||
private readonly EventSubscriber<nint>? _glamourerStateChanged;
|
private readonly EventSubscriber<nint>? _glamourerStateChanged;
|
||||||
|
|
||||||
private readonly Glamourer.Api.IpcSubscribers.Legacy.ApiVersions _glamourerApiVersionLegacy;
|
|
||||||
private readonly ICallGateSubscriber<string, GameObject?, uint, object>? _glamourerApplyAllLegacy;
|
|
||||||
private readonly ICallGateSubscriber<GameObject?, string>? _glamourerGetAllCustomizationLegacy;
|
|
||||||
private readonly ICallGateSubscriber<Character?, uint, object?> _glamourerRevertLegacy;
|
|
||||||
private readonly Glamourer.Api.IpcSubscribers.Legacy.RevertLock _glamourerRevertByNameLegacy;
|
|
||||||
private readonly Glamourer.Api.IpcSubscribers.Legacy.UnlockName _glamourerUnlockLegacy;
|
|
||||||
private readonly EventSubscriber<int, nint, Lazy<string>>? _glamourerStateChangedLegacy;
|
|
||||||
|
|
||||||
private bool _shownGlamourerUnavailable = false;
|
private bool _shownGlamourerUnavailable = false;
|
||||||
private bool _useLegacyGlamourer = false;
|
|
||||||
private readonly uint LockCode = 0x6D617265;
|
private readonly uint LockCode = 0x6D617265;
|
||||||
|
|
||||||
public IpcCallerGlamourer(ILogger<IpcCallerGlamourer> logger, DalamudPluginInterface pi, DalamudUtilService dalamudUtil, MareMediator mareMediator,
|
public IpcCallerGlamourer(ILogger<IpcCallerGlamourer> logger, DalamudPluginInterface pi, DalamudUtilService dalamudUtil, MareMediator mareMediator,
|
||||||
@@ -49,14 +39,7 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
_glamourerRevert = new RevertState(pi);
|
_glamourerRevert = new RevertState(pi);
|
||||||
_glamourerRevertByName = new RevertStateName(pi);
|
_glamourerRevertByName = new RevertStateName(pi);
|
||||||
_glamourerUnlock = new UnlockState(pi);
|
_glamourerUnlock = new UnlockState(pi);
|
||||||
_glamourerUnlockByName = new UnlockStateName(pi);
|
_glamourerUnlockByName = new UnlockStateName(pi);
|
||||||
|
|
||||||
_glamourerApiVersionLegacy = new(pi);
|
|
||||||
_glamourerApplyAllLegacy = pi.GetIpcSubscriber<string, GameObject?, uint, object>("Glamourer.ApplyAllToCharacterLock");
|
|
||||||
_glamourerGetAllCustomizationLegacy = pi.GetIpcSubscriber<GameObject?, string>("Glamourer.GetAllCustomizationFromCharacter");
|
|
||||||
_glamourerRevertLegacy = pi.GetIpcSubscriber<Character?, uint, object?>("Glamourer.RevertCharacterLock");
|
|
||||||
_glamourerRevertByNameLegacy = new(pi);
|
|
||||||
_glamourerUnlockLegacy = new(pi);
|
|
||||||
|
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_pi = pi;
|
_pi = pi;
|
||||||
@@ -65,16 +48,8 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
_redrawManager = redrawManager;
|
_redrawManager = redrawManager;
|
||||||
CheckAPI();
|
CheckAPI();
|
||||||
|
|
||||||
if (_useLegacyGlamourer)
|
_glamourerStateChanged = StateChanged.Subscriber(pi, GlamourerChanged);
|
||||||
{
|
_glamourerStateChanged.Enable();
|
||||||
_glamourerStateChangedLegacy = Glamourer.Api.IpcSubscribers.Legacy.StateChanged.Subscriber(pi, (t, a, c) => GlamourerChanged(a));
|
|
||||||
_glamourerStateChangedLegacy.Enable();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_glamourerStateChanged = StateChanged.Subscriber(pi, GlamourerChanged);
|
|
||||||
_glamourerStateChanged.Enable();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool APIAvailable { get; private set; }
|
public bool APIAvailable { get; private set; }
|
||||||
@@ -86,7 +61,7 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
{
|
{
|
||||||
bool versionValid = (_pi.InstalledPlugins
|
bool versionValid = (_pi.InstalledPlugins
|
||||||
.FirstOrDefault(p => string.Equals(p.InternalName, "Glamourer", StringComparison.OrdinalIgnoreCase))
|
.FirstOrDefault(p => string.Equals(p.InternalName, "Glamourer", StringComparison.OrdinalIgnoreCase))
|
||||||
?.Version ?? new Version(0, 0, 0, 0)) >= new Version(1, 0, 6, 1);
|
?.Version ?? new Version(0, 0, 0, 0)) >= new Version(1, 2, 3, 0);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var version = _glamourerApiVersions.Invoke();
|
var version = _glamourerApiVersions.Invoke();
|
||||||
@@ -97,12 +72,7 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
var version = _glamourerApiVersionLegacy.Invoke();
|
// ignore
|
||||||
if (version is { Major: 0, Minor: >= 1 } && versionValid)
|
|
||||||
{
|
|
||||||
apiAvailable = true;
|
|
||||||
_useLegacyGlamourer = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_shownGlamourerUnavailable = _shownGlamourerUnavailable && !apiAvailable;
|
_shownGlamourerUnavailable = _shownGlamourerUnavailable && !apiAvailable;
|
||||||
|
|
||||||
@@ -126,7 +96,6 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
_glamourerStateChanged?.Dispose();
|
_glamourerStateChanged?.Dispose();
|
||||||
_glamourerStateChangedLegacy?.Dispose();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task ApplyAllAsync(ILogger logger, GameObjectHandler handler, string? customization, Guid applicationId, CancellationToken token, bool fireAndForget = false)
|
public async Task ApplyAllAsync(ILogger logger, GameObjectHandler handler, string? customization, Guid applicationId, CancellationToken token, bool fireAndForget = false)
|
||||||
@@ -143,14 +112,7 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
logger.LogDebug("[{appid}] Calling on IPC: GlamourerApplyAll", applicationId);
|
logger.LogDebug("[{appid}] Calling on IPC: GlamourerApplyAll", applicationId);
|
||||||
if (_useLegacyGlamourer)
|
_glamourerApplyAll!.Invoke(customization, chara.ObjectIndex, LockCode);
|
||||||
{
|
|
||||||
_glamourerApplyAllLegacy.InvokeAction(customization, chara, LockCode);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_glamourerApplyAll!.Invoke(customization, chara.ObjectIndex, LockCode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -174,10 +136,7 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
var gameObj = _dalamudUtil.CreateGameObject(character);
|
var gameObj = _dalamudUtil.CreateGameObject(character);
|
||||||
if (gameObj is Character c)
|
if (gameObj is Character c)
|
||||||
{
|
{
|
||||||
if (_useLegacyGlamourer)
|
return _glamourerGetAllCustomization!.Invoke(c.ObjectIndex).Item2 ?? string.Empty;
|
||||||
return _glamourerGetAllCustomizationLegacy.InvokeFunc(c) ?? string.Empty;
|
|
||||||
else
|
|
||||||
return _glamourerGetAllCustomization!.Invoke(c.ObjectIndex).Item2 ?? string.Empty;
|
|
||||||
}
|
}
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
@@ -198,22 +157,11 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (_useLegacyGlamourer)
|
logger.LogDebug("[{appid}] Calling On IPC: GlamourerUnlockName", applicationId);
|
||||||
{
|
_glamourerUnlock.Invoke(chara.ObjectIndex, LockCode);
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerUnlockName", applicationId);
|
logger.LogDebug("[{appid}] Calling On IPC: GlamourerRevert", applicationId);
|
||||||
_glamourerUnlockLegacy.Invoke(name, LockCode);
|
_glamourerRevert.Invoke(chara.ObjectIndex, LockCode);
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerRevert", applicationId);
|
logger.LogDebug("[{appid}] Calling On IPC: PenumbraRedraw", applicationId);
|
||||||
_glamourerRevertLegacy.InvokeAction(chara, LockCode);
|
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: PenumbraRedraw", applicationId);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerUnlockName", applicationId);
|
|
||||||
_glamourerUnlock.Invoke(chara.ObjectIndex, LockCode);
|
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerRevert", applicationId);
|
|
||||||
_glamourerRevert.Invoke(chara.ObjectIndex, LockCode);
|
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: PenumbraRedraw", applicationId);
|
|
||||||
}
|
|
||||||
|
|
||||||
_mareMediator.Publish(new PenumbraRedrawCharacterMessage(chara));
|
_mareMediator.Publish(new PenumbraRedrawCharacterMessage(chara));
|
||||||
}
|
}
|
||||||
@@ -246,20 +194,10 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (_useLegacyGlamourer)
|
logger.LogDebug("[{appid}] Calling On IPC: GlamourerRevertByName", applicationId);
|
||||||
{
|
_glamourerRevertByName.Invoke(name, LockCode);
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerRevertByName", applicationId);
|
logger.LogDebug("[{appid}] Calling On IPC: GlamourerUnlockName", applicationId);
|
||||||
_glamourerRevertByNameLegacy.Invoke(name, LockCode);
|
_glamourerUnlockByName.Invoke(name, LockCode);
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerUnlockName", applicationId);
|
|
||||||
_glamourerUnlockLegacy.Invoke(name, LockCode);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerRevertByName", applicationId);
|
|
||||||
_glamourerRevertByName.Invoke(name, LockCode);
|
|
||||||
logger.LogDebug("[{appid}] Calling On IPC: GlamourerUnlockName", applicationId);
|
|
||||||
_glamourerUnlockByName.Invoke(name, LockCode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -271,5 +209,4 @@ public sealed class IpcCallerGlamourer : IIpcCaller
|
|||||||
{
|
{
|
||||||
_mareMediator.Publish(new GlamourerChangedMessage(address));
|
_mareMediator.Publish(new GlamourerChangedMessage(address));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
private readonly MareMediator _mareMediator;
|
private readonly MareMediator _mareMediator;
|
||||||
private readonly RedrawManager _redrawManager;
|
private readonly RedrawManager _redrawManager;
|
||||||
private bool _shownPenumbraUnavailable = false;
|
private bool _shownPenumbraUnavailable = false;
|
||||||
private bool _useLegacyPenumbraApi = false;
|
|
||||||
private string? _penumbraModDirectory;
|
private string? _penumbraModDirectory;
|
||||||
public string? ModDirectory
|
public string? ModDirectory
|
||||||
{
|
{
|
||||||
@@ -53,15 +52,6 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
private readonly GetModDirectory _penumbraResolveModDir;
|
private readonly GetModDirectory _penumbraResolveModDir;
|
||||||
private readonly ResolvePlayerPathsAsync _penumbraResolvePaths;
|
private readonly ResolvePlayerPathsAsync _penumbraResolvePaths;
|
||||||
private readonly GetGameObjectResourcePaths _penumbraResourcePaths;
|
private readonly GetGameObjectResourcePaths _penumbraResourcePaths;
|
||||||
private readonly ApiVersion _penumbraApiVersion;
|
|
||||||
|
|
||||||
private readonly Penumbra.Api.IpcSubscribers.Legacy.AddTemporaryMod _penumbraAddTemporaryModLegacy;
|
|
||||||
private readonly Penumbra.Api.IpcSubscribers.Legacy.RemoveTemporaryMod _penumbraRemoveTemporaryModLegacy;
|
|
||||||
private readonly Penumbra.Api.IpcSubscribers.Legacy.CreateNamedTemporaryCollection _penumbraCreateNamedTemporaryCollectionLegacy;
|
|
||||||
private readonly Penumbra.Api.IpcSubscribers.Legacy.AssignTemporaryCollection _penumbraAssignTemporaryCollectionLegacy;
|
|
||||||
private readonly Penumbra.Api.IpcSubscribers.Legacy.RemoveTemporaryCollectionByName _penumbraRemoveTemporaryCollectionLegacy;
|
|
||||||
private readonly Penumbra.Api.IpcSubscribers.Legacy.RedrawObjectByIndex _penumbraRedrawLegacy;
|
|
||||||
private readonly Penumbra.Api.IpcSubscribers.Legacy.GetGameObjectResourcePaths _penumbraResourcePathsLegacy;
|
|
||||||
|
|
||||||
public IpcCallerPenumbra(ILogger<IpcCallerPenumbra> logger, DalamudPluginInterface pi, DalamudUtilService dalamudUtil,
|
public IpcCallerPenumbra(ILogger<IpcCallerPenumbra> logger, DalamudPluginInterface pi, DalamudUtilService dalamudUtil,
|
||||||
MareMediator mareMediator, RedrawManager redrawManager) : base(logger, mareMediator)
|
MareMediator mareMediator, RedrawManager redrawManager) : base(logger, mareMediator)
|
||||||
@@ -90,15 +80,6 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
});
|
});
|
||||||
_penumbraConvertTextureFile = new ConvertTextureFile(pi);
|
_penumbraConvertTextureFile = new ConvertTextureFile(pi);
|
||||||
_penumbraResourcePaths = new GetGameObjectResourcePaths(pi);
|
_penumbraResourcePaths = new GetGameObjectResourcePaths(pi);
|
||||||
_penumbraApiVersion = new(pi);
|
|
||||||
|
|
||||||
_penumbraAddTemporaryModLegacy = new(pi);
|
|
||||||
_penumbraAssignTemporaryCollectionLegacy = new(pi);
|
|
||||||
_penumbraCreateNamedTemporaryCollectionLegacy = new(pi);
|
|
||||||
_penumbraRemoveTemporaryCollectionLegacy = new(pi);
|
|
||||||
_penumbraRedrawLegacy = new(pi);
|
|
||||||
_penumbraRemoveTemporaryModLegacy = new(pi);
|
|
||||||
_penumbraResourcePathsLegacy = new(pi);
|
|
||||||
|
|
||||||
_penumbraGameObjectResourcePathResolved = GameObjectResourcePathResolved.Subscriber(pi, ResourceLoaded);
|
_penumbraGameObjectResourcePathResolved = GameObjectResourcePathResolved.Subscriber(pi, ResourceLoaded);
|
||||||
|
|
||||||
@@ -107,10 +88,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
|
|
||||||
Mediator.Subscribe<PenumbraRedrawCharacterMessage>(this, (msg) =>
|
Mediator.Subscribe<PenumbraRedrawCharacterMessage>(this, (msg) =>
|
||||||
{
|
{
|
||||||
if (_useLegacyPenumbraApi)
|
_penumbraRedraw.Invoke(msg.Character.ObjectIndex, RedrawType.AfterGPose);
|
||||||
_penumbraRedrawLegacy.Invoke(msg.Character.ObjectIndex, RedrawType.AfterGPose);
|
|
||||||
else
|
|
||||||
_penumbraRedraw.Invoke(msg.Character.ObjectIndex, RedrawType.AfterGPose);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,16 +102,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
var penumbraVersion = (_pi.InstalledPlugins
|
var penumbraVersion = (_pi.InstalledPlugins
|
||||||
.FirstOrDefault(p => string.Equals(p.InternalName, "Penumbra", StringComparison.OrdinalIgnoreCase))
|
.FirstOrDefault(p => string.Equals(p.InternalName, "Penumbra", StringComparison.OrdinalIgnoreCase))
|
||||||
?.Version ?? new Version(0, 0, 0, 0));
|
?.Version ?? new Version(0, 0, 0, 0));
|
||||||
penumbraAvailable = penumbraVersion >= new Version(1, 0, 1, 0);
|
penumbraAvailable = penumbraVersion >= new Version(1, 1, 0, 0);
|
||||||
try
|
|
||||||
{
|
|
||||||
_ = _penumbraApiVersion.Invoke();
|
|
||||||
_useLegacyPenumbraApi = false;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
_useLegacyPenumbraApi = true;
|
|
||||||
}
|
|
||||||
penumbraAvailable &= _penumbraEnabled.Invoke();
|
penumbraAvailable &= _penumbraEnabled.Invoke();
|
||||||
_shownPenumbraUnavailable = _shownPenumbraUnavailable && !penumbraAvailable;
|
_shownPenumbraUnavailable = _shownPenumbraUnavailable && !penumbraAvailable;
|
||||||
APIAvailable = penumbraAvailable;
|
APIAvailable = penumbraAvailable;
|
||||||
@@ -185,9 +154,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
|
|
||||||
await _dalamudUtil.RunOnFrameworkThread(() =>
|
await _dalamudUtil.RunOnFrameworkThread(() =>
|
||||||
{
|
{
|
||||||
var retAssign = _useLegacyPenumbraApi
|
var retAssign = _penumbraAssignTemporaryCollection.Invoke(collName, idx, forceAssignment: true);
|
||||||
? _penumbraAssignTemporaryCollectionLegacy.Invoke(collName.ToString(), idx, true)
|
|
||||||
: _penumbraAssignTemporaryCollection.Invoke(collName, idx, forceAssignment: true);
|
|
||||||
logger.LogTrace("Assigning Temp Collection {collName} to index {idx}, Success: {ret}", collName, idx, retAssign);
|
logger.LogTrace("Assigning Temp Collection {collName} to index {idx}, Success: {ret}", collName, idx, retAssign);
|
||||||
return collName;
|
return collName;
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
@@ -229,10 +196,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
await _dalamudUtil.RunOnFrameworkThread(async () =>
|
await _dalamudUtil.RunOnFrameworkThread(async () =>
|
||||||
{
|
{
|
||||||
var gameObject = await _dalamudUtil.CreateGameObjectAsync(await _dalamudUtil.GetPlayerPointerAsync().ConfigureAwait(false)).ConfigureAwait(false);
|
var gameObject = await _dalamudUtil.CreateGameObjectAsync(await _dalamudUtil.GetPlayerPointerAsync().ConfigureAwait(false)).ConfigureAwait(false);
|
||||||
if (_useLegacyPenumbraApi)
|
_penumbraRedraw.Invoke(gameObject!.ObjectIndex, setting: RedrawType.Redraw);
|
||||||
_penumbraRedrawLegacy.Invoke(gameObject!.ObjectIndex, RedrawType.Redraw);
|
|
||||||
else
|
|
||||||
_penumbraRedraw.Invoke(gameObject!.ObjectIndex, setting: RedrawType.Redraw);
|
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,20 +206,10 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
|
|
||||||
return await _dalamudUtil.RunOnFrameworkThread(() =>
|
return await _dalamudUtil.RunOnFrameworkThread(() =>
|
||||||
{
|
{
|
||||||
if (!_useLegacyPenumbraApi)
|
var collName = "Mare_" + uid;
|
||||||
{
|
var collId = _penumbraCreateNamedTemporaryCollection.Invoke(collName);
|
||||||
var collName = "Mare_" + uid;
|
logger.LogTrace("Creating Temp Collection {collName}, GUID: {collId}", collName, collId);
|
||||||
var collId = _penumbraCreateNamedTemporaryCollection.Invoke(collName);
|
return collId;
|
||||||
logger.LogTrace("Creating Temp Collection {collName}, GUID: {collId}", collName, collId);
|
|
||||||
return collId;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var collid = Guid.NewGuid();
|
|
||||||
_penumbraCreateNamedTemporaryCollectionLegacy.Invoke(collid.ToString());
|
|
||||||
logger.LogTrace("Creating Temp Collection {collName}", collid);
|
|
||||||
return collid;
|
|
||||||
}
|
|
||||||
|
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -269,16 +223,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
logger.LogTrace("Calling On IPC: Penumbra.GetGameObjectResourcePaths");
|
logger.LogTrace("Calling On IPC: Penumbra.GetGameObjectResourcePaths");
|
||||||
var idx = handler.GetGameObject()?.ObjectIndex;
|
var idx = handler.GetGameObject()?.ObjectIndex;
|
||||||
if (idx == null) return null;
|
if (idx == null) return null;
|
||||||
if (_useLegacyPenumbraApi)
|
return _penumbraResourcePaths.Invoke(idx.Value)[0];
|
||||||
{
|
|
||||||
IReadOnlyDictionary<string, string[]>?[] ret = _penumbraResourcePathsLegacy.Invoke(idx.Value);
|
|
||||||
if (!ret.Any()) return null;
|
|
||||||
return ret[0]!.ToDictionary(r => r.Key, r => new HashSet<string>(r.Value));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return _penumbraResourcePaths.Invoke(idx.Value)[0];
|
|
||||||
}
|
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -297,10 +242,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
await _redrawManager.PenumbraRedrawInternalAsync(logger, handler, applicationId, (chara) =>
|
await _redrawManager.PenumbraRedrawInternalAsync(logger, handler, applicationId, (chara) =>
|
||||||
{
|
{
|
||||||
logger.LogDebug("[{appid}] Calling on IPC: PenumbraRedraw", applicationId);
|
logger.LogDebug("[{appid}] Calling on IPC: PenumbraRedraw", applicationId);
|
||||||
if (_useLegacyPenumbraApi)
|
_penumbraRedraw!.Invoke(chara.ObjectIndex, setting: RedrawType.Redraw);
|
||||||
_penumbraRedrawLegacy.Invoke(chara.ObjectIndex, RedrawType.Redraw);
|
|
||||||
else
|
|
||||||
_penumbraRedraw!.Invoke(chara.ObjectIndex, setting: RedrawType.Redraw);
|
|
||||||
|
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -316,9 +258,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
await _dalamudUtil.RunOnFrameworkThread(() =>
|
await _dalamudUtil.RunOnFrameworkThread(() =>
|
||||||
{
|
{
|
||||||
logger.LogTrace("[{applicationId}] Removing temp collection for {collId}", applicationId, collId);
|
logger.LogTrace("[{applicationId}] Removing temp collection for {collId}", applicationId, collId);
|
||||||
var ret2 = _useLegacyPenumbraApi
|
var ret2 = _penumbraRemoveTemporaryCollection.Invoke(collId);
|
||||||
? _penumbraRemoveTemporaryCollectionLegacy.Invoke(collId.ToString())
|
|
||||||
: _penumbraRemoveTemporaryCollection.Invoke(collId);
|
|
||||||
logger.LogTrace("[{applicationId}] RemoveTemporaryCollection: {ret2}", applicationId, ret2);
|
logger.LogTrace("[{applicationId}] RemoveTemporaryCollection: {ret2}", applicationId, ret2);
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -335,9 +275,7 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
await _dalamudUtil.RunOnFrameworkThread(() =>
|
await _dalamudUtil.RunOnFrameworkThread(() =>
|
||||||
{
|
{
|
||||||
logger.LogTrace("[{applicationId}] Manip: {data}", applicationId, manipulationData);
|
logger.LogTrace("[{applicationId}] Manip: {data}", applicationId, manipulationData);
|
||||||
var retAdd = _useLegacyPenumbraApi
|
var retAdd = _penumbraAddTemporaryMod.Invoke("MareChara_Meta", collId, [], manipulationData, 0);
|
||||||
? _penumbraAddTemporaryModLegacy.Invoke("MareChara_Meta", collId.ToString(), [], manipulationData, 0)
|
|
||||||
: _penumbraAddTemporaryMod.Invoke("MareChara_Meta", collId, [], manipulationData, 0);
|
|
||||||
logger.LogTrace("[{applicationId}] Setting temp meta mod for {collId}, Success: {ret}", applicationId, collId, retAdd);
|
logger.LogTrace("[{applicationId}] Setting temp meta mod for {collId}, Success: {ret}", applicationId, collId, retAdd);
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -352,13 +290,9 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
{
|
{
|
||||||
logger.LogTrace("[{applicationId}] Change: {from} => {to}", applicationId, mod.Key, mod.Value);
|
logger.LogTrace("[{applicationId}] Change: {from} => {to}", applicationId, mod.Key, mod.Value);
|
||||||
}
|
}
|
||||||
var retRemove = _useLegacyPenumbraApi
|
var retRemove = _penumbraRemoveTemporaryMod.Invoke("MareChara_Files", collId, 0);
|
||||||
? _penumbraRemoveTemporaryModLegacy.Invoke("MareChara_Files", collId.ToString(), 0)
|
|
||||||
: _penumbraRemoveTemporaryMod.Invoke("MareChara_Files", collId, 0);
|
|
||||||
logger.LogTrace("[{applicationId}] Removing temp files mod for {collId}, Success: {ret}", applicationId, collId, retRemove);
|
logger.LogTrace("[{applicationId}] Removing temp files mod for {collId}, Success: {ret}", applicationId, collId, retRemove);
|
||||||
var retAdd = _useLegacyPenumbraApi
|
var retAdd = _penumbraAddTemporaryMod.Invoke("MareChara_Files", collId, modPaths, string.Empty, 0);
|
||||||
? _penumbraAddTemporaryModLegacy.Invoke("MareChara_Files", collId.ToString(), modPaths, string.Empty, 0)
|
|
||||||
: _penumbraAddTemporaryMod.Invoke("MareChara_Files", collId, modPaths, string.Empty, 0);
|
|
||||||
logger.LogTrace("[{applicationId}] Setting temp files mod for {collId}, Success: {ret}", applicationId, collId, retAdd);
|
logger.LogTrace("[{applicationId}] Setting temp files mod for {collId}, Success: {ret}", applicationId, collId, retAdd);
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@@ -395,10 +329,6 @@ public sealed class IpcCallerPenumbra : DisposableMediatorSubscriberBase, IIpcCa
|
|||||||
APIAvailable = true;
|
APIAvailable = true;
|
||||||
ModDirectory = _penumbraResolveModDir.Invoke();
|
ModDirectory = _penumbraResolveModDir.Invoke();
|
||||||
_mareMediator.Publish(new PenumbraInitializedMessage());
|
_mareMediator.Publish(new PenumbraInitializedMessage());
|
||||||
if (_useLegacyPenumbraApi)
|
_penumbraRedraw!.Invoke(0, setting: RedrawType.Redraw);
|
||||||
_penumbraRedrawLegacy.Invoke(0, RedrawType.Redraw);
|
|
||||||
else
|
|
||||||
_penumbraRedraw!.Invoke(0, setting: RedrawType.Redraw);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user