diff --git a/lib/MelonLoader_Legacy/MelonLoader.dll b/lib/MelonLoader_Legacy/MelonLoader.dll new file mode 100644 index 0000000..7ea7b22 Binary files /dev/null and b/lib/MelonLoader_Legacy/MelonLoader.dll differ diff --git a/src/Core/Input/CursorUnlocker.cs b/src/Core/Input/CursorUnlocker.cs index 0a497fe..2ea255f 100644 --- a/src/Core/Input/CursorUnlocker.cs +++ b/src/Core/Input/CursorUnlocker.cs @@ -7,7 +7,7 @@ using UnityExplorer.Core.Config; using UnityExplorer.Core; using UnityExplorer.UI; using System.Collections; -using HarmonyLib; + namespace UnityExplorer.Core.Input { diff --git a/src/ILRepack.targets b/src/ILRepack.targets index 944a663..9c0c0dc 100644 --- a/src/ILRepack.targets +++ b/src/ILRepack.targets @@ -2,11 +2,24 @@ + + + + + + + + + + + + + @@ -15,6 +28,7 @@ + (ConfigElement config) + { + var entry = prefCategory.CreateEntry(config.Name, config.Value, null, config.IsInternal) as MelonPreferences_Entry; + + entry.OnValueChangedUntyped += () => + { + if ((entry.Value == null && config.Value == null) || config.Value.Equals(entry.Value)) + return; + + config.Value = entry.Value; + }; + } + + public override void SetConfigValue(ConfigElement config, T value) + { + if (prefCategory.GetEntry(config.Name) is MelonPreferences_Entry entry) + { + entry.Value = value; + entry.Save(); + } + } + + public override T GetConfigValue(ConfigElement config) + { + if (prefCategory.GetEntry(config.Name) is MelonPreferences_Entry entry) + return entry.Value; + + return default; + } + + public override void OnAnyConfigChanged() + { + } + + public override void SaveConfig() + { + MelonPreferences.Save(); + } + + // Enum config handlers + + public static KeyCode KeycodeReader(TomlObject value) + { + try + { + KeyCode kc = (KeyCode)Enum.Parse(typeof(KeyCode), (value as TomlString).Value); + + if (kc == default) + throw new Exception(); + + return kc; + } + catch + { + return KeyCode.F7; + } + } + + public static TomlObject KeycodeWriter(KeyCode value) + { + return MelonPreferences.Mapper.ToToml(value.ToString()); + } + + public static UI.UIManager.VerticalAnchor AnchorReader(TomlObject value) + { + try + { + return (UI.UIManager.VerticalAnchor)Enum.Parse(typeof(UI.UIManager.VerticalAnchor), (value as TomlString).Value); + } + catch + { + return UI.UIManager.VerticalAnchor.Top; + } + } + + public static TomlObject AnchorWriter(UI.UIManager.VerticalAnchor anchor) + { + return MelonPreferences.Mapper.ToToml(anchor.ToString()); + } + } +} + +#endif + #endif \ No newline at end of file diff --git a/src/UnityExplorer.csproj b/src/UnityExplorer.csproj index a8ba38a..a2cd445 100644 --- a/src/UnityExplorer.csproj +++ b/src/UnityExplorer.csproj @@ -1,352 +1,377 @@  - - - Release_ML_Cpp - AnyCPU - {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D} - Library - Properties - 512 - true - - - - false - false - false - false - false - none - false - prompt - 4 - x64 - false - UnityExplorer - - - true - - - - - v4.7.2 - ..\Release\UnityExplorer.MelonLoader.Il2Cpp\ - CPP,ML - UnityExplorer.ML.IL2CPP - true - true - - - - v3.5 - ..\Release\UnityExplorer.MelonLoader.Mono\ - MONO,ML - UnityExplorer.ML.Mono - false - false - true - - - - v4.7.2 - ..\Release\UnityExplorer.BepInEx.Il2Cpp\ - CPP,BIE,BIE6 - UnityExplorer.BIE.IL2CPP - true - true - - - - v3.5 - ..\Release\UnityExplorer.BepInEx6.Mono\ - MONO,BIE,BIE6 - UnityExplorer.BIE6.Mono - false - true - - - - v3.5 - ..\Release\UnityExplorer.BepInEx5.Mono\ - MONO,BIE,BIE5 - UnityExplorer.BIE5.Mono - false - true - - - - v3.5 - ..\Release\UnityExplorer.Standalone.Mono\ - MONO,STANDALONE - UnityExplorer.STANDALONE.Mono - false - true - - - - v4.7.2 - ..\Release\UnityExplorer.Standalone.Il2Cpp\ - CPP,STANDALONE - UnityExplorer.STANDALONE.IL2CPP - true - true - - - - - - - - - - - ..\lib\mcs-unity\mcs\bin\Release\mcs.dll - False - - - packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll - False - - - - - - ..\lib\MelonLoader\MelonLoader.dll - False - - - - - - ..\lib\HarmonyX\Harmony\bin\Release\net35\0Harmony.dll - False - - - - - - ..\lib\BepInEx.5\BepInEx.dll - False - - - - - - ..\lib\BepInEx.6.Mono\BepInEx.Core.dll - False - - - ..\lib\BepInEx.6.Mono\BepInEx.Unity.dll - False - - - - - - ..\lib\BepInEx.6.IL2CPP\BepInEx.Core.dll - False - - - ..\lib\BepInEx.6.IL2CPP\BepInEx.IL2CPP.dll - False - - - - - - ..\lib\HarmonyX\Harmony\bin\Release\net35\0Harmony.dll - False - - - - - - ..\lib\mono\UnityEngine.dll - False - - - ..\lib\mono\UnityEngine.UI.dll - False - - - - - - ..\lib\Il2CppAssemblyUnhollower\UnhollowerBaseLib\bin\Release\net4.7.2\UnhollowerBaseLib.dll - False - - - ..\lib\unhollowed\Il2Cppmscorlib.dll - False - - - ..\lib\unhollowed\Il2CppSystem.Core.dll - False - - - ..\lib\unhollowed\UnityEngine.dll - False - - - ..\lib\unhollowed\UnityEngine.CoreModule.dll - False - - - ..\lib\unhollowed\UnityEngine.PhysicsModule.dll - False - - - ..\lib\unhollowed\UnityEngine.TextRenderingModule.dll - False - - - ..\lib\unhollowed\UnityEngine.UI.dll - False - - - ..\lib\unhollowed\UnityEngine.UIModule.dll - False - - - ..\lib\unhollowed\UnityEngine.IMGUIModule.dll - False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + Release_ML_Cpp + AnyCPU + {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D} + Library + Properties + 512 + true + + + + false + false + false + false + false + none + false + prompt + 4 + x64 + false + UnityExplorer + + + true - - + + + + v4.7.2 + ..\Release\UnityExplorer.MelonLoader.Il2Cpp\ + CPP,ML + UnityExplorer.ML.IL2CPP + true + true + + + + v3.5 + ..\Release\UnityExplorer.MelonLoader.Mono\ + MONO,ML + UnityExplorer.ML.Mono + false + false + true + + + + v4.7.2 + ..\Release\UnityExplorer.BepInEx.Il2Cpp\ + CPP,BIE,BIE6 + UnityExplorer.BIE.IL2CPP + true + true + + + + v3.5 + ..\Release\UnityExplorer.BepInEx6.Mono\ + MONO,BIE,BIE6 + UnityExplorer.BIE6.Mono + false + true + + + + v3.5 + ..\Release\UnityExplorer.BepInEx5.Mono\ + MONO,BIE,BIE5 + UnityExplorer.BIE5.Mono + false + true + + + + v3.5 + ..\Release\UnityExplorer.Standalone.Mono\ + MONO,STANDALONE + UnityExplorer.STANDALONE.Mono + false + true + + + + v4.7.2 + ..\Release\UnityExplorer.Standalone.Il2Cpp\ + CPP,STANDALONE + UnityExplorer.STANDALONE.IL2CPP + true + true + + + + ..\Release\UnityExplorer.MelonLoader_Legacy.Il2Cpp\ + CPP,ML,ML_LEGACY + v4.7.2 + UnityExplorer.MLLEGACY.IL2CPP + true + true + + + + ..\Release\UnityExplorer.MelonLoader_Legacy.Mono\ + MONO,ML,ML_LEGACY + v3.5 + UnityExplorer.MLLEGACY.Mono + false + true + + + + + + + + + + + ..\lib\mcs-unity\mcs\bin\Release\mcs.dll + False + + + packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll + False + + + + + + ..\lib\MelonLoader\MelonLoader.dll + False + + + + + + ..\lib\MelonLoader_Legacy\MelonLoader.dll + False + + + + + + ..\lib\HarmonyX\Harmony\bin\Release\net35\0Harmony.dll + False + + + + + + ..\lib\BepInEx.5\BepInEx.dll + False + + + + + + ..\lib\BepInEx.6.Mono\BepInEx.Core.dll + False + + + ..\lib\BepInEx.6.Mono\BepInEx.Unity.dll + False + + + + + + ..\lib\BepInEx.6.IL2CPP\BepInEx.Core.dll + False + + + ..\lib\BepInEx.6.IL2CPP\BepInEx.IL2CPP.dll + False + + + + + + ..\lib\HarmonyX\Harmony\bin\Release\net35\0Harmony.dll + False + + + + + + ..\lib\mono\UnityEngine.dll + False + + + ..\lib\mono\UnityEngine.UI.dll + False + + + + + + ..\lib\Il2CppAssemblyUnhollower\UnhollowerBaseLib\bin\Release\net4.7.2\UnhollowerBaseLib.dll + False + + + ..\lib\unhollowed\Il2Cppmscorlib.dll + False + + + ..\lib\unhollowed\Il2CppSystem.Core.dll + False + + + ..\lib\unhollowed\UnityEngine.dll + False + + + ..\lib\unhollowed\UnityEngine.CoreModule.dll + False + + + ..\lib\unhollowed\UnityEngine.PhysicsModule.dll + False + + + ..\lib\unhollowed\UnityEngine.TextRenderingModule.dll + False + + + ..\lib\unhollowed\UnityEngine.UI.dll + False + + + ..\lib\unhollowed\UnityEngine.UIModule.dll + False + + + ..\lib\unhollowed\UnityEngine.IMGUIModule.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/src/UnityExplorer.sln b/src/UnityExplorer.sln index ddc140d..eb7c9d7 100644 --- a/src/UnityExplorer.sln +++ b/src/UnityExplorer.sln @@ -18,6 +18,8 @@ Global Release_BIE6_Mono|Any CPU = Release_BIE6_Mono|Any CPU Release_ML_Cpp|Any CPU = Release_ML_Cpp|Any CPU Release_ML_Mono|Any CPU = Release_ML_Mono|Any CPU + Release_MLLegacy_Cpp|Any CPU = Release_MLLegacy_Cpp|Any CPU + Release_MLLegacy_Mono|Any CPU = Release_MLLegacy_Mono|Any CPU Release_STANDALONE_Cpp|Any CPU = Release_STANDALONE_Cpp|Any CPU Release_STANDALONE_Mono|Any CPU = Release_STANDALONE_Mono|Any CPU EndGlobalSection @@ -32,6 +34,10 @@ Global {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_ML_Cpp|Any CPU.Build.0 = Release|Any CPU {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_ML_Mono|Any CPU.ActiveCfg = Release|Any CPU {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_ML_Mono|Any CPU.Build.0 = Release|Any CPU + {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_MLLegacy_Cpp|Any CPU.ActiveCfg = Release_MLLegacy_Cpp|Any CPU + {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_MLLegacy_Cpp|Any CPU.Build.0 = Release_MLLegacy_Cpp|Any CPU + {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_MLLegacy_Mono|Any CPU.ActiveCfg = Release_MLLegacy_Mono|Any CPU + {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_MLLegacy_Mono|Any CPU.Build.0 = Release_MLLegacy_Mono|Any CPU {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_STANDALONE_Cpp|Any CPU.ActiveCfg = Release|Any CPU {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_STANDALONE_Cpp|Any CPU.Build.0 = Release|Any CPU {F2D7872C-5D4D-49EB-A656-C3D496DB4204}.Release_STANDALONE_Mono|Any CPU.ActiveCfg = Release|Any CPU @@ -46,6 +52,10 @@ Global {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_ML_Cpp|Any CPU.Build.0 = Release|Any CPU {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_ML_Mono|Any CPU.ActiveCfg = Release|Any CPU {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_ML_Mono|Any CPU.Build.0 = Release|Any CPU + {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_MLLegacy_Cpp|Any CPU.ActiveCfg = Release_MLLegacy_Cpp|Any CPU + {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_MLLegacy_Cpp|Any CPU.Build.0 = Release_MLLegacy_Cpp|Any CPU + {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_MLLegacy_Mono|Any CPU.ActiveCfg = Release_MLLegacy_Mono|Any CPU + {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_MLLegacy_Mono|Any CPU.Build.0 = Release_MLLegacy_Mono|Any CPU {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_STANDALONE_Cpp|Any CPU.ActiveCfg = Release|Any CPU {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_STANDALONE_Cpp|Any CPU.Build.0 = Release|Any CPU {7B7E5024-385D-4A46-9196-A6AF8F7FBDD5}.Release_STANDALONE_Mono|Any CPU.ActiveCfg = Release|Any CPU @@ -60,6 +70,10 @@ Global {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_ML_Cpp|Any CPU.Build.0 = Release|Any CPU {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_ML_Mono|Any CPU.ActiveCfg = Release|Any CPU {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_ML_Mono|Any CPU.Build.0 = Release|Any CPU + {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_MLLegacy_Cpp|Any CPU.ActiveCfg = Release_MLLegacy_Cpp|x64 + {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_MLLegacy_Cpp|Any CPU.Build.0 = Release_MLLegacy_Cpp|x64 + {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_MLLegacy_Mono|Any CPU.ActiveCfg = Release_MLLegacy_Mono|x64 + {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_MLLegacy_Mono|Any CPU.Build.0 = Release_MLLegacy_Mono|x64 {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_STANDALONE_Cpp|Any CPU.ActiveCfg = Release|Any CPU {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_STANDALONE_Cpp|Any CPU.Build.0 = Release|Any CPU {E4989E4C-0875-4528-9031-08E2C0E70103}.Release_STANDALONE_Mono|Any CPU.ActiveCfg = Release|Any CPU @@ -74,6 +88,10 @@ Global {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_ML_Cpp|Any CPU.Build.0 = Release_ML_Cpp|Any CPU {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_ML_Mono|Any CPU.ActiveCfg = Release_ML_Mono|Any CPU {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_ML_Mono|Any CPU.Build.0 = Release_ML_Mono|Any CPU + {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_MLLegacy_Cpp|Any CPU.ActiveCfg = Release_MLLegacy_Cpp|Any CPU + {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_MLLegacy_Cpp|Any CPU.Build.0 = Release_MLLegacy_Cpp|Any CPU + {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_MLLegacy_Mono|Any CPU.ActiveCfg = Release_MLLegacy_Mono|Any CPU + {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_MLLegacy_Mono|Any CPU.Build.0 = Release_MLLegacy_Mono|Any CPU {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_STANDALONE_Cpp|Any CPU.ActiveCfg = Release_STANDALONE_Cpp|Any CPU {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_STANDALONE_Cpp|Any CPU.Build.0 = Release_STANDALONE_Cpp|Any CPU {B21DBDE3-5D6F-4726-93AB-CC3CC68BAE7D}.Release_STANDALONE_Mono|Any CPU.ActiveCfg = Release_STANDALONE_Mono|Any CPU