remove palette+ support
This commit is contained in:
		| @@ -42,11 +42,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|     private readonly ICallGateSubscriber<string, object> _honorificLocalCharacterTitleChanged; |     private readonly ICallGateSubscriber<string, object> _honorificLocalCharacterTitleChanged; | ||||||
|     private readonly ICallGateSubscriber<object> _honorificReady; |     private readonly ICallGateSubscriber<object> _honorificReady; | ||||||
|     private readonly ICallGateSubscriber<Character, string, object> _honorificSetCharacterTitle; |     private readonly ICallGateSubscriber<Character, string, object> _honorificSetCharacterTitle; | ||||||
|     private readonly ICallGateSubscriber<string> _palettePlusApiVersion; |  | ||||||
|     private readonly ICallGateSubscriber<Character, string> _palettePlusBuildCharaPalette; |  | ||||||
|     private readonly ICallGateSubscriber<Character, string, object> _palettePlusPaletteChanged; |  | ||||||
|     private readonly ICallGateSubscriber<Character, object> _palettePlusRemoveCharaPalette; |  | ||||||
|     private readonly ICallGateSubscriber<Character, string, object> _palettePlusSetCharaPalette; |  | ||||||
|     private readonly FuncSubscriber<string, string, Dictionary<string, string>, string, int, PenumbraApiEc> _penumbraAddTemporaryMod; |     private readonly FuncSubscriber<string, string, Dictionary<string, string>, string, int, PenumbraApiEc> _penumbraAddTemporaryMod; | ||||||
|     private readonly FuncSubscriber<string, int, bool, PenumbraApiEc> _penumbraAssignTemporaryCollection; |     private readonly FuncSubscriber<string, int, bool, PenumbraApiEc> _penumbraAssignTemporaryCollection; | ||||||
|     private readonly FuncSubscriber<string, string, TextureType, bool, Task> _penumbraConvertTextureFile; |     private readonly FuncSubscriber<string, string, TextureType, bool, Task> _penumbraConvertTextureFile; | ||||||
| @@ -73,7 +68,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|     private bool _glamourerAvailable = false; |     private bool _glamourerAvailable = false; | ||||||
|     private bool _heelsAvailable = false; |     private bool _heelsAvailable = false; | ||||||
|     private bool _honorificAvailable = false; |     private bool _honorificAvailable = false; | ||||||
|     private bool _palettePlusAvailable = false; |  | ||||||
|     private bool _penumbraAvailable = false; |     private bool _penumbraAvailable = false; | ||||||
|     private bool _shownGlamourerUnavailable = false; |     private bool _shownGlamourerUnavailable = false; | ||||||
|     private bool _shownPenumbraUnavailable = false; |     private bool _shownPenumbraUnavailable = false; | ||||||
| @@ -132,14 +126,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|  |  | ||||||
|         _customizePlusOnScaleUpdate.Subscribe(OnCustomizePlusScaleChange); |         _customizePlusOnScaleUpdate.Subscribe(OnCustomizePlusScaleChange); | ||||||
|  |  | ||||||
|         _palettePlusApiVersion = pi.GetIpcSubscriber<string>("PalettePlus.ApiVersion"); |  | ||||||
|         _palettePlusBuildCharaPalette = pi.GetIpcSubscriber<Character, string>("PalettePlus.BuildCharaPaletteOrEmpty"); |  | ||||||
|         _palettePlusSetCharaPalette = pi.GetIpcSubscriber<Character, string, object>("PalettePlus.SetCharaPalette"); |  | ||||||
|         _palettePlusRemoveCharaPalette = pi.GetIpcSubscriber<Character, object>("PalettePlus.RemoveCharaPalette"); |  | ||||||
|         _palettePlusPaletteChanged = pi.GetIpcSubscriber<Character, string, object>("PalettePlus.PaletteChanged"); |  | ||||||
|  |  | ||||||
|         _palettePlusPaletteChanged.Subscribe(OnPalettePlusPaletteChange); |  | ||||||
|  |  | ||||||
|         _honorificApiVersion = pi.GetIpcSubscriber<(uint, uint)>("Honorific.ApiVersion"); |         _honorificApiVersion = pi.GetIpcSubscriber<(uint, uint)>("Honorific.ApiVersion"); | ||||||
|         _honorificGetLocalCharacterTitle = pi.GetIpcSubscriber<string>("Honorific.GetLocalCharacterTitle"); |         _honorificGetLocalCharacterTitle = pi.GetIpcSubscriber<string>("Honorific.GetLocalCharacterTitle"); | ||||||
|         _honorificClearCharacterTitle = pi.GetIpcSubscriber<Character, object>("Honorific.ClearCharacterTitle"); |         _honorificClearCharacterTitle = pi.GetIpcSubscriber<Character, object>("Honorific.ClearCharacterTitle"); | ||||||
| @@ -180,8 +166,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|  |  | ||||||
|     public bool CheckHonorificApi() => _honorificAvailable; |     public bool CheckHonorificApi() => _honorificAvailable; | ||||||
|  |  | ||||||
|     public bool CheckPalettePlusApi() => _palettePlusAvailable; |  | ||||||
|  |  | ||||||
|     public bool CheckPenumbraApi() => _penumbraAvailable; |     public bool CheckPenumbraApi() => _penumbraAvailable; | ||||||
|  |  | ||||||
|     public async Task CustomizePlusRevertAsync(IntPtr character) |     public async Task CustomizePlusRevertAsync(IntPtr character) | ||||||
| @@ -433,51 +417,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public async Task<string> PalettePlusBuildPaletteAsync() |  | ||||||
|     { |  | ||||||
|         if (!CheckPalettePlusApi()) return string.Empty; |  | ||||||
|         var palette = await _dalamudUtil.RunOnFrameworkThread(() => _palettePlusBuildCharaPalette.InvokeFunc(_dalamudUtil.GetPlayerCharacter())).ConfigureAwait(false); |  | ||||||
|         if (string.IsNullOrEmpty(palette)) return string.Empty; |  | ||||||
|         return Convert.ToBase64String(Encoding.UTF8.GetBytes(palette)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public async Task PalettePlusRemovePaletteAsync(IntPtr character) |  | ||||||
|     { |  | ||||||
|         if (!CheckPalettePlusApi()) return; |  | ||||||
|         await _dalamudUtil.RunOnFrameworkThread(() => |  | ||||||
|         { |  | ||||||
|             var gameObj = _dalamudUtil.CreateGameObject(character); |  | ||||||
|             if (gameObj is Character c) |  | ||||||
|             { |  | ||||||
|                 Logger.LogTrace("PalettePlus removing for {addr}", c.Address.ToString("X")); |  | ||||||
|                 _palettePlusRemoveCharaPalette!.InvokeAction(c); |  | ||||||
|             } |  | ||||||
|         }).ConfigureAwait(false); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public async Task PalettePlusSetPaletteAsync(IntPtr character, string palette) |  | ||||||
|     { |  | ||||||
|         if (!CheckPalettePlusApi()) return; |  | ||||||
|         string decodedPalette = Encoding.UTF8.GetString(Convert.FromBase64String(palette)); |  | ||||||
|         await _dalamudUtil.RunOnFrameworkThread(() => |  | ||||||
|         { |  | ||||||
|             var gameObj = _dalamudUtil.CreateGameObject(character); |  | ||||||
|             if (gameObj is Character c) |  | ||||||
|             { |  | ||||||
|                 if (string.IsNullOrEmpty(decodedPalette)) |  | ||||||
|                 { |  | ||||||
|                     Logger.LogTrace("PalettePlus removing for {addr}", c.Address.ToString("X")); |  | ||||||
|                     _palettePlusRemoveCharaPalette!.InvokeAction(c); |  | ||||||
|                 } |  | ||||||
|                 else |  | ||||||
|                 { |  | ||||||
|                     Logger.LogTrace("PalettePlus applying for {addr}", c.Address.ToString("X")); |  | ||||||
|                     _palettePlusSetCharaPalette!.InvokeAction(c, decodedPalette); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }).ConfigureAwait(false); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public async Task PenumbraAssignTemporaryCollectionAsync(ILogger logger, string collName, int idx) |     public async Task PenumbraAssignTemporaryCollectionAsync(ILogger logger, string collName, int idx) | ||||||
|     { |     { | ||||||
|         if (!CheckPenumbraApi()) return; |         if (!CheckPenumbraApi()) return; | ||||||
| @@ -637,7 +576,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|         _penumbraInit.Dispose(); |         _penumbraInit.Dispose(); | ||||||
|         _penumbraObjectIsRedrawn.Dispose(); |         _penumbraObjectIsRedrawn.Dispose(); | ||||||
|         _heelsOffsetUpdate.Unsubscribe(HeelsOffsetChange); |         _heelsOffsetUpdate.Unsubscribe(HeelsOffsetChange); | ||||||
|         _palettePlusPaletteChanged.Unsubscribe(OnPalettePlusPaletteChange); |  | ||||||
|         _customizePlusOnScaleUpdate.Unsubscribe(OnCustomizePlusScaleChange); |         _customizePlusOnScaleUpdate.Unsubscribe(OnCustomizePlusScaleChange); | ||||||
|         _honorificLocalCharacterTitleChanged.Unsubscribe(OnHonorificLocalCharacterTitleChanged); |         _honorificLocalCharacterTitleChanged.Unsubscribe(OnHonorificLocalCharacterTitleChanged); | ||||||
|         _honorificDisposing.Unsubscribe(OnHonorificDisposing); |         _honorificDisposing.Unsubscribe(OnHonorificDisposing); | ||||||
| @@ -713,18 +651,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private bool CheckPalettePlusApiInternal() |  | ||||||
|     { |  | ||||||
|         try |  | ||||||
|         { |  | ||||||
|             return string.Equals(_palettePlusApiVersion.InvokeFunc(), "1.1.0", StringComparison.Ordinal); |  | ||||||
|         } |  | ||||||
|         catch |  | ||||||
|         { |  | ||||||
|             return false; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private bool CheckPenumbraApiInternal() |     private bool CheckPenumbraApiInternal() | ||||||
|     { |     { | ||||||
|         bool penumbraAvailable = false; |         bool penumbraAvailable = false; | ||||||
| @@ -789,11 +715,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|         Mediator.Publish(new HonorificReadyMessage()); |         Mediator.Publish(new HonorificReadyMessage()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void OnPalettePlusPaletteChange(Character character, string palette) |  | ||||||
|     { |  | ||||||
|         Mediator.Publish(new PalettePlusMessage(character)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private void PenumbraDispose() |     private void PenumbraDispose() | ||||||
|     { |     { | ||||||
|         _disposalCts.Cancel(); |         _disposalCts.Cancel(); | ||||||
| @@ -839,7 +760,6 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase | |||||||
|         _penumbraAvailable = CheckPenumbraApiInternal(); |         _penumbraAvailable = CheckPenumbraApiInternal(); | ||||||
|         _heelsAvailable = CheckHeelsApiInternal(); |         _heelsAvailable = CheckHeelsApiInternal(); | ||||||
|         _customizePlusAvailable = CheckCustomizePlusApiInternal(); |         _customizePlusAvailable = CheckCustomizePlusApiInternal(); | ||||||
|         _palettePlusAvailable = CheckPalettePlusApiInternal(); |  | ||||||
|         _honorificAvailable = CheckHonorificApiInternal(); |         _honorificAvailable = CheckHonorificApiInternal(); | ||||||
|         PenumbraModDirectory = GetPenumbraModDirectoryInternal(); |         PenumbraModDirectory = GetPenumbraModDirectoryInternal(); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -7,7 +7,6 @@ public enum PlayerChanges | |||||||
|     Glamourer = 3, |     Glamourer = 3, | ||||||
|     Customize = 4, |     Customize = 4, | ||||||
|     Heels = 5, |     Heels = 5, | ||||||
|     Palette = 6, |  | ||||||
|     Honorific = 7, |     Honorific = 7, | ||||||
|     ForcedRedraw = 8, |     ForcedRedraw = 8, | ||||||
| } | } | ||||||
| @@ -49,7 +49,6 @@ public class MareCharaFileManager : DisposableMediatorSubscriberBase | |||||||
|                 if ((await dalamudUtil.RunOnFrameworkThread(() => item.Value.CurrentAddress()).ConfigureAwait(false)) != nint.Zero) |                 if ((await dalamudUtil.RunOnFrameworkThread(() => item.Value.CurrentAddress()).ConfigureAwait(false)) != nint.Zero) | ||||||
|                 { |                 { | ||||||
|                     await _ipcManager.GlamourerRevert(logger, item.Value.Name, item.Value, Guid.NewGuid(), cts.Token).ConfigureAwait(false); |                     await _ipcManager.GlamourerRevert(logger, item.Value.Name, item.Value, Guid.NewGuid(), cts.Token).ConfigureAwait(false); | ||||||
|                     await _ipcManager.PalettePlusRemovePaletteAsync(item.Value.Address).ConfigureAwait(false); |  | ||||||
|                 } |                 } | ||||||
|                 else |                 else | ||||||
|                 { |                 { | ||||||
| @@ -117,14 +116,6 @@ public class MareCharaFileManager : DisposableMediatorSubscriberBase | |||||||
|                 { |                 { | ||||||
|                     await _ipcManager.CustomizePlusRevertAsync(tempHandler.Address).ConfigureAwait(false); |                     await _ipcManager.CustomizePlusRevertAsync(tempHandler.Address).ConfigureAwait(false); | ||||||
|                 } |                 } | ||||||
|                 if (!string.IsNullOrEmpty(LoadedCharaFile.CharaFileData.PalettePlusData)) |  | ||||||
|                 { |  | ||||||
|                     await _ipcManager.PalettePlusSetPaletteAsync(tempHandler.Address, LoadedCharaFile.CharaFileData.PalettePlusData).ConfigureAwait(false); |  | ||||||
|                 } |  | ||||||
|                 else |  | ||||||
|                 { |  | ||||||
|                     await _ipcManager.PalettePlusRemovePaletteAsync(tempHandler.Address).ConfigureAwait(false); |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         catch (Exception ex) |         catch (Exception ex) | ||||||
|   | |||||||
| @@ -197,7 +197,6 @@ public class PlayerDataFactory | |||||||
|         Task<string> getHeelsOffset = _ipcManager.GetHeelsOffsetAsync(); |         Task<string> getHeelsOffset = _ipcManager.GetHeelsOffsetAsync(); | ||||||
|         Task<string> getGlamourerData = _ipcManager.GlamourerGetCharacterCustomizationAsync(playerRelatedObject.Address); |         Task<string> getGlamourerData = _ipcManager.GlamourerGetCharacterCustomizationAsync(playerRelatedObject.Address); | ||||||
|         Task<string?> getCustomizeData = _ipcManager.GetCustomizePlusScaleAsync(playerRelatedObject.Address); |         Task<string?> getCustomizeData = _ipcManager.GetCustomizePlusScaleAsync(playerRelatedObject.Address); | ||||||
|         Task<string> getPalettePlusData = _ipcManager.PalettePlusBuildPaletteAsync(); |  | ||||||
|         previousData.GlamourerString[playerRelatedObject.ObjectKind] = await getGlamourerData.ConfigureAwait(false); |         previousData.GlamourerString[playerRelatedObject.ObjectKind] = await getGlamourerData.ConfigureAwait(false); | ||||||
|         _logger.LogDebug("Glamourer is now: {data}", previousData.GlamourerString[playerRelatedObject.ObjectKind]); |         _logger.LogDebug("Glamourer is now: {data}", previousData.GlamourerString[playerRelatedObject.ObjectKind]); | ||||||
|         var customizeScale = await getCustomizeData.ConfigureAwait(false); |         var customizeScale = await getCustomizeData.ConfigureAwait(false); | ||||||
| @@ -206,8 +205,8 @@ public class PlayerDataFactory | |||||||
|             previousData.CustomizePlusScale[playerRelatedObject.ObjectKind] = customizeScale; |             previousData.CustomizePlusScale[playerRelatedObject.ObjectKind] = customizeScale; | ||||||
|             _logger.LogDebug("Customize is now: {data}", previousData.CustomizePlusScale[playerRelatedObject.ObjectKind]); |             _logger.LogDebug("Customize is now: {data}", previousData.CustomizePlusScale[playerRelatedObject.ObjectKind]); | ||||||
|         } |         } | ||||||
|         previousData.PalettePlusPalette = await getPalettePlusData.ConfigureAwait(false); |         // todo: remove once heaving api | ||||||
|         _logger.LogDebug("Palette is now: {data}", previousData.PalettePlusPalette); |         previousData.PalettePlusPalette = string.Empty; | ||||||
|         previousData.HonorificData = _ipcManager.HonorificGetTitle(); |         previousData.HonorificData = _ipcManager.HonorificGetTitle(); | ||||||
|         _logger.LogDebug("Honorific is now: {data}", previousData.HonorificData); |         _logger.LogDebug("Honorific is now: {data}", previousData.HonorificData); | ||||||
|         previousData.HeelsData = await getHeelsOffset.ConfigureAwait(false); |         previousData.HeelsData = await getHeelsOffset.ConfigureAwait(false); | ||||||
|   | |||||||
| @@ -288,10 +288,6 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase | |||||||
|                 Logger.LogDebug("[{applicationId}] Processing {change} for {handler}", applicationId, change, handler); |                 Logger.LogDebug("[{applicationId}] Processing {change} for {handler}", applicationId, change, handler); | ||||||
|                 switch (change) |                 switch (change) | ||||||
|                 { |                 { | ||||||
|                     case PlayerChanges.Palette: |  | ||||||
|                         await _ipcManager.PalettePlusSetPaletteAsync(handler.Address, charaData.PalettePlusData).ConfigureAwait(false); |  | ||||||
|                         break; |  | ||||||
|  |  | ||||||
|                     case PlayerChanges.Customize: |                     case PlayerChanges.Customize: | ||||||
|                         if (charaData.CustomizePlusData.TryGetValue(changes.Key, out var customizePlusData)) |                         if (charaData.CustomizePlusData.TryGetValue(changes.Key, out var customizePlusData)) | ||||||
|                         { |                         { | ||||||
| @@ -533,9 +529,6 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase | |||||||
|             Logger.LogDebug("[{applicationId}] Restoring C+ for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); |             Logger.LogDebug("[{applicationId}] Restoring C+ for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); | ||||||
|             await _ipcManager.CustomizePlusRevertAsync(address).ConfigureAwait(false); |             await _ipcManager.CustomizePlusRevertAsync(address).ConfigureAwait(false); | ||||||
|             tempHandler.CompareNameAndThrow(name); |             tempHandler.CompareNameAndThrow(name); | ||||||
|             Logger.LogDebug("[{applicationId}] Restoring Palette+ for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); |  | ||||||
|             await _ipcManager.PalettePlusRemovePaletteAsync(address).ConfigureAwait(false); |  | ||||||
|             tempHandler.CompareNameAndThrow(name); |  | ||||||
|             Logger.LogDebug("[{applicationId}] Restoring Honorific for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); |             Logger.LogDebug("[{applicationId}] Restoring Honorific for {alias}/{name}", applicationId, OnlineUser.User.AliasOrUID, name); | ||||||
|             await _ipcManager.HonorificClearTitleAsync(address).ConfigureAwait(false); |             await _ipcManager.HonorificClearTitleAsync(address).ConfigureAwait(false); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -21,7 +21,6 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase | |||||||
|     private Task? _cacheCreationTask; |     private Task? _cacheCreationTask; | ||||||
|     private CancellationTokenSource _honorificCts = new(); |     private CancellationTokenSource _honorificCts = new(); | ||||||
|     private bool _isZoning = false; |     private bool _isZoning = false; | ||||||
|     private CancellationTokenSource _palettePlusCts = new(); |  | ||||||
|     private readonly Dictionary<ObjectKind, CancellationTokenSource> _glamourerCts = new(); |     private readonly Dictionary<ObjectKind, CancellationTokenSource> _glamourerCts = new(); | ||||||
|  |  | ||||||
|     public CacheCreationService(ILogger<CacheCreationService> logger, MareMediator mediator, GameObjectHandlerFactory gameObjectHandlerFactory, |     public CacheCreationService(ILogger<CacheCreationService> logger, MareMediator mediator, GameObjectHandlerFactory gameObjectHandlerFactory, | ||||||
| @@ -100,15 +99,6 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase | |||||||
|                 GlamourerChanged(changedType.Key); |                 GlamourerChanged(changedType.Key); | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|         Mediator.Subscribe<PalettePlusMessage>(this, (msg) => |  | ||||||
|         { |  | ||||||
|             if (_isZoning) return; |  | ||||||
|             if (msg.Character.Address == _playerRelatedObjects[ObjectKind.Player].Address) |  | ||||||
|             { |  | ||||||
|                 Logger.LogDebug("Received PalettePlus change, updating player"); |  | ||||||
|                 PalettePlusChanged(); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|         Mediator.Subscribe<HonorificMessage>(this, (msg) => |         Mediator.Subscribe<HonorificMessage>(this, (msg) => | ||||||
|         { |         { | ||||||
|             if (_isZoning) return; |             if (_isZoning) return; | ||||||
| @@ -172,21 +162,6 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase | |||||||
|             await AddPlayerCacheToCreate().ConfigureAwait(false); |             await AddPlayerCacheToCreate().ConfigureAwait(false); | ||||||
|         }, token); |         }, token); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void PalettePlusChanged() |  | ||||||
|     { |  | ||||||
|         _palettePlusCts?.Cancel(); |  | ||||||
|         _palettePlusCts?.Dispose(); |  | ||||||
|         _palettePlusCts = new(); |  | ||||||
|         var token = _palettePlusCts.Token; |  | ||||||
|  |  | ||||||
|         _ = Task.Run(async () => |  | ||||||
|         { |  | ||||||
|             await Task.Delay(TimeSpan.FromSeconds(1), token).ConfigureAwait(false); |  | ||||||
|             await AddPlayerCacheToCreate().ConfigureAwait(false); |  | ||||||
|         }, token); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private void ProcessCacheCreation() |     private void ProcessCacheCreation() | ||||||
|     { |     { | ||||||
|         if (_isZoning) return; |         if (_isZoning) return; | ||||||
|   | |||||||
| @@ -38,7 +38,6 @@ public record GlamourerChangedMessage(IntPtr Address) : MessageBase; | |||||||
| public record HeelsOffsetMessage : MessageBase; | public record HeelsOffsetMessage : MessageBase; | ||||||
| public record PenumbraResourceLoadMessage(IntPtr GameObject, string GamePath, string FilePath) : SameThreadMessage; | public record PenumbraResourceLoadMessage(IntPtr GameObject, string GamePath, string FilePath) : SameThreadMessage; | ||||||
| public record CustomizePlusMessage(string ProfileName) : MessageBase; | public record CustomizePlusMessage(string ProfileName) : MessageBase; | ||||||
| public record PalettePlusMessage(Character Character) : MessageBase; |  | ||||||
| public record HonorificMessage(string NewHonorificTitle) : MessageBase; | public record HonorificMessage(string NewHonorificTitle) : MessageBase; | ||||||
| public record HonorificReadyMessage : MessageBase; | public record HonorificReadyMessage : MessageBase; | ||||||
| public record PlayerChangedMessage(CharacterData Data) : MessageBase; | public record PlayerChangedMessage(CharacterData Data) : MessageBase; | ||||||
|   | |||||||
| @@ -70,7 +70,6 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase | |||||||
|  |  | ||||||
|     private bool _isPenumbraDirectory = false; |     private bool _isPenumbraDirectory = false; | ||||||
|  |  | ||||||
|     private bool _palettePlusExists = false; |  | ||||||
|     private bool _penumbraExists = false; |     private bool _penumbraExists = false; | ||||||
|  |  | ||||||
|     private int _serverSelectionIndex = -1; |     private int _serverSelectionIndex = -1; | ||||||
|   | |||||||
| @@ -174,15 +174,6 @@ public static class VariousExtensions | |||||||
|                 charaDataToUpdate[objectKind].Add(PlayerChanges.Heels); |                 charaDataToUpdate[objectKind].Add(PlayerChanges.Heels); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             bool palettePlusDataDifferent = !string.Equals(oldData.PalettePlusData, newData.PalettePlusData, StringComparison.Ordinal) |  | ||||||
|                 || (charaDataToUpdate.TryGetValue(objectKind, out var playerChanges) && playerChanges.Contains(PlayerChanges.Glamourer) |  | ||||||
|                     && (!string.IsNullOrEmpty(oldData.PalettePlusData) || !string.IsNullOrEmpty(newData.PalettePlusData))); |  | ||||||
|             if (palettePlusDataDifferent || (forceApplyCustomization && !string.IsNullOrEmpty(newData.PalettePlusData))) |  | ||||||
|             { |  | ||||||
|                 logger.LogDebug("[BASE-{appBase}] Updating {object}/{kind} (Diff palette data) => {change}", applicationBase, cachedPlayer, objectKind, PlayerChanges.Palette); |  | ||||||
|                 charaDataToUpdate[objectKind].Add(PlayerChanges.Palette); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             bool honorificDataDifferent = !string.Equals(oldData.HonorificData, newData.HonorificData, StringComparison.Ordinal); |             bool honorificDataDifferent = !string.Equals(oldData.HonorificData, newData.HonorificData, StringComparison.Ordinal); | ||||||
|             if (honorificDataDifferent || (forceApplyCustomization && !string.IsNullOrEmpty(newData.HonorificData))) |             if (honorificDataDifferent || (forceApplyCustomization && !string.IsNullOrEmpty(newData.HonorificData))) | ||||||
|             { |             { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 rootdarkarchon
					rootdarkarchon