Support new Glamournumbra API

Co-authored-by: Stanley Dimant <root.darkarchon@outlook.com>
Co-authored-by: Ottermandias <70807659+Ottermandias@users.noreply.github.com>
This commit is contained in:
Loporrit
2024-05-28 21:54:13 +00:00
parent c32300562d
commit 8e2f17b25d
6 changed files with 247 additions and 111 deletions

View File

@@ -92,9 +92,8 @@ public class MareCharaFileManager : DisposableMediatorSubscriberBase
}
}
var applicationId = Guid.NewGuid();
await _ipcManager.PenumbraRemoveTemporaryCollectionAsync(_logger, applicationId, charaTarget.Name.TextValue).ConfigureAwait(false);
var coll = await _ipcManager.PenumbraCreateTemporaryCollectionAsync(_logger, charaTarget.Name.TextValue).ConfigureAwait(false);
await _ipcManager.PenumbraAssignTemporaryCollectionAsync(_logger, coll, charaTarget.ObjectTableIndex()!.Value).ConfigureAwait(false);
await _ipcManager.PenumbraAssignTemporaryCollectionAsync(_logger, coll, charaTarget.ObjectIndex).ConfigureAwait(false);
await _ipcManager.PenumbraSetTemporaryModsAsync(_logger, applicationId, coll, extractedFiles.Union(fileSwaps).ToDictionary(d => d.Key, d => d.Value, StringComparer.Ordinal)).ConfigureAwait(false);
await _ipcManager.PenumbraSetManipulationDataAsync(_logger, applicationId, coll, LoadedCharaFile.CharaFileData.ManipulationData).ConfigureAwait(false);

View File

@@ -139,9 +139,9 @@ public class PlayerDataFactory
DateTime start = DateTime.UtcNow;
// penumbra call, it's currently broken
IReadOnlyDictionary<string, string[]>? resolvedPaths;
Dictionary<string, HashSet<string>>? resolvedPaths;
resolvedPaths = (await _ipcManager.PenumbraGetCharacterData(_logger, playerRelatedObject).ConfigureAwait(false))![0];
resolvedPaths = await _ipcManager.PenumbraGetCharacterData(_logger, playerRelatedObject).ConfigureAwait(false);
if (resolvedPaths == null) throw new InvalidOperationException("Penumbra returned null data");
previousData.FileReplacements[objectKind] =

View File

@@ -5,7 +5,6 @@ using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using MareSynchronos.Utils;
using Microsoft.Extensions.Logging;
using Penumbra.String;
using System.Runtime.InteropServices;
using static FFXIVClientStructs.FFXIV.Client.Game.Character.DrawDataContainer;
using ObjectKind = MareSynchronos.API.Data.Enum.ObjectKind;

View File

@@ -36,7 +36,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
private CancellationTokenSource? _downloadCancellationTokenSource = new();
private bool _forceApplyMods = false;
private bool _isVisible;
private string _penumbraCollection;
private Guid _penumbraCollection;
private bool _redrawOnNextApplication = false;
private CombatData? _dataReceivedInCombat;
public long LastAppliedDataSize { get; private set; }