diff --git a/CommunityBugFixCollection/PauseAnimatorUpdates.cs b/CommunityBugFixCollection/PauseAnimatorUpdates.cs index 8cb4a09..411c8b3 100644 --- a/CommunityBugFixCollection/PauseAnimatorUpdates.cs +++ b/CommunityBugFixCollection/PauseAnimatorUpdates.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Text; +using System.Runtime.CompilerServices; namespace CommunityBugFixCollection { @@ -12,6 +13,24 @@ internal sealed class PauseAnimatorUpdates : ResoniteBugFixMonkey Authors => Contributors.Banane9; + private class Float + { + public float Value; + + public Float(float value) + { + Value = value; + } + + public Float() + { + Value = 0f; + } + } + + + private static readonly ConditionalWeakTable _hasChangedPlayhead = new(); + private static bool Prefix(Animator __instance) { if (!Enabled) @@ -22,9 +41,11 @@ private static bool Prefix(Animator __instance) if (!__instance._fieldMappersValid) __instance.GenerateFieldMappers(); - if (__instance.IsPlaying) + + if (_hasChangedPlayhead.GetOrCreateValue(__instance).Value != __instance._playback.Position) { var position = __instance.Position; + _hasChangedPlayhead.GetOrCreateValue(__instance).Value = __instance.Position; foreach (var fieldMapper in __instance._fieldMappers) fieldMapper.Set(position); @@ -33,4 +54,6 @@ private static bool Prefix(Animator __instance) return false; } } + + } \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index b011017..55ce0c4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -39,6 +39,7 @@ C:\Program Files (x86)\Steam\steamapps\common\Resonite $(HOME)/.steam/steam/steamapps/common/Resonite D:/Files/Games/Resonite/app + D:\SteamLibrary\\steamapps\common\Resonite\ G:\SteamLibrary\steamapps\common\Resonite