Beispiel #1
0
        private IEnumerator PrintAll()
        {
            yield return(VRCUiManagerUtils.WaitForUiManagerInit());

            foreach (GameObject gameObject in QuickMenuUtils.GetQuickMenuInstance().gameObject.scene.GetRootGameObjects())
            {
                if (gameObject != null)
                {
                    PrintHierarchy(gameObject.transform, 0);
                }
            }
            yield break;
        }
Beispiel #2
0
        private IEnumerator VRCToolsSetup()
        {
            yield return(VRCUiManagerUtils.WaitForUiManagerInit());

            VRCModLogger.Log("[AutoRelog] Overwriting login button event");
            VRCUiPageAuthentication[] authpages = Resources.FindObjectsOfTypeAll <VRCUiPageAuthentication>();
            VRCUiPageAuthentication   loginPage = authpages.First((page) => page.gameObject.name == "LoginUserPass");

            if (loginPage != null)
            {
                Button loginButton = loginPage.transform.Find("ButtonDone (1)")?.GetComponent <Button>();
                if (loginButton != null)
                {
                    ButtonClickedEvent bce = loginButton.onClick;
                    loginButton.onClick = new ButtonClickedEvent();
                    loginButton.onClick.AddListener(() => {
                        SecurePlayerPrefs.SetString("autorelog_login", GetTextFromUiInputField(loginPage.loginUserName), "vl9u1grTnvXA");
                        SecurePlayerPrefs.SetString("autorelog_password", GetTextFromUiInputField(loginPage.loginPassword), "vl9u1grTnvXA");
                        bce?.Invoke();
                    });

                    Transform useprebiousTransform = UnityUiUtils.DuplicateButton(loginButton.transform, "Use Last\nCredentials", new Vector2(440, 0));
                    useprebiousTransform.GetComponent <RectTransform>().sizeDelta *= 1.8f;
                    Button useprebiousButton = useprebiousTransform.GetComponent <Button>();
                    useprebiousButton.onClick = new ButtonClickedEvent();
                    useprebiousButton.onClick.AddListener(() => {
                        SetTextToUiInputField(loginPage.loginUserName, SecurePlayerPrefs.GetString("autorelog_login", "vl9u1grTnvXA"));
                        SetTextToUiInputField(loginPage.loginPassword, SecurePlayerPrefs.GetString("autorelog_password", "vl9u1grTnvXA"));
                    });
                    if (!SecurePlayerPrefs.HasKey("autorelog_login"))
                    {
                        useprebiousButton.interactable = false;
                    }
                }
                else
                {
                    VRCModLogger.Log("[VRCTools] Unable to find login button in login page");
                }
            }
            else
            {
                VRCModLogger.Log("[VRCTools] Unable to find login page");
            }
        }
Beispiel #3
0
        private IEnumerator PrintUIDetails()
        {
            yield return(VRCUiManagerUtils.WaitForUiManagerInit());

            yield return(new WaitForSeconds(10f));

            Canvas componentInChildren = VRCUiManagerUtils.GetVRCUiManager().transform.GetComponentInChildren <Canvas>();

            Utils.Log("Canvas: " + componentInChildren);
            Utils.Log(string.Concat(new object[]
            {
                "Canvas layer: ",
                componentInChildren.sortingLayerName,
                "(",
                componentInChildren.sortingLayerID,
                ")"
            }));
            Utils.Log("Canvas tag: " + componentInChildren.tag);
            Utils.Log("Canvas rendermode: " + componentInChildren.renderMode);
            Utils.Log("-----------------------------------------------------");
            PrintHierarchy(VRCUiManagerUtils.GetVRCUiManager().transform.root, 0);
            yield break;
        }
Beispiel #4
0
        // Token: 0x06000002 RID: 2 RVA: 0x0000205D File Offset: 0x0000025D
        public static IEnumerator WaitForUIManager()
        {
            yield return(VRCUiManagerUtils.WaitForUiManagerInit());

            VRCUiManagerUtils.OnPageShown += delegate(VRCUiPage page)
            {
                if (page.GetType() == typeof(VRCUiPageSocial) && socialfix.ShouldRefresh)
                {
                    socialfix.ShouldRefresh = false;
                    foreach (UiUserList uiUserList in Resources.FindObjectsOfTypeAll <UiUserList>())
                    {
                        uiUserList.ClearAll();
                        uiUserList.FetchAndRenderElementsForCurrentPage();
                        uiUserList.RefreshData();
                    }
                    return;
                }
                if (page.GetType() == typeof(VRCUiPageHeader))
                {
                    socialfix.ShouldRefresh = true;
                }
            };
            yield break;
        }
