Heels and C+ updates (#54)

* add heels and customize plus multi data

* adjust customize plus api calls

* adjustments to ipc for customize

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
This commit is contained in:
rootdarkarchon
2023-07-17 08:57:56 +02:00
committed by GitHub
parent 5543c7c7ad
commit 08a35c9152
11 changed files with 116 additions and 125 deletions

View File

@@ -5,6 +5,7 @@ using MareSynchronos.PlayerData.Handlers;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using Microsoft.Extensions.Logging;
using System.Linq;
namespace MareSynchronos.PlayerData.Services;
@@ -53,15 +54,20 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase
Logger.LogTrace("Clearing cache for {obj}", msg.ObjectToCreateFor);
_playerData.FileReplacements.Remove(msg.ObjectToCreateFor.ObjectKind);
_playerData.GlamourerString.Remove(msg.ObjectToCreateFor.ObjectKind);
_playerData.CustomizePlusScale.Remove(msg.ObjectToCreateFor.ObjectKind);
Mediator.Publish(new CharacterDataCreatedMessage(_playerData.ToAPI()));
});
});
Mediator.Subscribe<CustomizePlusMessage>(this, async (_) =>
Mediator.Subscribe<CustomizePlusMessage>(this, async (msg) =>
{
if (_isZoning) return;
Logger.LogDebug("Received CustomizePlus change, updating player");
await AddPlayerCacheToCreate().ConfigureAwait(false);
foreach (var item in _playerRelatedObjects
.Where(item => string.Equals(item.Value.Name, msg.ProfileName, StringComparison.Ordinal)).Select(k => k.Key))
{
Logger.LogDebug("Received CustomizePlus change, updating {obj}", item);
await AddPlayerCacheToCreate(item).ConfigureAwait(false);
}
});
Mediator.Subscribe<HeelsOffsetMessage>(this, async (_) =>
{
@@ -104,10 +110,10 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase
_cts.Dispose();
}
private async Task AddPlayerCacheToCreate()
private async Task AddPlayerCacheToCreate(ObjectKind kind = ObjectKind.Player)
{
await _cacheCreateLock.WaitAsync().ConfigureAwait(false);
_cachesToCreate[ObjectKind.Player] = _playerRelatedObjects[ObjectKind.Player];
_cachesToCreate[kind] = _playerRelatedObjects[kind];
_cacheCreateLock.Release();
}