From 56e02525e8f2da695eed5b0fe241da0b4d0c716a Mon Sep 17 00:00:00 2001 From: Vaquh Date: Sun, 30 Mar 2025 10:36:55 -0400 Subject: [PATCH 1/4] Update Preferences method to MelonPreferences Changes configuration from tomlet to the preferred MelonPreferences Configuration is now found in the MelonPreferences.cfg --- AccuracyIndicator/Main.cs | 10 +++---- AccuracyIndicator/Patch/VictoryFailPatch.cs | 2 +- AccuracyIndicator/Save.cs | 32 ++++++--------------- 3 files changed, 14 insertions(+), 30 deletions(-) diff --git a/AccuracyIndicator/Main.cs b/AccuracyIndicator/Main.cs index a60e447..9810a37 100644 --- a/AccuracyIndicator/Main.cs +++ b/AccuracyIndicator/Main.cs @@ -1,5 +1,4 @@ using AccuracyIndicator.Indicator; -using Tomlet; using Object = UnityEngine.Object; namespace AccuracyIndicator; @@ -9,10 +8,11 @@ internal class Main : MelonMod internal static GameObject ResultIndicator { get; set; } internal static InGameIndicator GameIndicator { get; set; } - public override void OnInitializeMelon() => Save.Load(); - - public override void OnDeinitializeMelon() => - File.WriteAllText(Path.Combine("UserData", "AccuracyIndicator.cfg"), TomletMain.TomlStringFrom(Save.Settings)); + public override void OnInitializeMelon() + { + base.OnInitializeMelon(); + Save.Load(); + } public override void OnSceneWasUnloaded(int buildIndex, string sceneName) { diff --git a/AccuracyIndicator/Patch/VictoryFailPatch.cs b/AccuracyIndicator/Patch/VictoryFailPatch.cs index 2178c18..092aba5 100644 --- a/AccuracyIndicator/Patch/VictoryFailPatch.cs +++ b/AccuracyIndicator/Patch/VictoryFailPatch.cs @@ -24,7 +24,7 @@ private static void Postfix() Object.Destroy(GameIndicator); GameIndicator = null; - if (!Save.Settings.ShowMeanDelay) + if (!Save.ShowMeanDelay) { return; } diff --git a/AccuracyIndicator/Save.cs b/AccuracyIndicator/Save.cs index 78dee29..9e1b57f 100644 --- a/AccuracyIndicator/Save.cs +++ b/AccuracyIndicator/Save.cs @@ -1,33 +1,17 @@ -using Tomlet; -using Tomlet.Attributes; - +using MelonLoader; namespace AccuracyIndicator; internal static class Save { - internal static Data Settings { get; private set; } = new(); + private static MelonPreferences_Category prefsCategory; + private static MelonPreferences_Entry showMeanDelay; - public static void Load() - { - if (!File.Exists(Path.Combine("UserData", "AccuracyIndicator.cfg"))) - { - var defaultConfig = TomletMain.TomlStringFrom(new Data(true)); - File.WriteAllText(Path.Combine("UserData", "AccuracyIndicator.cfg"), defaultConfig); - } - - var data = File.ReadAllText(Path.Combine("UserData", "AccuracyIndicator.cfg")); - Settings = TomletMain.To(data); - } -} + internal static bool ShowMeanDelay => showMeanDelay.Value; -public class Data -{ - [TomlPrecedingComment("Whether show Mean Delay in Victory screen")] - internal readonly bool ShowMeanDelay; - - public Data() + public static void Load() { + prefsCategory = MelonPreferences.CreateCategory(MelonBuildInfo.Name); + showMeanDelay = prefsCategory.CreateEntry("ShowMeanDelay", true, + "Victory screen mean delay", "Enables Mean Delay display in victory screen."); } - - internal Data(bool showMeanDelay) => ShowMeanDelay = showMeanDelay; } \ No newline at end of file From e96d33b511f84da642055abdc37fff5c1f7b16c1 Mon Sep 17 00:00:00 2001 From: Vaquh Date: Sun, 30 Mar 2025 10:38:59 -0400 Subject: [PATCH 2/4] Update AccuracyIndicator.csproj Changed ReferencePath to the preferred MD_Directory env variable --- AccuracyIndicator/AccuracyIndicator.csproj | 33 +++++++++++----------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/AccuracyIndicator/AccuracyIndicator.csproj b/AccuracyIndicator/AccuracyIndicator.csproj index eb9c60f..3323096 100644 --- a/AccuracyIndicator/AccuracyIndicator.csproj +++ b/AccuracyIndicator/AccuracyIndicator.csproj @@ -8,7 +8,6 @@ latest enable disable - C:\Program Files (x86)\Steam\steamapps\common\Muse Dash @@ -18,66 +17,66 @@ - $(ReferencePath)\MelonLoader\net6\0Harmony.dll + $(MD_DIRECTORY)\MelonLoader\net6\0Harmony.dll False - $(ReferencePath)\MelonLoader\Il2CppAssemblies\Assembly-CSharp.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\Assembly-CSharp.dll False - $(ReferencePath)\MelonLoader\net6\Il2CppInterop.Runtime.dll + $(MD_DIRECTORY)\MelonLoader\net6\Il2CppInterop.Runtime.dll False - $(ReferencePath)\MelonLoader\Il2CppAssemblies\Il2Cppmscorlib.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\Il2Cppmscorlib.dll False - $(ReferencePath)\MelonLoader\Il2CppAssemblies\Il2CppSirenix.Serialization.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\Il2CppSirenix.Serialization.dll False - $(ReferencePath)\MelonLoader\net6\MelonLoader.dll + $(MD_DIRECTORY)\MelonLoader\net6\MelonLoader.dll False - $(ReferencePath)\MelonLoader\net6\Tomlet.dll + $(MD_DIRECTORY)\MelonLoader\net6\Tomlet.dll False - C:\Program Files (x86)\Steam\steamapps\common\Muse Dash\MelonLoader\Il2CppAssemblies\Unity.Addressables.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\Unity.Addressables.dll False - C:\Program Files (x86)\Steam\steamapps\common\Muse Dash\MelonLoader\Il2CppAssemblies\Unity.ResourceManager.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\Unity.ResourceManager.dll False - $(ReferencePath)\MelonLoader\Il2CppAssemblies\UnityEngine.CoreModule.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\UnityEngine.CoreModule.dll False - $(ReferencePath)\MelonLoader\Il2CppAssemblies\UnityEngine.InputLegacyModule.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\UnityEngine.InputLegacyModule.dll False - C:\Program Files (x86)\Steam\steamapps\common\Muse Dash\MelonLoader\Il2CppAssemblies\UnityEngine.TextRenderingModule.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\UnityEngine.TextRenderingModule.dll False - $(ReferencePath)\MelonLoader\Il2CppAssemblies\UnityEngine.UI.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\UnityEngine.UI.dll False - C:\Program Files (x86)\Steam\steamapps\common\Muse Dash\MelonLoader\Il2CppAssemblies\UnityEngine.UIModule.dll + $(MD_DIRECTORY)\MelonLoader\Il2CppAssemblies\UnityEngine.UIModule.dll False - - + + From b2fcafe7bb93051fcf94e16f40f12d11cefb519f Mon Sep 17 00:00:00 2001 From: Vaquh Date: Sun, 30 Mar 2025 10:39:47 -0400 Subject: [PATCH 3/4] Bump version to 2.1.0 --- AccuracyIndicator/MelonBuildInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AccuracyIndicator/MelonBuildInfo.cs b/AccuracyIndicator/MelonBuildInfo.cs index 6f3752c..2a7b8e0 100644 --- a/AccuracyIndicator/MelonBuildInfo.cs +++ b/AccuracyIndicator/MelonBuildInfo.cs @@ -8,5 +8,5 @@ internal static class MelonBuildInfo internal const string Author = "Azn9 & lxy"; - internal const string ModVersion = "2.0.2"; + internal const string ModVersion = "2.1.0"; } \ No newline at end of file From 9d7e3a6728e17e57f4488a0633a9bc8b3e6987e8 Mon Sep 17 00:00:00 2001 From: Vaquh Date: Mon, 31 Mar 2025 08:46:23 -0400 Subject: [PATCH 4/4] Change config file to AccuracyIndicator.cfg --- AccuracyIndicator/Save.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AccuracyIndicator/Save.cs b/AccuracyIndicator/Save.cs index 9e1b57f..df74baf 100644 --- a/AccuracyIndicator/Save.cs +++ b/AccuracyIndicator/Save.cs @@ -3,15 +3,16 @@ namespace AccuracyIndicator; internal static class Save { - private static MelonPreferences_Category prefsCategory; + private static MelonPreferences_Category accuracyIndicatorCategory; private static MelonPreferences_Entry showMeanDelay; internal static bool ShowMeanDelay => showMeanDelay.Value; public static void Load() { - prefsCategory = MelonPreferences.CreateCategory(MelonBuildInfo.Name); - showMeanDelay = prefsCategory.CreateEntry("ShowMeanDelay", true, + accuracyIndicatorCategory = MelonPreferences.CreateCategory(MelonBuildInfo.Name); + accuracyIndicatorCategory.SetFilePath("UserData/AccuracyIndicator.cfg"); + showMeanDelay = accuracyIndicatorCategory.CreateEntry("ShowMeanDelay", true, "Victory screen mean delay", "Enables Mean Delay display in victory screen."); } } \ No newline at end of file