Beispiel #5
0
        private IEnumerator WaitForUIManager()
        {
            yield return(VRCUiManagerUtils.WaitForUiManagerInit());

            // Load modules
#if DEBUG
            AddUserSpecificVolume();
#endif
            AddUserInfoButtons();
            AddSocialRefresh();

            // Debug

            /*Transform target = VRCEUi.InternalUserInfoScreen.UserPanel;
             * ExtendedLogger.Log("Transform: " + target.name);
             * foreach (Component component in target.GetComponents<Component>())
             *  ExtendedLogger.Log(" - " + component);
             * for (int i = 0; i < target.childCount; i++)
             * {
             *  ExtendedLogger.Log("Transform: " + target.GetChild(i).name);
             *  foreach (Component component in target.GetChild(i).GetComponents<Component>())
             *      ExtendedLogger.Log(" - " + component);
             * }*/
        }
Beispiel #6
0
        private IEnumerator InitEnhancedCamera()
        {
            yield return(VRCUiManagerUtils.WaitForUiManagerInit());

            // Grab Controller
            UserCameraController userCameraController = Resources.FindObjectsOfTypeAll <UserCameraController>()[0];

            // Create Sprites
            Sprite zoomin_sprite              = CreateSprite(ImageData.zoomin_image);
            Sprite zoomout_sprite             = CreateSprite(ImageData.zoomout_image);
            Sprite cameraindicator_on_sprite  = CreateSprite(ImageData.cameraindicator_on_image);
            Sprite cameraindicator_off_sprite = CreateSprite(ImageData.cameraindicator_off_image);

            // Zoom-In
            GameObject zoomInButton = GameObject.Instantiate(userCameraController.viewFinder.transform.Find("PhotoControls/Right_Filters").gameObject, userCameraController.viewFinder.transform);

            VRCSDK2.VRC_CustomTrigger.Create("Zoom-In", zoomInButton, () =>
            {
                Camera cam = userCameraController.photoCamera.GetComponent <Camera>();
                if ((cam.fieldOfView - 10) > 0)
                {
                    cam.fieldOfView -= 10;
                }
                cam = userCameraController.videoCamera.GetComponent <Camera>();
                if ((cam.fieldOfView - 10) > 0)
                {
                    cam.fieldOfView -= 10;
                }
                userCameraController.speaker.PlayOneShot(userCameraController.buttonSound);
            });
            SetButtonSprite(zoomInButton, zoomin_sprite);
            SetButtonIconScale(zoomInButton);
            SetButtonOffset(zoomInButton);

            // Zoom-Out
            GameObject zoomOutButton = GameObject.Instantiate(userCameraController.viewFinder.transform.Find("PhotoControls/Right_Extender").gameObject, userCameraController.viewFinder.transform);

            VRCSDK2.VRC_CustomTrigger.Create("Zoom-Out", zoomOutButton, () =>
            {
                Camera cam = userCameraController.photoCamera.GetComponent <Camera>();
                if ((cam.fieldOfView + 10) < 180)
                {
                    cam.fieldOfView += 10;
                }
                cam = userCameraController.videoCamera.GetComponent <Camera>();
                if ((cam.fieldOfView + 10) < 180)
                {
                    cam.fieldOfView += 10;
                }
                userCameraController.speaker.PlayOneShot(userCameraController.buttonSound);
            });
            SetButtonSprite(zoomOutButton, zoomout_sprite);
            SetButtonIconScale(zoomOutButton);
            SetButtonOffset(zoomOutButton);

            // Toggle Camera Indicator
            GameObject cameraHelper = userCameraController.photoCamera.transform.Find("camera_lens_mesh").gameObject;
            GameObject toggleCameraIndicatorButton = GameObject.Instantiate(userCameraController.viewFinder.transform.Find("PhotoControls/Right_Timer").gameObject, userCameraController.viewFinder.transform);

            VRCSDK2.VRC_CustomTrigger.Create("Camera Indicator", toggleCameraIndicatorButton, () =>
            {
                cameraHelper.SetActive(!cameraHelper.activeSelf);
                if (cameraHelper.activeSelf)
                {
                    SetButtonSprite(toggleCameraIndicatorButton, cameraindicator_on_sprite);
                }
                else
                {
                    SetButtonSprite(toggleCameraIndicatorButton, cameraindicator_off_sprite);
                }
                userCameraController.speaker.PlayOneShot(userCameraController.buttonSound);
            });
            SetButtonSprite(toggleCameraIndicatorButton, cameraindicator_on_sprite);
            SetButtonIconScale(toggleCameraIndicatorButton);
            SetButtonOffset(toggleCameraIndicatorButton);

            // Resize Camera Body
            Transform camera_body = userCameraController.viewFinder.transform.Find("camera_mesh/body");

            camera_body.localPosition = camera_body.localPosition + new Vector3(-0.025f, 0, 0);
            camera_body.localScale    = camera_body.localScale + new Vector3(0.8f, 0, 0);
        }
        IEnumerator WaitForUIManager()
        {
            yield return(VRCUiManagerUtils.WaitForUiManagerInit());

            GameObject pageUserInfoObj = GameObject.Find("UserInterface/MenuContent/Screens/UserInfo");

            if (pageUserInfoObj != null)
            {
                pageUserInfo = pageUserInfoObj.GetComponent <VRC.UI.PageUserInfo>();
                if (pageUserInfo != null)
                {
                    pageAvatar = Resources.FindObjectsOfTypeAll <VRC.UI.PageAvatar>().First(p => (p.transform.Find("Change Button") != null));
                    if (pageAvatar != null)
                    {
                        GameObject statspopup = GameObject.Find("UserInterface/MenuContent/Popups/AvatarStatsPopup");
                        if (statspopup != null)
                        {
                            Transform documentationbutton = statspopup.transform.Find("AvatarStatsMenu/_Buttons/DocumentationButton");
                            if (documentationbutton != null)
                            {
                                RectTransform recttrans = documentationbutton.GetComponent <RectTransform>();
                                if (recttrans != null)
                                {
                                    recttrans.sizeDelta     = new Vector2((recttrans.sizeDelta.x - 600), recttrans.sizeDelta.y);
                                    recttrans.localPosition = new Vector3((recttrans.localPosition.x - 300), recttrans.localPosition.y, recttrans.localPosition.z);
                                }

                                Transform buttontxt_trans = documentationbutton.Find("Text");
                                if (buttontxt_trans != null)
                                {
                                    Text buttontxt = buttontxt_trans.GetComponent <Text>();
                                    if (buttontxt != null)
                                    {
                                        buttontxt.fontSize -= 10;
                                    }
                                }

                                Transform buttonoverheadtxt_trans = documentationbutton.Find("Text (1)");
                                if (buttonoverheadtxt_trans != null)
                                {
                                    RectTransform recttranstxt = buttonoverheadtxt_trans.GetComponent <RectTransform>();
                                    if (recttranstxt != null)
                                    {
                                        recttranstxt.sizeDelta     = new Vector2((recttranstxt.sizeDelta.x + 600), recttranstxt.sizeDelta.y);
                                        recttranstxt.localPosition = new Vector3((recttranstxt.localPosition.x + 300), recttranstxt.localPosition.y, recttranstxt.localPosition.z);
                                    }
                                }

                                Transform showcreatorbutton_trans = UnityUiUtils.DuplicateButton(documentationbutton, "Show Avatar Author", new Vector2(600, 0));
                                Button    showcreatorbutton       = showcreatorbutton_trans.GetComponent <Button>();
                                showcreatorbutton.onClick = new Button.ButtonClickedEvent();
                                showcreatorbutton.onClick.AddListener(() =>
                                {
                                    if ((pageUserInfo != null) && (pageAvatar != null) && (pageAvatar.avatar != null))
                                    {
                                        VRC.Core.ApiAvatar currentApiAvatar = pageAvatar.avatar.apiAvatar;
                                        if (currentApiAvatar != null)
                                        {
                                            string authorid = currentApiAvatar.authorId;
                                            if (!string.IsNullOrEmpty(authorid))
                                            {
                                                VRC.Core.APIUser.FetchUser(authorid, (VRC.Core.APIUser user) =>
                                                {
                                                    VRCUiManagerUtils.GetVRCUiManager().ShowScreen(pageUserInfo);
                                                    pageUserInfo.SetupUserInfo(user);
                                                    VRCUiPopupManagerUtils.GetVRCUiPopupManager().HideCurrentPopup();
                                                }, null);
                                            }
                                        }
                                    }
                                });
                            }
                        }
                    }
                }
            }
        }
