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()); }
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"); }
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); }; }