Esempio n. 1
0
        protected virtual bool LockOn()
        {
            if (currentCharaInfo)
            {
                if (reduceOffset == true)
                {
                    CameraTargetPos += targetOffsetSize;
                    targetOffsetSize = new Vector3();
                }
                else if (targetOffsetSize.magnitude > 0f)
                {
                    reduceOffset = true;
                    return(true);
                }

                List <string> targetList = currentCharaInfo is CharFemale?FileManager.GetQuickFemaleTargetNames() : FileManager.GetQuickMaleTargetNames();

                if (!lockOnTarget)
                {
                    return(LockOn(targetList[0]));
                }
                else
                {
                    for (int i = 0; i < targetList.Count; i++)
                    {
                        if (lockOnTarget.name == targetList[i])
                        {
                            int next = i + 1 > targetList.Count - 1 ? 0 : i + 1;
                            return(LockOn(targetList[next]));
                        }
                    }

                    return(LockOn(targetList[0]));
                }
            }

            return(false);
        }
Esempio n. 2
0
        private IEnumerator InstallSettingsReloadButton()
        {
            Transform systemMenuContent = studio.transform.Find("Canvas Main Menu/04_System/Viewport/Content");

            if (systemMenuContent && !GameObject.Find("LockOnPluginReload"))
            {
                // wait for HSStudioNEOAddon specifically
                yield return(new WaitForSeconds(0.1f));

                List <Transform>  buttonlist   = new List <Transform>();
                List <GameObject> menuContents = new List <GameObject>();
                systemMenuContent.FindLoopAll(menuContents);
                foreach (GameObject item in menuContents)
                {
                    if (item.GetComponent <Button>())
                    {
                        buttonlist.Add(item.transform);
                    }
                }
                Transform parentButton = buttonlist[buttonlist.Count - 1];

                GameObject newButton = Instantiate(parentButton.gameObject);
                newButton.name = "LockOnPluginReload";
                newButton.transform.SetParent(parentButton.parent);
                newButton.transform.Find("Text").gameObject.GetComponent <Text>().text = "LockOnPlugin rld";
                newButton.transform.localPosition = parentButton.localPosition - new Vector3(0f, 30f, 0f);
                newButton.transform.localScale    = Vector3.one;

                Button buttonComponent = newButton.GetComponent <Button>();
                buttonComponent.onClick = new Button.ButtonClickedEvent();
                buttonComponent.onClick.AddListener(() =>
                {
                    LoadSettings();
                    targetManager.UpdateAllTargets(null);
                    targetManager.UpdateAllTargets(currentCharaInfo);
                    LockOn((currentCharaInfo is CharFemale ? FileManager.GetQuickFemaleTargetNames() : FileManager.GetQuickMaleTargetNames())[0]);
                    reduceOffset = true;
                });

                Console.WriteLine("LockOnPlugin reload button installed");
            }

            yield break;
        }