コード例 #1
0
        public unsafe override void OnApplicationStart()
        {
            if (!SteamClient.IsValid)
            {
                SteamClient.Init(823500);
            }

#if DEBUG
            MelonModLogger.LogWarning("Debug build!");
#endif

            MelonLogger.Log($"Multiplayer initialising with protocol version {PROTOCOL_VERSION}.");

            // Set up prefs
            MelonPrefs.RegisterCategory("MPMod", "Multiplayer Settings");
            MelonPrefs.RegisterBool("MPMod", "BaldFord", false, "90% effective hair removal solution");

            // Initialise transport layer
            TransportLayer = new SteamTransportLayer();

            // Create the UI and cache the PlayerRep's model
            ui     = new MultiplayerUI();
            client = new Client(ui, TransportLayer);
            server = new Server(ui, TransportLayer);
            PlayerRep.LoadFord();

            // Configures if the PlayerRep's are showing or hiding certain parts
            PlayerRep.showBody = true;
            PlayerRep.showHair = MelonPrefs.GetBool("MPMod", "BaldFord");

            // Initialize Discord's RichPresence
            RichPresence.Initialise(701895326600265879);
            client.SetupRP();

            BWUtil.Hook();

            UnhollowerRuntimeLib.ClassInjector.RegisterTypeInIl2Cpp <SyncedObject>();
        }
コード例 #2
0
ファイル: FavCatSettings.cs プロジェクト: Bunie89/VRCMods
        internal static void RegisterSettings()
        {
            MelonPrefs.RegisterCategory(FavCatCategory, "FavCat");

            MelonPrefs.RegisterString(FavCatCategory, DatabasePathSettings, "./UserData", "Database directory path", true);
            MelonPrefs.RegisterString(FavCatCategory, ImageCacheSettings, "./UserData", "Image cache directory path", true);

            MelonPrefs.RegisterBool(FavCatCategory, EnableAvatarFavs, true, "Enable avatar favorites (restart required)");
            MelonPrefs.RegisterBool(FavCatCategory, EnableWorldFavs, true, "Enable world favorites (restart required)");
            MelonPrefs.RegisterBool(FavCatCategory, EnablePlayerFavs, true, "Enable player favorites (restart required)");

            MelonPrefs.RegisterString(FavCatCategory, ImageCachingMode, "full", "Image caching mode");
            MelonPrefs.RegisterInt(FavCatCategory, ImageCacheMaxSize, 4096, "Image cache max size (MB)");
            MelonPrefs.RegisterBool(FavCatCategory, HidePopupAfterFav, true, "Hide favorite popup after (un)favoriting a world or a player");

            MelonPrefs.RegisterBool(FavCatCategory, MakeClickSounds, true, "Click sounds");

            // shared mode can't be multi-threaded, so hide this until other parts of code are ready for ST patterns
            MelonPrefs.RegisterBool(FavCatCategory, UseSharedMode, false, "Support multiple VRC instances (slower, restart required)", true);

            MelonPrefs.RegisterString(FavCatCategory, LastAnnoyingMessageSeen, "", hideFromList: true);

            ExpansionKitApi.RegisterSettingAsStringEnum(FavCatCategory, ImageCachingMode, new [] { ("full", "Full local image cache (fastest, safest)"), ("fast", "Fast, use more RAM"), ("builtin", "Preserve RAM, more API requests") });
コード例 #3
0
        private IEnumerator WaitForUixPrefabsAndRegister()
        {
            var field = typeof(UiExpansionKitMod).GetFields(BindingFlags.Instance | BindingFlags.NonPublic)
                        .Single(it => it.FieldType == typeof(PreloadedBundleContents));
            var mod = MelonHandler.Mods.Single(it => it is UiExpansionKitMod);

            while (field.GetValue(mod) == null)
            {
                yield return(null);
            }

            ourIsExpanded = !ExpansionKitSettings.IsCategoriesStartCollapsed();

            var prefabs = CustomParticleSettingsUiHandler.UixBundle = (PreloadedBundleContents)field.GetValue(mod);

            var rootPrefab = Object.Instantiate(prefabs.SettingsCategory, prefabs.StoredThingsParent.transform, false);

            rootPrefab.GetComponentInChildren <Text>().text = MelonPrefs.GetCategoryDisplayName(SettingsCategory);
            rootPrefab.SetActive(true);
            rootPrefab.AddComponent <CustomParticleSettingsUiHandler>();

            ExpansionKitApi.RegisterCustomSettingsCategory(SettingsCategory, rootPrefab);
        }
コード例 #4
0
 public static int GetTextSize() => MelonPrefs.GetInt(SettingsCategory, SettingTextSize);
コード例 #5
0
 public static bool GetUseUiMixer() => MelonPrefs.GetBool(SettingsCategory, SettingUseUiMixer);
コード例 #6
0
 public static bool ShowFriendsAlways() => MelonPrefs.GetBool(SettingsCategory, SettingShowFriendsAlways);
コード例 #7
0
        public override void OnApplicationStart()
        {
            if (instance != null)
            {
                MelonLogger.LogError("There's already an instance of Double-Tap Runner. Remove the duplicate dll files");
                MelonLogger.LogError("Not Guaranteed to work with multiple instances at all");
                return;
            }

            instance = this;

            // Default settings
            activeSettings = new Settings
            {
                Enabled            = true,
                SpeedMultiplier    = 2f,
                DoubleClickTime    = .5f,
                Forward            = KeyCode.W,
                Backward           = KeyCode.S,
                Left               = KeyCode.A,
                Right              = KeyCode.D,
                AxisDeadZone       = .1f,
                AxisClickThreshold = .6f
            };

            MelonPrefs.RegisterCategory(SettingsCategory, "Double-Tap Runner");
            MelonPrefs.RegisterBool(SettingsCategory, nameof(Settings.Enabled), activeSettings.Enabled, "Enabled");
            MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.SpeedMultiplier), activeSettings.SpeedMultiplier, "Speed Multiplier");
            MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.DoubleClickTime), activeSettings.DoubleClickTime, "Double Click Time");

            MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Forward), Enum.GetName(typeof(KeyCode), activeSettings.Forward), "Desktop Forward");
            MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Backward), Enum.GetName(typeof(KeyCode), activeSettings.Backward), "Desktop Backward");
            MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Left), Enum.GetName(typeof(KeyCode), activeSettings.Left), "Desktop Left");
            MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Right), Enum.GetName(typeof(KeyCode), activeSettings.Right), "Desktop Right");

            MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.AxisDeadZone), activeSettings.AxisDeadZone, "Axis Dead Zone");
            MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.AxisClickThreshold), activeSettings.AxisClickThreshold, "Axis Click Threshold");
            ApplySettings();

            try
            {
                // way more mod friendly but might mean more updates... oh well, not really hard to find. "Fade to" and check params
                MethodInfo fadeToMethod = typeof(VRCUiManager).GetMethod(
                    nameof(VRCUiManager.Method_Public_Void_String_Single_Action_0),
                    BindingFlags.Public | BindingFlags.Instance);
                harmonyInstance.Patch(
                    fadeToMethod,
                    null,
                    new HarmonyMethod(typeof(DoubleTapper).GetMethod(nameof(JoinedRoomPatch), BindingFlags.NonPublic | BindingFlags.Static)));
            }
            catch (Exception e)
            {
                modLoadedCorrectly = false;
                MelonLogger.LogError("Failed to patch into FadeTo: " + e);
            }

            try
            {
                MethodInfo leaveRoomMethod = typeof(NetworkManager).GetMethod(nameof(NetworkManager.OnLeftRoom), BindingFlags.Public | BindingFlags.Instance);
                harmonyInstance.Patch(
                    leaveRoomMethod,
                    new HarmonyMethod(typeof(DoubleTapper).GetMethod(nameof(LeftRoomPrefix), BindingFlags.NonPublic | BindingFlags.Static)));
            }
            catch (Exception e)
            {
                modLoadedCorrectly = false;
                MelonLogger.LogError("Failed to patch into OnLeftRoom: " + e);
            }

            if (!modLoadedCorrectly)
            {
                MelonLogger.LogError("Didn't load in correctly, not guaranteed to fully work so i'll shutdown this mod");
            }
        }
コード例 #8
0
 public static Color GetLeaveIconColor() => DecodeColor(MelonPrefs.GetString(SettingsCategory, SettingLeaveIconColor));
コード例 #9
0
 public static bool ShowFriendsInDifferentColor() => MelonPrefs.GetBool(SettingsCategory, SettingShowFriendsInDifferentColor);
コード例 #10
0
 public static bool ShouldShowNames(bool isJoin) =>
 MelonPrefs.GetBool(SettingsCategory, isJoin ? SettingJoinShowName : SettingLeaveShowName);
コード例 #11
0
 public override void OnApplicationStart()
 {
     base.OnApplicationStart();
     MelonPrefs.RegisterCategory("Pistol_Whip_Ricochet_Mod", "Ricochet Prefs");
     MelonPrefs.RegisterBool("Pistol_Whip_Ricochet_Mod", "disableRicochet", false);
 }
コード例 #12
0
 private void LoadConfig()
 {
     RandomSong.LoadBagSize(MelonPrefs.GetInt("RandomSong", "RandomSongBagSize"));
     lastSongCount = MelonPrefs.GetInt("SongBrowser", "LastSongCount");
 }
コード例 #13
0
 private void CreateConfig()
 {
     MelonPrefs.RegisterInt("RandomSong", "RandomSongBagSize", 10);
     MelonPrefs.RegisterInt("SongBrowser", "LastSongCount", 0);
 }
コード例 #14
0
 public static void SaveConfig()
 {
     MelonPrefs.SetInt("RandomSong", "RandomSongBagSize", RandomSong.randomSongBagSize);
     MelonPrefs.SetInt("SongBrowser", "LastSongCount", lastSongCount);
 }
コード例 #15
0
        private void UpdatePlayerVolume(Player player)
        {
            float volume = MelonPrefs.GetFloat(ModCategory, GetUserVolumePref(player.field_Private_APIUser_0));

            player.prop_USpeaker_0.field_Private_Single_1 = Mathf.Min(Mathf.Max(volume, 0.00f), 1.0f);
        }
コード例 #16
0
 public static bool IsCategoriesStartCollapsed() => MelonPrefs.GetBool(KitCategory, CategoriesStartCollapsed);
コード例 #17
0
 public static bool IsQmExpandoStartsCollapsed() => MelonPrefs.GetBool(KitCategory, QmExpandoStartsCollapsed);
コード例 #18
0
 public static bool ShouldBlinkIcon(bool isJoin) =>
 MelonPrefs.GetBool(SettingsCategory, isJoin ? SettingShouldBlink : SettingLeaveBlink);
コード例 #19
0
 public static bool ShouldPlaySound(bool isJoin) =>
 MelonPrefs.GetBool(SettingsCategory, isJoin ? SettingShouldPlaySound : SettingLeaveSound);
コード例 #20
0
 public void RegisterModPrefs()
 {
     MelonPrefs.RegisterCategory(settingsCategory, "BlockList");
     MelonPrefs.RegisterString(settingsCategory, "CustomBlocker", "");
 }
コード例 #21
0
 public static bool ShowFriendsOnly() => MelonPrefs.GetBool(SettingsCategory, SettingShowFriendsOnly);
コード例 #22
0
 public override void OnApplicationStart()
 {
     MelonPrefs.RegisterCategory(SettingsCategory, "Mic Be-Gone");
     MelonPrefs.RegisterBool(SettingsCategory, "MicEnabled", micEnabled, "Mic Enabled");
     micEnabled = MelonPrefs.GetBool(SettingsCategory, "MicEnabled");
 }
コード例 #23
0
 public static float GetSoundVolume() => MelonPrefs.GetFloat(SettingsCategory, SettingSoundVolume);
コード例 #24
0
ファイル: Main.cs プロジェクト: Alternity156/CustomModifiers
 public override void OnLevelWasLoaded(int level)
 {
     if (!MelonPrefs.HasKey("CustomModifiers", "AimAssist") || !MelonPrefs.HasKey("CustomModifiers", "TempoRampEndSpeed") || !MelonPrefs.HasKey("CustomModifiers", "ExtraParticlesScale") || !MelonPrefs.HasKey("CustomModifiers", "TargetSpeed") || !MelonPrefs.HasKey("CustomModifiers", "PsychedeliaSpeed"))
     {
         CreateConfig();
     }
     else
     {
         LoadConfig();
     }
 }
