From b45f778d42cc80c19c283806acf6904a720bd787 Mon Sep 17 00:00:00 2001 From: josh Date: Tue, 10 May 2022 01:00:14 +0100 Subject: [PATCH] Add project files. --- ColourBlind.cs | 98 +++++ ColourBlindComponent.cs | 94 +++++ MainClass.cs | 324 +++++++++++++++++ Misc Classes.cs | 188 ++++++++++ Properties/AssemblyInfo.cs | 36 ++ Resources/assistshader.asset | Bin 0 -> 8536 bytes VRChatAccessability.csproj | 672 +++++++++++++++++++++++++++++++++++ VRChatAccessability.sln | 25 ++ 8 files changed, 1437 insertions(+) create mode 100644 ColourBlind.cs create mode 100644 ColourBlindComponent.cs create mode 100644 MainClass.cs create mode 100644 Misc Classes.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Resources/assistshader.asset create mode 100644 VRChatAccessability.csproj create mode 100644 VRChatAccessability.sln diff --git a/ColourBlind.cs b/ColourBlind.cs new file mode 100644 index 0000000..2227989 --- /dev/null +++ b/ColourBlind.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using IL2CPPAssetBundleAPI; +using MelonLoader; +using PlagueButtonAPI.Controls; +using UnityEngine; + +namespace VRChatAccessability +{ + internal class ColourBlind : BaseModule + { + private IL2CPPAssetBundle Bundle = new (); + + public override void OnApplicationStart() + { + if (!Bundle.LoadBundle(Assembly.GetExecutingAssembly(), "VRChatAccessability.Resources.assistshader.asset")) // This If Also Checks If It Successfully Loaded As To Prevent Further Exceptions + { + MelonLogger.Error("Failed To Load Bundle! Error: " + Bundle.error); + } + } + + public override void OnQuickMenuInit() + { + var Comp = Camera.main.gameObject.AddComponent(); + Comp.Material = Bundle.Load("LoadMe.prefab").GetComponent().material; + + var page = MainClass.MainMenu.AddSubMenu("Accessibility", "Accessibility Options").Item1; + + var Access = page.AddCollapsibleButtonGroup("Colour Blind Assist", true); + + ToggleButton Protanopia = null; // red + ToggleButton Deuteranopia = null; // green + ToggleButton Tritanopia = null; // blue + + Protanopia = Access.AddToggleButton("Protanopia", "Red-Green", b => + { + MainClass.Config.InternalConfig.Protanopia = b; + MainClass.Config.InternalConfig.Deuteranopia = false; + MainClass.Config.InternalConfig.Tritanopia = false; + + Comp.AssistMode = b ? ColourBlindComponent.AssistType.Protanopia : ColourBlindComponent.AssistType.Normal; + + Deuteranopia.SetToggleState(false, false); + Tritanopia.SetToggleState(false, false); + }, MainClass.Config.InternalConfig.Protanopia); + + Deuteranopia = Access.AddToggleButton("Deuteranopia", "Red–Green-Yellow", b => + { + MainClass.Config.InternalConfig.Protanopia = false; + MainClass.Config.InternalConfig.Deuteranopia = b; + MainClass.Config.InternalConfig.Tritanopia = false; + + Comp.AssistMode = b ? ColourBlindComponent.AssistType.Deuteranopia : ColourBlindComponent.AssistType.Normal; + + Protanopia.SetToggleState(false, false); + Tritanopia.SetToggleState(false, false); + }, MainClass.Config.InternalConfig.Deuteranopia); + + Tritanopia = Access.AddToggleButton("Tritanopia", "Green-Blue", b => + { + MainClass.Config.InternalConfig.Protanopia = false; + MainClass.Config.InternalConfig.Deuteranopia = false; + MainClass.Config.InternalConfig.Tritanopia = b; + + Comp.AssistMode = b ? ColourBlindComponent.AssistType.Tritanopia : ColourBlindComponent.AssistType.Normal; + + Protanopia.SetToggleState(false, false); + Deuteranopia.SetToggleState(false, false); + }, MainClass.Config.InternalConfig.Tritanopia); + + page.AddSlider("Strength", "Change the assist strength", val => + { + MainClass.Config.InternalConfig.AssistStrength = val; + + Comp.Strength = val; + }, 0f, 1f, MainClass.Config.InternalConfig.AssistStrength, false, false); + + if (MainClass.Config.InternalConfig.Protanopia) + { + Comp.AssistMode = ColourBlindComponent.AssistType.Protanopia; + } + else if (MainClass.Config.InternalConfig.Deuteranopia) + { + Comp.AssistMode = ColourBlindComponent.AssistType.Deuteranopia; + } + else if (MainClass.Config.InternalConfig.Tritanopia) + { + Comp.AssistMode = ColourBlindComponent.AssistType.Tritanopia; + } + + Comp.Strength = MainClass.Config.InternalConfig.AssistStrength; + } + } +} diff --git a/ColourBlindComponent.cs b/ColourBlindComponent.cs new file mode 100644 index 0000000..0ea037c --- /dev/null +++ b/ColourBlindComponent.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MelonLoader; +using UnityEngine; + +namespace VRChatAccessability +{ + [RegisterTypeInIl2Cpp] + public class ColourBlindComponent : MonoBehaviour + { + public ColourBlindComponent(IntPtr ptr) : base(ptr){} + + public enum AssistType + { + Normal, + Deuteranopia, + Protanopia, + Tritanopia + } + + public AssistType AssistMode; + + public float Strength = 1.0f; + + public Material Material; + + public bool IsLinear => QualitySettings.activeColorSpace == ColorSpace.Linear; + + void Start() + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) + { + MelonLogger.Error("Image Effects are not supported on this platform."); + enabled = false; + return; + } + + // Disable if we don't support render textures + if (!SystemInfo.supportsRenderTextures) + { + MelonLogger.Error("RenderTextures are not supported on this platform."); + enabled = false; + return; + } + + if (Material == null) + { + MelonLogger.Error("Material Is Null!"); + enabled = false; + return; + } + + if (Material.shader == null) + { + MelonLogger.Error("Shader Is Null!"); + enabled = false; + return; + } + + // Disable the image effect if the shader can't + // run on the users graphics card + if (!Material.shader.isSupported) + { + MelonLogger.Error("Unsupported shader."); + enabled = false; + return; + } + } + + void OnDestroy() + { + if (Material) + { + DestroyImmediate(Material); + } + } + + void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Material.shader == null || AssistMode == AssistType.Normal) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetFloat("_Strength", Strength); + Graphics.Blit(source, destination, Material, ((int)AssistMode - 1) + (IsLinear ? 3 : 0)); + } + } +} diff --git a/MainClass.cs b/MainClass.cs new file mode 100644 index 0000000..6926ae4 --- /dev/null +++ b/MainClass.cs @@ -0,0 +1,324 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using MelonLoader; +using VRChatAccessability; +using PlagueButtonAPI; +using PlagueButtonAPI.Controls; +using PlagueButtonAPI.Controls.Grouping; +using PlagueButtonAPI.External_Libraries; +using PlagueButtonAPI.Main; +using PlagueButtonAPI.Pages; +using UnityEngine; +using VRC; +using VRC.Core; +using VRC.UI.Core; + +[assembly: MelonInfo(typeof(MainClass), "VRChat Accessability", "1.0", "ToastyFail & Plague")] +[assembly: MelonGame("VRChat", "VRChat")] +[assembly: MelonColor(ConsoleColor.Magenta)] + +namespace VRChatAccessability +{ + internal class MainClass : MelonMod + { + public static HarmonyLib.Harmony harmony; + + private static IEnumerable BaseModules = null; + + private static IEnumerable BaseModulesOnUpdate = null; + + internal static int FPS = 0; + + private float Offset = 0f; + + internal static CollapsibleButtonGroup MainMenu = null; + + internal static CollapsibleButtonGroup UserSelectedPage = null; + + public class Configuration + { + public bool Protanopia { get; set; } = false; + public bool Deuteranopia { get; set; } = false; + public bool Tritanopia { get; set; } = false; + public float AssistStrength { get; set; } = 1f; + } + + public static ConfigLib Config = new(Environment.CurrentDirectory + "\\VRChat Accessability.json"); + + public override void OnApplicationStart() + { + harmony = HarmonyInstance; + + var AllModules = Assembly.GetTypes().Where(o => o.IsSubclassOf(typeof(BaseModule))).OrderBy(o => (o.GetCustomAttributes(false).FirstOrDefault(q => q is LoadOrder) as LoadOrder)?.Priority).Select(a => (BaseModule)Activator.CreateInstance(a)); + + var ModulesWithUpdate = AllModules.Where(o => + o.GetType().GetMethod("OnFixedUpdate", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) != null || o.GetType().GetMethod("OnUpdate", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) != null || + o.GetType().GetMethod("OnLateUpdate", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) != null || + o.GetType().GetMethod("OnSecondPassed", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) != null).ToList(); // I hate reflection + + var ModulesWithoutUpdate = AllModules.Where(o => !ModulesWithUpdate.Contains(o)).ToList(); + + BaseModules = ModulesWithoutUpdate; + BaseModulesOnUpdate = ModulesWithUpdate; + + MelonLogger.Msg($"Loaded {ModulesWithoutUpdate.Count} Modules, {ModulesWithUpdate.Count} With Updates Per Frame."); + + MelonCoroutines.Start(WaitForUiManager()); + + Hooks.OnAvatarChanged_Post += NetworkEvents_OnAvatarChanged; + Hooks.OnAvatarInstantiated += NetworkEvents_OnAvatarInstantiated; + Hooks.OnPlayerJoin += NetworkEvents_OnPlayerJoined; + Hooks.OnPlayerLeave += NetworkEvents_OnPlayerLeft; + Hooks.OnRoomJoin += NetworkEvents_OnRoomJoined; + Hooks.OnRoomLeave += NetworkEvents_OnRoomLeft; + + foreach (var module in BaseModules) + { + module?.OnApplicationStart(); + } + + MelonLogger.Msg("Finished Loading VRChatAccessability!"); + } + + + private void NetworkEvents_OnRoomLeft() + { + foreach (var module in BaseModules) + { + module?.OnRoomLeft(); + } + } + + private void NetworkEvents_OnRoomJoined() + { + foreach (var module in BaseModules) + { + module?.OnRoomJoined(); + } + } + + private void NetworkEvents_OnPlayerLeft(Player obj) + { + MelonLogger.Msg($"Player Left: {obj?.field_Private_APIUser_0?.displayName}"); + + foreach (var module in BaseModules) + { + module?.OnPlayerLeft(obj); + } + } + + private void NetworkEvents_OnPlayerJoined(Player obj) + { + MelonLogger.Msg($"Player Joined: {obj?.field_Private_APIUser_0?.displayName}"); + + foreach (var module in BaseModules) + { + module?.OnPlayerJoined(obj); + } + } + + private void NetworkEvents_OnAvatarChanged(VRCAvatarManager arg1, GameObject arg2, string arg3, float arg4, ApiAvatar arg5) + { + foreach (var module in BaseModules) + { + module?.OnAvatarChanged(arg1, arg2, arg3, arg4, arg5); + } + + if (arg1.field_Private_VRCPlayer_0 == VRCPlayer.field_Internal_Static_VRCPlayer_0) + { + MelonLogger.Msg("Avatar Changed!"); + } + } + + private void NetworkEvents_OnAvatarInstantiated(VRCAvatarManager arg1, ApiAvatar arg2, GameObject arg3) + { + foreach (var module in BaseModules) + { + module?.OnAvatarInstantiated(arg1, arg2, arg3); + } + + if (arg1.field_Private_VRCPlayer_0 == VRCPlayer.field_Internal_Static_VRCPlayer_0) + { + MelonLogger.Msg("Avatar Instantiated!"); + } + } + + public override void OnApplicationLateStart() + { + foreach (var module in BaseModules) + { + module?.OnApplicationLateStart(); + } + } + + public override void OnApplicationQuit() + { + foreach (var module in BaseModules) + { + module?.OnApplicationQuit(); + } + } + + public override void OnGUI() + { + foreach (var module in BaseModules) + { + module?.OnGUI(); + } + } + + private IEnumerator WaitForUiManager() + { + while (VRCUiManager.field_Private_Static_VRCUiManager_0 == null) + { + yield return null; + } + + foreach (var module in BaseModules) + { + module?.OnUIManagerInit(); + } + + while (UIManager.field_Private_Static_UIManager_0 == null) + { + yield return null; + } + + while (GameObject.Find("UserInterface").GetComponentInChildren(true) == null) + { + yield return null; + } + + OnQuickMenuInit(); + } + + public static void OnQuickMenuInit() + { + ButtonAPI.OnInit += () => + { + var Page = MenuPage.CreatePage(WingSingleButton.Wing.Both, null, "VRChat Accessability", "VRChat Accessability", true, false, null, "", null, true).Item1; + + MainMenu = Page.AddCollapsibleButtonGroup("Main Options", true); + + UserSelectedPage = new CollapsibleButtonGroup(TransformHelper.SelectedUser_Local, "VRChat Accessability"); + + foreach (var module in BaseModules) + { + try + { + module?.OnQuickMenuInit(); + } + catch (Exception ex) + { + MelonLogger.Error("A BaseModule Failed To Execute OnQuickMenuInit!\n\n" + ex); + } + } + }; + } + + public override void OnFixedUpdate() + { + foreach (var module in BaseModulesOnUpdate) + { + module?.OnFixedUpdate(); + } + } + + public override void OnUpdate() + { + FPS = (int)(1f / Time.smoothDeltaTime); + + foreach (var module in BaseModulesOnUpdate) + { + module?.OnUpdate(); + } + + if (Time.time > Offset) + { + Offset = Time.time + 1f; + + foreach (var module in BaseModulesOnUpdate) + { + module?.OnSecondPassed(); + } + } + } + + public override void OnLateUpdate() + { + foreach (var module in BaseModulesOnUpdate) + { + module?.OnLateUpdate(); + } + } + + public override void OnLevelWasInitialized(int level) + { + foreach (var module in BaseModules) + { + module?.OnLevelWasInitialized(level); + } + } + + public override void OnLevelWasLoaded(int level) + { + foreach (var module in BaseModules) + { + module?.OnLevelWasLoaded(level); + } + } + + public override void OnSceneWasInitialized(int buildIndex, string sceneName) + { + foreach (var module in BaseModules) + { + module?.OnSceneWasInitialized(buildIndex, sceneName); + } + } + + public override void OnSceneWasLoaded(int buildIndex, string sceneName) + { + foreach (var module in BaseModules) + { + module?.OnSceneWasLoaded(buildIndex, sceneName); + } + } + + public override void OnSceneWasUnloaded(int buildIndex, string sceneName) + { + foreach (var module in BaseModules) + { + module?.OnSceneWasUnloaded(buildIndex, sceneName); + } + } + + public override void OnModSettingsApplied() + { + foreach (var module in BaseModules) + { + module?.OnModSettingsApplied(); + } + } + + public override void OnPreferencesLoaded() + { + foreach (var module in BaseModules) + { + module?.OnPreferencesLoaded(); + } + } + + public override void OnPreferencesSaved() + { + foreach (var module in BaseModules) + { + module?.OnPreferencesSaved(); + } + } + } +} diff --git a/Misc Classes.cs b/Misc Classes.cs new file mode 100644 index 0000000..2a72041 --- /dev/null +++ b/Misc Classes.cs @@ -0,0 +1,188 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using VRC; +using VRC.Core; + +namespace VRChatAccessability +{ + public class LoadOrder : Attribute + { + public int Priority; + + public LoadOrder(int priority) + { + Priority = priority; + } + } + + public class BaseModule + { + /// + /// Runs after Joining A Instance. + /// + public virtual void OnRoomJoined() + { + } + + /// + /// Runs after Leaving A Instance. + /// + public virtual void OnRoomLeft() + { + } + + /// + /// Runs after A User Has Joined The Instance. + /// + /// The player. + public virtual void OnPlayerJoined(Player player) + { + } + + /// + /// Runs after A User Has Left The Instance. + /// + /// The player. + public virtual void OnPlayerLeft(Player player) + { + } + + /// + /// Runs after A User Has Changed Avatar. + /// + public virtual void OnAvatarChanged(VRCAvatarManager manager, GameObject avatar, string player, float num, ApiAvatar apiAvatar) + { + } + + /// + /// Runs after An Avatar Has Instantiated. + /// + public virtual void OnAvatarInstantiated(VRCAvatarManager manager, ApiAvatar apiAvatar, GameObject avatar) + { + } + + /// + /// Runs after Game Initialization. + /// + public virtual void OnApplicationStart() + { + } + + /// + /// Runs after OnApplicationStart. + /// + public virtual void OnApplicationLateStart() + { + } + + /// + /// Runs after UI Manager Initialization. + /// + public virtual void OnUIManagerInit() + { + } + + /// + /// Runs after QuickMenu Initialization. + /// + public virtual void OnQuickMenuInit() + { + } + + /// + /// Runs when a Scene has Loaded and is passed the Scene's Build Index and Name. + /// + public virtual void OnSceneWasLoaded(int buildIndex, string sceneName) + { + } + + /// + /// Runs when a Scene has Initialized and is passed the Scene's Build Index and Name. + /// + public virtual void OnSceneWasInitialized(int buildIndex, string sceneName) + { + } + + /// + /// Runs when a Scene has Unloaded and is passed the Scene's Build Index and Name. + /// + public virtual void OnSceneWasUnloaded(int buildIndex, string sceneName) + { + } + + /// + /// Can run multiple times per frame. Mostly used for Physics. + /// + public virtual void OnFixedUpdate() + { + } + + /// + /// Runs once per frame. + /// + public virtual void OnUpdate() + { + } + + /// + /// Runs once per second. + /// + public virtual void OnSecondPassed() + { + } + + /// + /// Runs once per frame after OnUpdate and OnFixedUpdate have finished. + /// + public virtual void OnLateUpdate() + { + } + + /// + /// Can run multiple times per frame. Mostly used for Unity's IMGUI. + /// + public virtual void OnGUI() + { + } + + /// + /// Runs when the Game is told to Close. + /// + public virtual void OnApplicationQuit() + { + } + + /// + /// Runs when Melon Preferences get saved. + /// + public virtual void OnPreferencesSaved() + { + } + + /// + /// Runs when Melon Preferences get loaded. + /// + public virtual void OnPreferencesLoaded() + { + } + + [Obsolete("OnModSettingsApplied is obsolete. Please use OnPreferencesSaved instead.")] + public virtual void OnModSettingsApplied() + { + } + + [Obsolete("OnLevelWasLoaded is obsolete. Please use OnSceneWasLoaded instead.")] + public virtual void OnLevelWasLoaded(int level) + { + } + + [Obsolete("OnLevelWasInitialized is obsolete. Please use OnSceneWasInitialized instead.")] + public virtual void OnLevelWasInitialized(int level) + { + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cab20c5 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("VRChat Accessability")] +[assembly: AssemblyDescription("VRChat Accessability, A VRChat Mod Created By ToastyFail Using Plague's ModBaseMaker.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("ToastyFail")] +[assembly: AssemblyProduct("VRChat Accessability")] +[assembly: AssemblyCopyright("Copyright © ToastyFail 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e1a51d03-8b38-4e27-b319-43391f5896d0")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Resources/assistshader.asset b/Resources/assistshader.asset new file mode 100644 index 0000000000000000000000000000000000000000..e1d68a68c54dac8edc023c20c8accb0c177bf2cf GIT binary patch literal 8536 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 + + + + Debug + AnyCPU + {E1A51D03-8B38-4E27-B319-43391F5896D0} + Library + Properties + VRChatAccessability + VRChatAccessability + v4.7.2 + 512 + true + latest + + + true + full + false + E:\SteamLibrary\steamapps\common\VRChat\Mods\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Assembly-CSharp.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Assembly-CSharp-firstpass.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\AVProVideo.Extensions.Timeline.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\AVProVideo.Extensions.UnityUI.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\AVProVideo.Extensions.VisualEffectGraph.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\AVProVideo.Runtime.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\BeeByteObfuscator.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\BlobHandles.Runtime.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Boo.Lang.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Boo.Lang.Compiler.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Boo.Lang.Extensions.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Boo.Lang.Parser.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Boo.Lang.PatternMatching.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Boo.Lang.Useful.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Cinemachine.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\clipper_library.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Collections.Pooled.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Commons.Xml.Relaxng.dll + False + + + False + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\cscompmgd.dll + False + + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\DataModel.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\DOTween.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\DOTween.Modules.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Facepunch.Steamworks.Win64.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\I18N.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\I18N.CJK.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\I18N.MidEast.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\I18N.Other.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\I18N.Rare.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\I18N.West.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\IBM.Data.DB2.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Iced.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppMono.Security.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2Cppmscorlib.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppNewtonsoft.Json.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Buffers.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Collections.Immutable.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Configuration.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Core.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Diagnostics.StackTrace.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Globalization.Extensions.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.IO.Compression.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Memory.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Runtime.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Runtime.CompilerServices.Unsafe.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Runtime.Serialization.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Threading.Tasks.Extensions.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.ValueTuple.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Xml.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2CppSystem.Xml.Linq.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\MelonLoader.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Mono.Data.Sqlite.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Mono.Data.Tds.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Mono.Messaging.dll + False + + + False + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Mono.Posix.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Mono.Security.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Mono.WebBrowser.dll + False + + + False + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Newtonsoft.Json.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Photon-DotNet.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\Mods\PlagueButtonAPI.dll + False + + + + + + + + + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Transmtn.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnhollowerBaseLib.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnhollowerRuntimeLib.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Unity.TextMeshPro.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Unity.Timeline.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.AccessibilityModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.AIModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.AndroidJNIModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.AnimationModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ARModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.AssetBundleModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.AudioModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ClothModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ClusterInputModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ClusterRendererModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.CoreModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.CrashReportingModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.DirectorModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.DSPGraphModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.GameCenterModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.GridModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.HotReloadModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.Il2CppAssetBundleManager.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.Il2CppImageConversionManager.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ImageConversionModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.IMGUIModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.InputLegacyModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.InputModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.JSONSerializeModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.LocalizationModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ParticleSystemModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.PerformanceReportingModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.Physics2DModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.PhysicsModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ProfilerModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.ScreenCaptureModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.SharedInternalsModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.SpriteMaskModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.SpriteShapeModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.StreamingModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.SubstanceModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.SubsystemsModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.TerrainModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.TerrainPhysicsModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.TextCoreModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.TextRenderingModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.TilemapModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.TLSModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UI.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UIElementsModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UIModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UmbraModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UNETModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityAnalyticsModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityConnectModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityTestProtocolModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityWebRequestAssetBundleModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityWebRequestAudioModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityWebRequestModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityWebRequestTextureModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.UnityWebRequestWWWModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.VehiclesModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.VFXModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.VideoModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.VRModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.WindModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.XRModule.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Collections.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Dynamics.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.SDK3.Dynamics.Contact.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.SDK3.Dynamics.PhysBone.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.SDKBase.Editor.BuildPipeline.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.ClientBindings.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.Common.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.Security.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.Serialization.AOT.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.Serialization.OdinSerializer.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.VM.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.VRCWrapperModules.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Udon.Wrapper.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.UI.Core.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.UI.Elements.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.UI.Shared.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.Utility.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRCCore-Editor.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRCCore-Standalone.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRCLog.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRCSDK2.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRCSDK3.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRCSDK3A.dll + False + + + E:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRCSDKBase.dll + False + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VRChatAccessability.sln b/VRChatAccessability.sln new file mode 100644 index 0000000..6dad03a --- /dev/null +++ b/VRChatAccessability.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32014.148 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VRChatAccessability", "VRChatAccessability.csproj", "{E1A51D03-8B38-4E27-B319-43391F5896D0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E1A51D03-8B38-4E27-B319-43391F5896D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1A51D03-8B38-4E27-B319-43391F5896D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1A51D03-8B38-4E27-B319-43391F5896D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1A51D03-8B38-4E27-B319-43391F5896D0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7561E195-1EF3-4839-850C-BF7443B455D6} + EndGlobalSection +EndGlobal