diff --git a/Glamourer.Api b/Glamourer.Api index 7e8505c..59a7ab5 160000 --- a/Glamourer.Api +++ b/Glamourer.Api @@ -1 +1 @@ -Subproject commit 7e8505cd6f8dbc5bcf41b72e16785d62b4d218f3 +Subproject commit 59a7ab5fa9941eb754757b62e4cb189e455e9514 diff --git a/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs b/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs index 6b45ac7..74ab455 100644 --- a/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs +++ b/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs @@ -8,9 +8,10 @@ public class PlayerPerformanceConfig : IMareConfiguration public bool AutoPausePlayersExceedingThresholds { get; set; } = true; public bool NotifyAutoPauseDirectPairs { get; set; } = true; public bool NotifyAutoPauseGroupPairs { get; set; } = true; + public bool ShowSelfAnalysisWarnings { get; set; } = true; public int VRAMSizeAutoPauseThresholdMiB { get; set; } = 500; public int TrisAutoPauseThresholdThousands { get; set; } = 400; public bool IgnoreDirectPairs { get; set; } = true; public TextureShrinkMode TextureShrinkMode { get; set; } = TextureShrinkMode.Default; public bool TextureShrinkDeleteOriginal { get; set; } = false; -} \ No newline at end of file +} diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj index d71724f..d403e3f 100644 --- a/MareSynchronos/MareSynchronos.csproj +++ b/MareSynchronos/MareSynchronos.csproj @@ -3,7 +3,7 @@ UmbraSync UmbraSync - 0.1.9.5 + 0.1.9.6 diff --git a/MareSynchronos/Services/CharacterAnalyzer.cs b/MareSynchronos/Services/CharacterAnalyzer.cs index 9f4ca7a..0c7ba07 100644 --- a/MareSynchronos/Services/CharacterAnalyzer.cs +++ b/MareSynchronos/Services/CharacterAnalyzer.cs @@ -3,6 +3,7 @@ using Lumina.Data.Files; using MareSynchronos.API.Data; using MareSynchronos.API.Data.Enum; using MareSynchronos.FileCache; +using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration.Models; using MareSynchronos.Services.Mediator; using MareSynchronos.UI; @@ -15,6 +16,7 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase { private readonly FileCacheManager _fileCacheManager; private readonly XivDataAnalyzer _xivDataAnalyzer; + private readonly PlayerPerformanceConfigService _playerPerformanceConfigService; private CancellationTokenSource? _analysisCts; private CancellationTokenSource _baseAnalysisCts = new(); private string _lastDataHash = string.Empty; @@ -29,7 +31,7 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase private bool _sizeWarningShown; private bool _triangleWarningShown; - public CharacterAnalyzer(ILogger logger, MareMediator mediator, FileCacheManager fileCacheManager, XivDataAnalyzer modelAnalyzer) + public CharacterAnalyzer(ILogger logger, MareMediator mediator, FileCacheManager fileCacheManager, XivDataAnalyzer modelAnalyzer, PlayerPerformanceConfigService playerPerformanceConfigService) : base(logger, mediator) { Mediator.Subscribe(this, (msg) => @@ -40,6 +42,7 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase }); _fileCacheManager = fileCacheManager; _xivDataAnalyzer = modelAnalyzer; + _playerPerformanceConfigService = playerPerformanceConfigService; } public int CurrentFile { get; internal set; } @@ -315,6 +318,12 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase return; } + if (!_playerPerformanceConfigService.Current.ShowSelfAnalysisWarnings) + { + ResetThresholdFlagsIfNeeded(summary); + return; + } + bool sizeExceeded = summary.TotalCompressedSize >= NotificationSizeThreshold; bool trianglesExceeded = summary.TotalTriangles >= NotificationTriangleThreshold; List exceededReasons = new(); diff --git a/MareSynchronos/UI/ChangelogUi.cs b/MareSynchronos/UI/ChangelogUi.cs index d111f94..6583a48 100644 --- a/MareSynchronos/UI/ChangelogUi.cs +++ b/MareSynchronos/UI/ChangelogUi.cs @@ -169,6 +169,10 @@ public sealed class ChangelogUi : WindowMediatorSubscriberBase { return new List { + new(new Version(0, 1, 9, 6), "0.1.9.6", new List + { + new("Possibilité de désactiver l'alerte self-analysis (Settings => Performance)."), + }), new(new Version(0, 1, 9, 5), "0.1.9.5", new List { new("Fix l'affichage de la bulle dans la liste du groupe."), diff --git a/MareSynchronos/UI/SettingsUi.cs b/MareSynchronos/UI/SettingsUi.cs index c0015cf..b492b16 100644 --- a/MareSynchronos/UI/SettingsUi.cs +++ b/MareSynchronos/UI/SettingsUi.cs @@ -1328,6 +1328,14 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.BigText("Global Configuration"); + bool showSelfAnalysisWarnings = _playerPerformanceConfigService.Current.ShowSelfAnalysisWarnings; + if (ImGui.Checkbox("Display self-analysis warnings", ref showSelfAnalysisWarnings)) + { + _playerPerformanceConfigService.Current.ShowSelfAnalysisWarnings = showSelfAnalysisWarnings; + _playerPerformanceConfigService.Save(); + } + _uiShared.DrawHelpText("Disable to suppress UmbraSync chat warnings when your character exceeds the self-analysis thresholds."); + bool alwaysShrinkTextures = _playerPerformanceConfigService.Current.TextureShrinkMode == TextureShrinkMode.Always; bool deleteOriginalTextures = _playerPerformanceConfigService.Current.TextureShrinkDeleteOriginal; diff --git a/Penumbra.Api b/Penumbra.Api index 97fe622..c23ee05 160000 --- a/Penumbra.Api +++ b/Penumbra.Api @@ -1 +1 @@ -Subproject commit 97fe622e4ec0a5469a26aba8a8c3933fa8ef7fd6 +Subproject commit c23ee05c1e9fa103eaa52e6aa7e855ef568ee669