Exemple #1
0
        public override void OnApplicationStart()
        {
            Instance = this;

            Directory.CreateDirectory(Path.Combine(MelonUtils.UserDataDirectory, StylesLoader.StylesSubDir));

            mySettings = new SettingsHolder();

            var settingMenu = ExpansionKitApi.GetSettingsCategory(SettingsHolder.CategoryIdentifier);

            settingMenu.AddSimpleButton("Configure mix-in styles", ShowMixinMenu);
            settingMenu.AddSimpleButton("Reload styles from disk", ReloadStyles);
            settingMenu.AddSimpleButton("Export default VRChat style reference", ExportStyleClick);
            settingMenu.AddSimpleButton("Export QM object/style tree", ExportTreeClick);
            settingMenu.AddSimpleButton("Open mod documentation in browser", () => Process.Start("https://github.com/knah/VRCMods#Styletor"));

            MelonCoroutines.Start(WaitForStyleInit());
        }
Exemple #2
0
        public static void OnApplicationStart()
        {
            ClassInjector.RegisterTypeInIl2Cpp <QuickMenuHideAvatarButtonHandler>();

            var hideAuthorButton       = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.UserDetailsMenu).AddSimpleButton("Hide all avatars by this author", OnHideBigClick);
            var hideAvatarButton       = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.UserQuickMenu).AddSimpleButton("Hide this avatar (on anyone)", OnHideAvatarClick);
            var forceAllowBundleButton = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.UserQuickMenu).AddSimpleButton("Force allow this avatar bundle", OnForceAllowBundleClick);

            ourHideAuthorTextSink   = s => hideAuthorButton.Text = s;
            ourHideAvatarTextSink   = s => hideAvatarButton.Text = s;
            ourForceAllowBundleSink = b => forceAllowBundleButton.Visible = b;

            hideAvatarButton.OnInstanceCreated += obj => obj.AddComponent <QuickMenuHideAvatarButtonHandler>();

            ExpansionKitApi.GetExpandedMenu(ExpandedMenu.SettingsMenu).AddSimpleButton("Reload all avatars", () => ScanningReflectionCache.ReloadAllAvatars(false));

            ExpansionKitApi.GetSettingsCategory(BundleVerifierMod.SettingsCategory)
            .AddSimpleButton("Reset corrupted bundle cache", () => BundleVerifierMod.BadBundleCache.Clear());

            MelonCoroutines.Start(InitThings());
        }
 private static void AddNewUixProperties(string categoryName)
 {
     ExpansionKitApi.GetSettingsCategory(categoryName).AddLabel("World rejoin is required to apply settings");
 }
Exemple #4
0
        public override void OnApplicationStart()
        {
            var category = MelonPreferences.CreateCategory("CameraMinus", "CameraMinus");

            myUseCameraExpando            = category.CreateEntry("UseCameraExpando", true, "Use Camera expando (instead of QM expando)");
            myUnlimitCameraPickupDistance = category.CreateEntry("UnlimitCameraPickupDistance", true, "Longer camera pickup distance");

            ExpansionKitApi.GetSettingsCategory("CameraMinus")
            .AddLabel("Disable and enable camera to update camera expando visibility");

            IMenuToggle cameraGrabbableButton = null;
            IMenuToggle qmGrabbableButton     = null;

            IMenuToggle cameraUiVisibleButton = null;
            IMenuToggle qmUiVisibleButton     = null;

            void SetCameraGrabbable(bool grabbable)
            {
                var controller = UserCameraController.field_Internal_Static_UserCameraController_0;

                if (controller != null)
                {
                    controller.transform.Find("ViewFinder").GetComponent <VRC_Pickup>().pickupable = grabbable;
                }

                cameraGrabbableButton !.Selected = qmGrabbableButton !.Selected = grabbable;
            }

            void SetUiVisible(bool visible)
            {
                var controller = UserCameraController.field_Internal_Static_UserCameraController_0;

                if (controller != null)
                {
                    controller.transform.Find("ViewFinder/PhotoControls").gameObject.SetActive(visible);
                }

                cameraUiVisibleButton !.Selected = qmUiVisibleButton !.Selected = visible;
            }

            var cameraEnlargeButton = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.Camera).AddSimpleButton("Enlarge camera", Enlarge);
            var cameraShrinkButton  = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.Camera).AddSimpleButton("Shrink camera", Shrink);

            cameraGrabbableButton = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.Camera).AddToggleButton("Grabbable", SetCameraGrabbable, () => true);
            cameraUiVisibleButton = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.Camera).AddToggleButton("UI visible", SetUiVisible, () => true);
            var qmEnlargeButton = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.CameraQuickMenu).AddSimpleButton("Enlarge camera", Enlarge);
            var qmShrinkButton  = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.CameraQuickMenu).AddSimpleButton("Shrink camera", Shrink);

            qmGrabbableButton = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.CameraQuickMenu).AddToggleButton("Grabbable", SetCameraGrabbable, () => true);
            qmUiVisibleButton = ExpansionKitApi.GetExpandedMenu(ExpandedMenu.CameraQuickMenu).AddToggleButton("UI visible", SetUiVisible, () => true);

            void UpdateButtonVisibility(bool value)
            {
                cameraEnlargeButton.SetVisible(value);
                cameraShrinkButton.SetVisible(value);
                cameraGrabbableButton.SetVisible(value);
                cameraUiVisibleButton.SetVisible(value);
                qmEnlargeButton.SetVisible(!value);
                qmShrinkButton.SetVisible(!value);
                qmGrabbableButton.SetVisible(!value);
                qmUiVisibleButton.SetVisible(!value);
            }

            myUseCameraExpando.OnValueChanged += (_, value) =>
            {
                UpdateButtonVisibility(value);
            };

            UpdateButtonVisibility(myUseCameraExpando.Value);

            myUnlimitCameraPickupDistance.OnValueChanged += (_, value) =>
            {
                UpdateCameraPickupDistance(value);
            };

            ExpansionKitApi.OnUiManagerInit += () =>
            {
                UpdateCameraPickupDistance(myUnlimitCameraPickupDistance.Value);
            };
        }