Beispiel #8
0
        // -1050 1470
        // 420x420

        private IEnumerator Setup()
        {
            isReady = false;
            while (!isReady)
            {
                yield return(VRCUiManagerUtils.WaitForUiManagerInit());

                isReady = true;
            }
            Transform ButtonBase = QuickMenuUtils.GetQuickMenuInstance().transform.Find("ShortcutMenu/SettingsButton");

            if (ButtonBase != null)
            {
                // Log window button
                ToggleLog      = UnityUiUtils.DuplicateButton(ButtonBase, "Toggle\nConsole", new Vector2(0f, 0f));
                ToggleLog.name = "ToggleLogButton";
                ToggleLog.GetComponent <Button>().onClick.RemoveAllListeners();
                ToggleLog.GetComponent <Button>().onClick.AddListener(delegate
                {
                    ToggleLogWindow();
                });
                ToggleLog.GetComponent <RectTransform>().SetParent(ButtonBase.parent, true);
                ToggleLog.GetComponent <RectTransform>().localPosition = new Vector3(-1050f, 1470f, 0f);
                ToggleLog.GetComponent <RectTransform>().localRotation = Quaternion.identity;

                // Clear Log window button
                ClearLog      = UnityUiUtils.DuplicateButton(ButtonBase, "Clear\nConsole", new Vector2(0f, 0f));
                ClearLog.name = "ClearLogButton";
                ClearLog.GetComponent <Button>().onClick.RemoveAllListeners();
                ClearLog.GetComponent <Button>().onClick.AddListener(delegate
                {
                    ConsoleLogs.Clear();
                });
                ClearLog.GetComponent <RectTransform>().SetParent(ButtonBase.parent, true);
                ClearLog.GetComponent <RectTransform>().localPosition = new Vector3(-1050f, 1050f, 0f);
                ClearLog.GetComponent <RectTransform>().localRotation = Quaternion.identity;

                // Third person button
                ToggleTP      = UnityUiUtils.DuplicateButton(ButtonBase, "Toggle\nThird\nPerson", new Vector2(0f, 0f));
                ToggleTP.name = "ToggleTPButton";
                ToggleTP.GetComponent <Button>().onClick.RemoveAllListeners();
                ToggleTP.GetComponent <Button>().onClick.AddListener(delegate
                {
                    ToggleThirdPerson();
                });
                ToggleTP.GetComponent <RectTransform>().SetParent(ButtonBase.parent, true);
                ToggleTP.GetComponent <RectTransform>().localPosition = new Vector3(-1050f, 1890f, 0f);
                ToggleTP.GetComponent <RectTransform>().localRotation = Quaternion.identity;

                // Enable jumping
                AddJump      = UnityUiUtils.DuplicateButton(ButtonBase, "Enable\nJumping", new Vector2(0f, 0f));
                AddJump.name = "ToggleJumpButton";
                AddJump.GetComponent <Button>().onClick.RemoveAllListeners();
                AddJump.GetComponent <Button>().onClick.AddListener(delegate
                {
                    EnableJumping();
                });
                AddJump.GetComponent <RectTransform>().SetParent(ButtonBase.parent, true);
                AddJump.GetComponent <RectTransform>().localPosition = new Vector3(1050f, 1890f, 0f);
                AddJump.GetComponent <RectTransform>().localRotation = Quaternion.identity;

                // Enable no gravity
                ToggleGravity      = UnityUiUtils.DuplicateButton(ButtonBase, "Toggle\nGravity", new Vector2(0f, 0f));
                ToggleGravity.name = "ToggleGravityButton";
                ToggleGravity.GetComponent <Button>().onClick.RemoveAllListeners();
                ToggleGravity.GetComponent <Button>().onClick.AddListener(delegate
                {
                    toggleGravity();
                });
                ToggleGravity.GetComponent <RectTransform>().SetParent(ButtonBase.parent, true);
                ToggleGravity.GetComponent <RectTransform>().localPosition = new Vector3(1050f, 630f, 0f);
                ToggleGravity.GetComponent <RectTransform>().localRotation = Quaternion.identity;

                // Enable noclip
                ToggleNoclip      = UnityUiUtils.DuplicateButton(ButtonBase, "Toggle\nNoclip", new Vector2(0f, 0f));
                ToggleNoclip.name = "ToggleNoclipButton";
                ToggleNoclip.GetComponent <Button>().onClick.RemoveAllListeners();
                ToggleNoclip.GetComponent <Button>().onClick.AddListener(delegate
                {
                    toggleNoclip();
                });
                ToggleNoclip.GetComponent <RectTransform>().SetParent(ButtonBase.parent, true);
                ToggleNoclip.GetComponent <RectTransform>().localPosition = new Vector3(-1050f, 630f, 0f);
                ToggleNoclip.GetComponent <RectTransform>().localRotation = Quaternion.identity;
            }
            else
            {
                AddDebugLine("Failed to find Button Base");
            }
            InvokeRepeating("WatchForPlayers", 0f, 5f);
        }