コード例 #25
0
        public override void OnGUI()
        {
            if (CheatToggles.guiEnabled)
            {
                if (initializedScene > 1)
                {
                    if (GUI.Toggle(new Rect(500f, 2f, 150f, 20f), CheatToggles.guiGhost, "Ghost GUI") != CheatToggles.guiGhost)
                    {
                        CheatToggles.guiGhost             = !CheatToggles.guiGhost;
                        CheatToggles.guiGhostTroll        = false;
                        CheatToggles.guiESP               = false;
                        CheatToggles.guiHelper            = false;
                        CheatToggles.guiHelperInfo        = false;
                        CheatToggles.guiTroll             = false;
                        CheatToggles.guiDebug             = false;
                        CheatToggles.guiTest              = false;
                        CheatToggles.guiFeatureCollection = false;
                    }
                    if (CheatToggles.guiGhost == true)
                    {
                        if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.enableEspGhost, "Ghost ESP") != CheatToggles.enableEspGhost)
                        {
                            CheatToggles.enableEspGhost = !CheatToggles.enableEspGhost;
                            Debug.Msg("ESP: Toggled " + (CheatToggles.enableEspGhost ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), CheatToggles.guiGhostTroll, "Troll Options") != CheatToggles.guiGhostTroll)
                        {
                            CheatToggles.guiGhostTroll = !CheatToggles.guiGhostTroll;
                        }
                        if (CheatToggles.guiGhostTroll == true)
                        {
                            if (GUI.Button(new Rect(800f, 2f, 150f, 20f), "Hunt") && levelController != null)
                            {
                                Trolling.Hunt();
                            }
                            if (GUI.Button(new Rect(800f, 22f, 150f, 20f), "Idle") && levelController != null)
                            {
                                Trolling.Idle();
                            }
                            if (GUI.Button(new Rect(800f, 42f, 150f, 20f), "Appear") && levelController != null)
                            {
                                Trolling.Appear();
                            }
                            if (GUI.Button(new Rect(800f, 62f, 150f, 20f), "Unappear") && levelController != null)
                            {
                                Trolling.UnAppear();
                            }
                        }
                    }
                    if (GUI.Toggle(new Rect(500f, 22f, 150f, 20f), CheatToggles.guiESP, "ESP GUI") != CheatToggles.guiESP)
                    {
                        CheatToggles.guiESP               = !CheatToggles.guiESP;
                        CheatToggles.guiGhost             = false;
                        CheatToggles.guiGhostTroll        = false;
                        CheatToggles.guiHelper            = false;
                        CheatToggles.guiHelperInfo        = false;
                        CheatToggles.guiTroll             = false;
                        CheatToggles.guiDebug             = false;
                        CheatToggles.guiTest              = false;
                        CheatToggles.guiFeatureCollection = false;
                    }
                    if (CheatToggles.guiESP == true)
                    {
                        if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.enableEspGhost, "Ghost ESP") != CheatToggles.enableEspGhost)
                        {
                            CheatToggles.enableEspGhost = !CheatToggles.enableEspGhost;
                            Debug.Msg("Ghost ESP: Toggled " + (CheatToggles.enableEspGhost ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), CheatToggles.enableEspPlayer, "Player ESP") != CheatToggles.enableEspPlayer)
                        {
                            CheatToggles.enableEspPlayer = !CheatToggles.enableEspPlayer;
                            Debug.Msg("Player ESP: Toggled " + (CheatToggles.enableEspPlayer ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 42f, 150f, 20f), CheatToggles.enableEspBone, "Bone ESP") != CheatToggles.enableEspBone)
                        {
                            CheatToggles.enableEspBone = !CheatToggles.enableEspBone;
                            Debug.Msg("Bone ESP: Toggled " + (CheatToggles.enableEspBone ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 62f, 150f, 20f), CheatToggles.enableEspOuija, "Ouija ESP") != CheatToggles.enableEspOuija)
                        {
                            CheatToggles.enableEspOuija = !CheatToggles.enableEspOuija;
                            Debug.Msg("Ouija ESP: Toggled " + (CheatToggles.enableEspOuija ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 82f, 150f, 20f), CheatToggles.enableEspFuseBox, "FuseBox ESP") != CheatToggles.enableEspFuseBox)
                        {
                            CheatToggles.enableEspFuseBox = !CheatToggles.enableEspFuseBox;
                            Debug.Msg("FuseBox ESP: Toggled " + (CheatToggles.enableEspFuseBox ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 102f, 150f, 20f), CheatToggles.enableEspEmf, "Emf ESP") != CheatToggles.enableEspEmf)
                        {
                            CheatToggles.enableEspEmf = !CheatToggles.enableEspEmf;
                            Debug.Msg("Emf ESP: Toggled " + (CheatToggles.enableEspEmf ? "On" : "Off"), 1);
                        }
                    }
                    if (GUI.Toggle(new Rect(500f, 42f, 150f, 20f), CheatToggles.guiHelper, "Helper GUI") != CheatToggles.guiHelper)
                    {
                        CheatToggles.guiHelper            = !CheatToggles.guiHelper;
                        CheatToggles.guiGhost             = false;
                        CheatToggles.guiGhostTroll        = false;
                        CheatToggles.guiESP               = false;
                        CheatToggles.guiHelperInfo        = false;
                        CheatToggles.guiTroll             = false;
                        CheatToggles.guiDebug             = false;
                        CheatToggles.guiTest              = false;
                        CheatToggles.guiFeatureCollection = false;
                    }
                    if (CheatToggles.guiHelper == true)
                    {
                        if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.guiHelperInfo, "Basic Info") != CheatToggles.guiHelperInfo)
                        {
                            CheatToggles.guiHelperInfo = !CheatToggles.guiHelperInfo;
                        }
                        if (CheatToggles.guiHelperInfo == true)
                        {
                            if (GUI.Toggle(new Rect(800f, 2f, 150f, 20f), CheatToggles.enableBIGhost, "Ghost Info") != CheatToggles.enableBIGhost)
                            {
                                CheatToggles.enableBIGhost = !CheatToggles.enableBIGhost;
                                Debug.Msg("Ghost Info: Toggled " + (CheatToggles.enableBIGhost ? "On" : "Off"), 1);
                            }
                            if (GUI.Toggle(new Rect(800f, 22f, 150f, 20f), CheatToggles.enableBIMissions, "Missions Info") != CheatToggles.enableBIMissions)
                            {
                                CheatToggles.enableBIMissions = !CheatToggles.enableBIMissions;
                                Debug.Msg("Missions Info: Toggled " + (CheatToggles.enableBIMissions ? "On" : "Off"), 1);
                            }
                            if (GUI.Toggle(new Rect(800f, 42f, 150f, 20f), CheatToggles.enableBIPlayer, "Player Info") != CheatToggles.enableBIPlayer)
                            {
                                CheatToggles.enableBIPlayer = !CheatToggles.enableBIPlayer;
                                Debug.Msg("Player Info: Toggled " + (CheatToggles.enableBIPlayer ? "On" : "Off"), 1);
                            }
                        }
                        if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), CheatToggles.enableFullbright, "Enable Fullbright") != CheatToggles.enableFullbright)
                        {
                            CheatToggles.enableFullbright = !CheatToggles.enableFullbright;
                            Debug.Msg("Fullbright: Toggled " + (CheatToggles.enableFullbright ? "On" : "Off"), 1);
                            if (CheatToggles.enableFullbright)
                            {
                                Fullbright.Enable();
                            }
                            else
                            {
                                Fullbright.Disable();
                            }
                        }
                        if (GUI.Toggle(new Rect(650f, 42f, 150f, 20f), CheatToggles.enableHotkeys, "Enable Troll Hotkeys") != CheatToggles.enableHotkeys)
                        {
                            CheatToggles.enableHotkeys = !CheatToggles.enableHotkeys;
                            Debug.Msg("Troll Hotkeys: Toggled " + (CheatToggles.enableHotkeys ? "On" : "Off"), 1);
                            MelonPrefs.SetBool("Settings", "HotkeysEnabled", CheatToggles.enableHotkeys);
                        }
                    }
                    if (GUI.Toggle(new Rect(500f, 62f, 150f, 20f), CheatToggles.guiTroll, "Troll GUI") != CheatToggles.guiTroll)
                    {
                        CheatToggles.guiTroll             = !CheatToggles.guiTroll;
                        CheatToggles.guiGhost             = false;
                        CheatToggles.guiGhostTroll        = false;
                        CheatToggles.guiESP               = false;
                        CheatToggles.guiHelper            = false;
                        CheatToggles.guiHelperInfo        = false;
                        CheatToggles.guiDebug             = false;
                        CheatToggles.guiTest              = false;
                        CheatToggles.guiFeatureCollection = false;
                    }
                    if (CheatToggles.guiTroll == true)
                    {
                        if (GUI.Button(new Rect(650f, 2f, 150f, 20f), "Lock Exit Doors") && levelController != null)
                        {
                            Trolling.LockDoors(1);
                        }
                        if (GUI.Button(new Rect(650f, 22f, 150f, 20f), "Lock All Doors") && levelController != null)
                        {
                            Trolling.LockDoors(2);
                        }
                        if (GUI.Button(new Rect(650f, 42f, 150f, 20f), "Unlock Exit Doors") && levelController != null)
                        {
                            Trolling.LockDoors(3);
                        }
                        if (GUI.Button(new Rect(650f, 62f, 150f, 20f), "Unlock All Doors") && levelController != null)
                        {
                            Trolling.LockDoors(4);
                        }
                        if (GUI.Button(new Rect(650f, 82f, 150f, 20f), "Door knock") && levelController != null)
                        {
                            Trolling.EventDoorKnock();
                        }
                        if (GUI.Button(new Rect(650f, 102f, 150f, 20f), "Random Event") && levelController != null)
                        {
                            Trolling.Interact();
                        }
                    }
                    if (GUI.Toggle(new Rect(500f, 82f, 150f, 20f), CheatToggles.guiDebug, "Debug GUI") != CheatToggles.guiDebug)
                    {
                        CheatToggles.guiDebug             = !CheatToggles.guiDebug;
                        CheatToggles.guiGhost             = false;
                        CheatToggles.guiGhostTroll        = false;
                        CheatToggles.guiESP               = false;
                        CheatToggles.guiHelper            = false;
                        CheatToggles.guiHelperInfo        = false;
                        CheatToggles.guiTroll             = false;
                        CheatToggles.guiTest              = false;
                        CheatToggles.guiFeatureCollection = false;
                    }
                    if (CheatToggles.guiDebug == true)
                    {
                        if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.enableDebug, "Enable Debug") != CheatToggles.enableDebug)
                        {
                            CheatToggles.enableDebug = !CheatToggles.enableDebug;
                            Debug.Msg("Debug: Toggled " + (CheatToggles.enableDebug ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), Debug.debugMode1, "Debug Mode 1") != Debug.debugMode1)
                        {
                            Debug.debugMode1 = !Debug.debugMode1;
                            Debug.Msg("Debug Mode 1: Toggled " + (Debug.debugMode1 ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 42f, 150f, 20f), Debug.debugMode2, "Debug Mode 2") != Debug.debugMode2)
                        {
                            Debug.debugMode2 = !Debug.debugMode2;
                            Debug.Msg("Debug Mode 2: Toggled " + (Debug.debugMode2 ? "On" : "Off"), 1);
                        }
                        if (GUI.Toggle(new Rect(650f, 62f, 150f, 20f), Debug.debugMode3, "Debug Mode 3") != Debug.debugMode3)
                        {
                            Debug.debugMode3 = !Debug.debugMode3;
                            Debug.Msg("Debug Mode 3: Toggled " + (Debug.debugMode3 ? "On" : "Off"), 1);
                        }
                    }
                    if (GUI.Toggle(new Rect(500f, 102f, 150f, 20f), CheatToggles.guiTest, "New Features") != CheatToggles.guiTest)
                    {
                        CheatToggles.guiTest              = !CheatToggles.guiTest;
                        CheatToggles.guiGhost             = false;
                        CheatToggles.guiGhostTroll        = false;
                        CheatToggles.guiESP               = false;
                        CheatToggles.guiHelper            = false;
                        CheatToggles.guiHelperInfo        = false;
                        CheatToggles.guiTroll             = false;
                        CheatToggles.guiDebug             = false;
                        CheatToggles.guiFeatureCollection = false;
                    }
                    if (CheatToggles.guiTest == true)
                    {
                        if (GUI.Button(new Rect(650f, 2f, 150f, 20f), "Random Light Use") && levelController != null)
                        {
                            LightSwitch lightSwitchr = lightSwitches[new System.Random().Next(0, lightSwitches.Count)];
                            if (lightSwitchr != null)
                            {
                                lightSwitchr.UseLight();
                            }
                            Debug.Msg("Random Light Use", 1);
                        }
                        if (GUI.Button(new Rect(650f, 42f, 150f, 20f), "All Lights Off") && levelController != null)
                        {
                            foreach (LightSwitch lightSwitchaoff in lightSwitches)
                            {
                                lightSwitchaoff.TurnOff();
                                lightSwitchaoff.TurnOffNetworked(true);
                            }
                            Debug.Msg("All Lights Off", 1);
                        }
                        if (GUI.Button(new Rect(650f, 62f, 150f, 20f), "Blinking Lights") && levelController != null)
                        {
                            lightSwitchToggle = !lightSwitchToggle;
                            Debug.Msg("Blinking Lights", 1);
                        }
                        if (GUI.Button(new Rect(650f, 82f, 150f, 20f), "Disable All Features") && levelController != null)
                        {
                            DisableAll();
                            Debug.Msg("Disable All", 1);
                        }
                    }
                    if (GUI.Toggle(new Rect(500f, 122f, 150f, 20f), CheatToggles.guiFeatureCollection, "Feature Coll. GUI") != CheatToggles.guiFeatureCollection)
                    {
                        CheatToggles.guiFeatureCollection = !CheatToggles.guiFeatureCollection;
                        CheatToggles.guiGhost             = false;
                        CheatToggles.guiGhostTroll        = false;
                        CheatToggles.guiESP        = false;
                        CheatToggles.guiHelper     = false;
                        CheatToggles.guiHelperInfo = false;
                        CheatToggles.guiTroll      = false;
                        CheatToggles.guiDebug      = false;
                        CheatToggles.guiTest       = false;
                    }
                    if (CheatToggles.guiFeatureCollection == true)
                    {
                        if (GUI.Button(new Rect(650f, 2f, 150f, 20f), "Hunt") && levelController != null)
                        {
                            Trolling.Hunt();
                        }
                        if (GUI.Button(new Rect(650f, 22f, 150f, 20f), "Idle") && levelController != null)
                        {
                            Trolling.Idle();
                        }
                        if (GUI.Button(new Rect(650f, 42f, 150f, 20f), "Appear") && levelController != null)
                        {
                            Trolling.Appear();
                        }
                        if (GUI.Button(new Rect(650f, 62f, 150f, 20f), "Unappear") && levelController != null)
                        {
                            Trolling.UnAppear();
                        }
                        if (GUI.Button(new Rect(800f, 2f, 150f, 20f), "Lock Exit Doors") && levelController != null)
                        {
                            Trolling.LockDoors(1);
                        }
                        if (GUI.Button(new Rect(800f, 22f, 150f, 20f), "Lock All Doors") && levelController != null)
                        {
                            Trolling.LockDoors(2);
                        }
                        if (GUI.Button(new Rect(800f, 42f, 150f, 20f), "Unlock Exit Doors") && levelController != null)
                        {
                            Trolling.LockDoors(3);
                        }
                        if (GUI.Button(new Rect(800f, 62f, 150f, 20f), "Unlock All Doors") && levelController != null)
                        {
                            Trolling.LockDoors(4);
                        }
                        if (GUI.Button(new Rect(800f, 82f, 150f, 20f), "Door knock") && levelController != null)
                        {
                            Trolling.EventDoorKnock();
                        }
                        if (GUI.Button(new Rect(800f, 102f, 150f, 20f), "Random Event") && levelController != null)
                        {
                            Trolling.Interact();
                        }
                        if (GUI.Button(new Rect(950f, 2f, 150f, 20f), "Random Light Use") && levelController != null)
                        {
                            LightSwitch lightSwitchr = lightSwitches[new System.Random().Next(0, lightSwitches.Count)];
                            if (lightSwitchr != null)
                            {
                                lightSwitchr.UseLight();
                            }
                            Debug.Msg("Random Light Use", 1);
                        }
                        if (GUI.Button(new Rect(950f, 42f, 150f, 20f), "All Lights Off") && levelController != null)
                        {
                            foreach (LightSwitch lightSwitchaoff in lightSwitches)
                            {
                                lightSwitchaoff.TurnOff();
                                lightSwitchaoff.TurnOffNetworked(true);
                            }
                            Debug.Msg("All Lights Off", 1);
                        }
                        if (GUI.Button(new Rect(950f, 62f, 150f, 20f), "Blinking Lights") && levelController != null)
                        {
                            lightSwitchToggle = !lightSwitchToggle;
                            Debug.Msg("Blinking Lights", 1);
                        }
                    }
                }
                else
                {
                    if (initializedScene == 1)
                    {
                        if (GUI.Toggle(new Rect(500f, 82f, 150f, 20f), CheatToggles.guiDebug, "Debug GUI") != CheatToggles.guiDebug)
                        {
                            CheatToggles.guiDebug             = !CheatToggles.guiDebug;
                            CheatToggles.guiGhost             = false;
                            CheatToggles.guiGhostTroll        = false;
                            CheatToggles.guiESP               = false;
                            CheatToggles.guiHelper            = false;
                            CheatToggles.guiHelperInfo        = false;
                            CheatToggles.guiTroll             = false;
                            CheatToggles.guiTest              = false;
                            CheatToggles.guiFeatureCollection = false;
                        }
                        if (CheatToggles.guiDebug == true)
                        {
                            if (GUI.Toggle(new Rect(550f, 102f, 150f, 20f), CheatToggles.enableDebug, "Enable Debug") != CheatToggles.enableDebug)
                            {
                                CheatToggles.enableDebug = !CheatToggles.enableDebug;
                                Debug.Msg("Debug: Toggled " + (CheatToggles.enableDebug ? "On" : "Off"), 1);
                            }
                            if (GUI.Toggle(new Rect(550f, 122f, 150f, 20f), Debug.debugMode1, "Debug Mode 1") != Debug.debugMode1)
                            {
                                Debug.debugMode1 = !Debug.debugMode1;
                                Debug.Msg("Debug Mode 1: Toggled " + (Debug.debugMode1 ? "On" : "Off"), 1);
                            }
                            if (GUI.Toggle(new Rect(550f, 142f, 150f, 20f), Debug.debugMode2, "Debug Mode 2") != Debug.debugMode2)
                            {
                                Debug.debugMode2 = !Debug.debugMode2;
                                Debug.Msg("Debug Mode 2: Toggled " + (Debug.debugMode2 ? "On" : "Off"), 1);
                            }
                            if (GUI.Toggle(new Rect(550f, 162f, 150f, 20f), Debug.debugMode3, "Debug Mode 3") != Debug.debugMode3)
                            {
                                Debug.debugMode3 = !Debug.debugMode3;
                                Debug.Msg("Debug Mode 3: Toggled " + (Debug.debugMode3 ? "On" : "Off"), 1);
                            }
                        }

                        GUI.SetNextControlName("changeName");
                        playerName = GUI.TextArea(new Rect(650f, 2f, 150f, 20f), playerName);
                        if (GUI.Button(new Rect(650f, 22f, 150f, 20f), "Change Name"))
                        {
                            GUI.FocusControl("changeName");
                            PhotonNetwork.NickName = playerName;
                            Debug.Msg("Set name: " + playerName, 1);
                        }
                    }
                }
            }

            if (CheatToggles.enableEspGhost || CheatToggles.enableEspPlayer || CheatToggles.enableEspBone || CheatToggles.enableEspOuija || CheatToggles.enableEspEmf || CheatToggles.enableEspFuseBox)
            {
                ESP.Enable();
            }

            if (CheatToggles.enableBIGhost || CheatToggles.enableBIMissions || CheatToggles.enableBIPlayer)
            {
                GUI.Label(new Rect(0f, 0f, 500f, 160f), "", "box");
            }
            if (CheatToggles.enableBIGhost)
            {
                BasicInformations.EnableGhost();
                GUI.Label(new Rect(10f, 2f, 300f, 50f), "<color=#00FF00><b>Ghost Name:</b> " + (ghostNameAge ?? "") + "</color>");
                GUI.Label(new Rect(10f, 17f, 300f, 50f), "<color=#00FF00><b>Ghost Type:</b> " + (ghostType ?? "") + "</color>");
                GUI.Label(new Rect(10f, 47f, 400f, 50f), "<color=#00FF00><b>Evidence:</b> " + (evidence ?? "") + "</color>");
                GUI.Label(new Rect(10f, 32f, 300f, 50f), "<color=#00FF00><b>Ghost State:</b> " + (ghostState ?? "") + "</color>");
                GUI.Label(new Rect(10f, 62f, 400f, 50f), "<color=#00FF00><b>Responds to:</b> " + (ghostIsShy ?? "") + "</color>");
            }
            else
            {
                if (initializedScene > 1)
                {
                    Debug.Msg("BasicInformations.DisableGhost", 3);
                    BasicInformations.DisableGhost();
                }
            }
            if (CheatToggles.enableBIMissions)
            {
                BasicInformations.EnableMissions();
            }
            if (CheatToggles.enableBIPlayer)
            {
                BasicInformations.EnablePlayer();
                GUI.Label(new Rect(10f, 77f, 300f, 50f), "<color=#00FF00><b>My Sanity:</b> " + (myPlayerSanity ?? "N/A") + "</color>");
            }
            if (lightSwitchToggle && !lightSwitchRunning)
            {
                Debug.Msg("lightSwitchRunningTrue", 3);
                lightSwitchRunning    = true;
                blinkingLightsRoutine = MelonCoroutines.Start(BlinkingLights());
            }
        }
コード例 #26
0
        public static IEnumerator PopulateSettingsPanel(RectTransform settingsContentRoot)
        {
            yield return(null);

            yield return(null);

            yield return(null);

            var categoryPrefab = ourStuffBundle.SettingsCategory;
            var boolPrefab     = ourStuffBundle.SettingsBool;
            var textPrefab     = ourStuffBundle.SettingsText;
            var comboBoxPrefab = ourStuffBundle.SettingsComboBox;

            settingsContentRoot.DestroyChildren();

            var pinnedSettings = ExpansionKitSettings.ListPinnedPrefs(false).ToList();

            foreach (var keyValuePair in MelonPrefs.GetPreferences())
            {
                var categoryId = keyValuePair.Key;
                var prefDict   = keyValuePair.Value;

                if (ExpansionKitApi.CustomCategoryUIs.TryGetValue(categoryId, out var specificPrefab))
                {
                    Object.Instantiate(specificPrefab, settingsContentRoot, false);
                    continue;
                }

                var prefsToPopulate = prefDict.Where(it => !it.Value.Hidden).ToList();

                if (prefsToPopulate.Count == 0)
                {
                    continue;
                }

                var categoryUi = Object.Instantiate(categoryPrefab, settingsContentRoot, false);
                categoryUi.GetComponentInChildren <Text>().text = MelonPrefs.GetCategoryDisplayName(categoryId);
                var categoryUiContent     = categoryUi.transform.Find("CategoryEntries");
                var expandButtonTransform = categoryUi.transform.Find("ExpandButton");
                var expandButton          = expandButtonTransform.GetComponent <Button>();
                var expandButtonText      = expandButtonTransform.GetComponentInChildren <Text>();

                void SetExpanded(bool expanded)
                {
                    expandButtonText.text = expanded ? "^" : "V";
                    categoryUiContent.gameObject.SetActive(expanded);
                }

                expandButton.onClick.AddListener(new Action(() =>
                {
                    SetExpanded(ourCategoryExpanded[categoryId] = !ourCategoryExpanded[categoryId]);
                }));

                if (!ourCategoryExpanded.ContainsKey(categoryId))
                {
                    ourCategoryExpanded[categoryId] = !ExpansionKitSettings.IsCategoriesStartCollapsed();
                }

                SetExpanded(ourCategoryExpanded[categoryId]);

                foreach (var valuePair in prefsToPopulate)
                {
                    var prefId   = valuePair.Key;
                    var prefDesc = valuePair.Value;

                    switch (prefDesc.Type)
                    {
                    case MelonPrefs.MelonPreferenceType.STRING:
                    {
                        if (ExpansionKitApi.EnumSettings.TryGetValue((categoryId, prefId), out var enumValues))
                        {
                            var comboSetting = Object.Instantiate(comboBoxPrefab, categoryUiContent, false);
                            comboSetting.GetComponentInChildren <Text>().text = prefDesc.DisplayText ?? prefId;
                            var dropdown      = comboSetting.GetComponentInChildren <Dropdown>();
                            var options       = new Il2CppSystem.Collections.Generic.List <Dropdown.OptionData>();
                            var currentValue  = MelonPrefs.GetString(categoryId, prefId);
                            var selectedIndex = enumValues.Count;
                            for (var i = 0; i < enumValues.Count; i++)
                            {
                                var valueTuple = enumValues[i];
                                options.Add(new Dropdown.OptionData(valueTuple.DisplayName));
                                if (currentValue == valueTuple.SettingsValue)
                                {
                                    selectedIndex = i;
                                }
                            }
                            if (enumValues.All(it => it.SettingsValue != currentValue))
                            {
                                options.Add(new Dropdown.OptionData(currentValue));
                            }
                            dropdown.options = options;
                            dropdown.value   = selectedIndex;
                            dropdown.onValueChanged.AddListener(new Action <int>(value =>
                                {
                                    prefDesc.ValueEdited = value >= enumValues.Count
                                        ? currentValue
                                        : enumValues[value].SettingsValue;
                                }));
                        }
コード例 #27
0
 public override void OnModSettingsApplied()
 {
     micEnabled = MelonPrefs.GetBool(SettingsCategory, "MicEnabled");
     ApplySettings();
 }
コード例 #28
0
ファイル: Main.cs プロジェクト: Screwable/VRChat-Mods
 public override void OnModSettingsApplied()
 {
     _comfyVRMenu = MelonPrefs.GetBool("ComfyVRMenu", "EnableComfyVRMenu");
 }
コード例 #29
0
ファイル: Main.cs プロジェクト: dreiekk/VRChat-Mods
 public override void OnModSettingsApplied()
 {
     _enabled             = MelonPrefs.GetBool("AntiUdonExploits", "Enabled");
     _publicInstancesOnly = MelonPrefs.GetBool("AntiUdonExploits", "PublicInstancesOnly");
 }
コード例 #30
0
 public static Color GetFriendJoinIconColor() => DecodeColor(MelonPrefs.GetString(SettingsCategory, SettingFriendsJoinColor));