mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-12 19:37:23 +01:00
some customize+ application fixes
This commit is contained in:
parent
04961618ed
commit
71c510b0f4
3 changed files with 17 additions and 2 deletions
|
|
@ -79,6 +79,7 @@ public class PlayerDataFactory
|
|||
|
||||
var previousFileReplacements = previousData.FileReplacements.ToDictionary(d => d.Key, d => d.Value);
|
||||
var previousGlamourerData = previousData.GlamourerString.ToDictionary(d => d.Key, d => d.Value);
|
||||
var previousCustomize = previousData.CustomizePlusScale.ToDictionary(d => d.Key, d => d.Value);
|
||||
|
||||
try
|
||||
{
|
||||
|
|
@ -100,6 +101,7 @@ public class PlayerDataFactory
|
|||
|
||||
previousData.FileReplacements = previousFileReplacements;
|
||||
previousData.GlamourerString = previousGlamourerData;
|
||||
previousData.CustomizePlusScale = previousCustomize;
|
||||
}
|
||||
|
||||
private unsafe void AddPlayerSpecificReplacements(Human* human, HashSet<string> forwardResolve, HashSet<string> reverseResolve)
|
||||
|
|
@ -312,6 +314,11 @@ public class PlayerDataFactory
|
|||
previousData.FileReplacements[objectKind].Clear();
|
||||
}
|
||||
|
||||
if (previousData.CustomizePlusScale.ContainsKey(objectKind))
|
||||
{
|
||||
previousData.CustomizePlusScale.Remove(objectKind);
|
||||
}
|
||||
|
||||
// wait until chara is not drawing and present so nothing spontaneously explodes
|
||||
await _dalamudUtil.WaitWhileCharacterIsDrawing(_logger, playerRelatedObject, Guid.NewGuid(), 30000, ct: token).ConfigureAwait(false);
|
||||
int totalWaitTime = 10000;
|
||||
|
|
@ -381,7 +388,7 @@ public class PlayerDataFactory
|
|||
previousData.GlamourerString[playerRelatedObject.ObjectKind] = await getGlamourerData.ConfigureAwait(false);
|
||||
_logger.LogDebug("Glamourer is now: {data}", previousData.GlamourerString[playerRelatedObject.ObjectKind]);
|
||||
var customizeScale = await getCustomizeData.ConfigureAwait(false);
|
||||
if (customizeScale != null)
|
||||
if (!string.IsNullOrEmpty(customizeScale))
|
||||
{
|
||||
previousData.CustomizePlusScale[playerRelatedObject.ObjectKind] = customizeScale;
|
||||
_logger.LogDebug("Customize is now: {data}", previousData.CustomizePlusScale[playerRelatedObject.ObjectKind]);
|
||||
|
|
|
|||
|
|
@ -233,6 +233,10 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||
{
|
||||
await _ipcManager.CustomizePlusSetBodyScaleAsync(handler.Address, customizePlusData).ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
await _ipcManager.CustomizePlusRevertAsync(handler.Address).ConfigureAwait(false);
|
||||
}
|
||||
break;
|
||||
|
||||
case PlayerChanges.Heels:
|
||||
|
|
@ -533,6 +537,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||
var minionOrMount = await _dalamudUtil.GetMinionOrMountAsync(address).ConfigureAwait(false);
|
||||
if (minionOrMount != nint.Zero)
|
||||
{
|
||||
await _ipcManager.CustomizePlusRevertAsync(minionOrMount).ConfigureAwait(false);
|
||||
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.MinionOrMount, () => minionOrMount, false).ConfigureAwait(false);
|
||||
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
||||
}
|
||||
|
|
@ -542,6 +547,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||
var pet = await _dalamudUtil.GetPetAsync(address).ConfigureAwait(false);
|
||||
if (pet != nint.Zero)
|
||||
{
|
||||
await _ipcManager.CustomizePlusRevertAsync(pet).ConfigureAwait(false);
|
||||
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.Pet, () => pet, false).ConfigureAwait(false);
|
||||
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
||||
}
|
||||
|
|
@ -551,6 +557,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
|
|||
var companion = await _dalamudUtil.GetCompanionAsync(address).ConfigureAwait(false);
|
||||
if (companion != nint.Zero)
|
||||
{
|
||||
await _ipcManager.CustomizePlusRevertAsync(companion).ConfigureAwait(false);
|
||||
using GameObjectHandler tempHandler = await _gameObjectHandlerFactory.Create(ObjectKind.Pet, () => companion, false).ConfigureAwait(false);
|
||||
await _ipcManager.PenumbraRedrawAsync(Logger, tempHandler, applicationId, cancelToken.Token).ConfigureAwait(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,8 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase
|
|||
{
|
||||
if (_isZoning) return;
|
||||
foreach (var item in _playerRelatedObjects
|
||||
.Where(item => string.Equals(item.Value.Name, msg.ProfileName, StringComparison.Ordinal)).Select(k => k.Key))
|
||||
.Where(item => string.IsNullOrEmpty(msg.ProfileName)
|
||||
|| 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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue