Exemplo n.º 1
0
        //public bool validateOnSubmit;

        protected override void Awake()
        {
            _previewLanguage       = transform.Find("Text Preview").GetComponentInChildren <LanguageTextMeshController>();
            _previewLanguage.token = $"{settingToken}.VALUE";

            _previewLabel = _previewLanguage.GetComponentInChildren <HGTextMeshProUGUI>();

            nameLabel       = GetComponent <LanguageTextMeshController>();
            nameLabel.token = nameToken;

            base.Awake();

            if (!inputField)
            {
                return;
            }

            var button = transform.Find("Text Preview").GetComponentInChildren <HGButton>();

            button.onClick.RemoveAllListeners();
            button.onClick.AddListener(AttemptShow);
            button.disablePointerClick = false;

            inputField.onSubmit.AddListener(GetInput);
            inputField.onValueChanged.AddListener(OnValueChanged);

            inputField.text = GetCurrentValue();
            _previewLanguage.InvokeMethod("Start");
        }
Exemplo n.º 2
0
        internal static void SetupVRSettings(GameObject panel)
        {
            HGHeaderNavigationController controller = panel.GetComponent <HGHeaderNavigationController>();

            if (!controller)
            {
                return;
            }

            Transform header       = panel.transform.Find("SafeArea/HeaderContainer/Header (JUICED)");
            Transform subPanelArea = panel.transform.Find("SafeArea/SubPanelArea");

            if (!header || !subPanelArea)
            {
                return;
            }

            GameObject subPanelInstance = SetupSubPanel(subPanelArea);

            GameObject headerInstance = SetupHeader(header);

            LanguageTextMeshController text = headerInstance.GetComponent <LanguageTextMeshController>();

            text.token = "VR";

            HGHeaderNavigationController.Header headerInfo = new HGHeaderNavigationController.Header();
            headerInfo.headerButton  = headerInstance.GetComponent <HGButton>();
            headerInfo.headerName    = "VR";
            headerInfo.tmpHeaderText = headerInstance.GetComponentInChildren <HGTextMeshProUGUI>();
            headerInfo.headerRoot    = subPanelInstance;

            List <HGHeaderNavigationController.Header> headerList = controller.headers.ToList();

            headerList.Add(headerInfo);

            controller.headers = headerList.ToArray();
        }
Exemplo n.º 3
0
        public static void SetFontSize(LanguageTextMeshController languageTextMeshController, int fontSize)
        {
            Text            text            = (Text)typeof(LanguageTextMeshController).GetField("text", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(languageTextMeshController);
            TextMesh        textMesh        = (TextMesh)typeof(LanguageTextMeshController).GetField("textMesh", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(languageTextMeshController);
            TextMeshPro     textMeshPro     = (TextMeshPro)typeof(LanguageTextMeshController).GetField("textMeshPro", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(languageTextMeshController);
            TextMeshProUGUI textMeshProUGui = (TextMeshProUGUI)typeof(LanguageTextMeshController).GetField("textMeshProUGui", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(languageTextMeshController);

            if (text)
            {
                text.fontSize = fontSize;
            }
            if (textMesh)
            {
                textMesh.fontSize = fontSize;
            }
            if (textMeshPro)
            {
                textMeshPro.fontSize = fontSize;
            }
            if (textMeshProUGui)
            {
                textMeshProUGui.fontSize = fontSize;
            }
        }
Exemplo n.º 4
0
        private void CreateModListButton()
        {
            ModListButton = Object.Instantiate(_verticalLayout !.transform.Find("SettingsEntryButton, Bool (Audio Focus)").gameObject);

            Object.DestroyImmediate(ModListButton.GetComponentInChildren <CarouselController>());
            Object.DestroyImmediate(ModListButton.GetComponentInChildren <ButtonSkinController>());
            Object.DestroyImmediate(ModListButton.transform.Find("CarouselRect").gameObject);


            HGButton   oldButton            = ModListButton.GetComponent <HGButton>();
            bool       allowAllEventSystems = oldButton.allowAllEventSystems;
            bool       submitOnPointerUp    = oldButton.submitOnPointerUp;
            UILayerKey requiredTopLayer     = oldButton.requiredTopLayer;

            UnityEngine.Events.UnityEvent onFindSelectableLeft  = oldButton.onFindSelectableLeft;
            UnityEngine.Events.UnityEvent onFindSelectableRight = oldButton.onFindSelectableRight;
            UnityEngine.Events.UnityEvent onSelect   = oldButton.onSelect;
            UnityEngine.Events.UnityEvent onDeselect = oldButton.onDeselect;
            bool defaultFallbackButton = oldButton.defaultFallbackButton;

            Button.ButtonClickedEvent buttonClickedEvent = oldButton.onClick;
            ColorBlock colors              = oldButton.colors;
            bool       showImageOnHover    = oldButton.showImageOnHover;
            Image      imageOnHover        = oldButton.imageOnHover;
            Image      imageOnInteractable = oldButton.imageOnInteractable;
            bool       updateTextOnHover   = oldButton.updateTextOnHover;
            LanguageTextMeshController hoverLanguageTextMeshController = oldButton.hoverLanguageTextMeshController;
            string hoverToken           = oldButton.hoverToken;
            string uiClickSoundOverride = oldButton.uiClickSoundOverride;

            Object.DestroyImmediate(oldButton);

            colors.disabledColor = ModOptionsHeaderButton.GetComponent <HGButton>().colors.disabledColor;

            ModListButton newButton = ModListButton.AddComponent <ModListButton>();

            newButton.allowAllEventSystems  = allowAllEventSystems;
            newButton.submitOnPointerUp     = submitOnPointerUp;
            newButton.requiredTopLayer      = requiredTopLayer;
            newButton.onFindSelectableLeft  = onFindSelectableLeft;
            newButton.onFindSelectableRight = onFindSelectableRight;
            newButton.onSelect              = onSelect;
            newButton.onDeselect            = onDeselect;
            newButton.defaultFallbackButton = defaultFallbackButton;
            newButton.onClick                         = buttonClickedEvent;
            newButton.colors                          = colors;
            newButton.showImageOnHover                = showImageOnHover;
            newButton.imageOnHover                    = imageOnHover;
            newButton.imageOnInteractable             = imageOnInteractable;
            newButton.updateTextOnHover               = updateTextOnHover;
            newButton.hoverLanguageTextMeshController = hoverLanguageTextMeshController;
            newButton.hoverToken                      = hoverToken;
            newButton.uiClickSoundOverride            = uiClickSoundOverride;
            newButton.interactable                    = true;
            newButton.enabled                         = true;
            newButton.disablePointerClick             = false;
            newButton.onClick.RemoveAllListeners();

            RectTransform buttonTextRectTransform = ModListButton.transform.Find("ButtonText").GetComponent <RectTransform>();

            buttonTextRectTransform.anchorMin = new Vector2(0.19f, 0);
            buttonTextRectTransform.anchorMax = new Vector2(1, 1);

            GameObject modIconGameObject = new GameObject("ModIcon");

            RectTransform modIconRectTransform = modIconGameObject.AddComponent <RectTransform>();

            modIconGameObject.AddComponent <CanvasRenderer>();
            modIconGameObject.AddComponent <Image>().preserveAspect = true;
            modIconRectTransform.anchorMin = new Vector2(0.04f, 0.13f);
            modIconRectTransform.anchorMax = new Vector2(0.19f, 0.86f);
            modIconRectTransform.pivot     = new Vector2(0.5f, 0.5f);
            modIconGameObject.transform.SetParent(ModListButton.transform);


            GameObject    iconOutline = Object.Instantiate(ModListButton.transform.Find("BaseOutline").gameObject, modIconRectTransform);
            RectTransform iconOutlineRectTransform = iconOutline.GetComponent <RectTransform>();

            iconOutlineRectTransform.sizeDelta        = Vector2.zero;
            iconOutlineRectTransform.anchoredPosition = Vector2.zero;
            iconOutlineRectTransform.localScale       = new Vector3(0.94f, 1.16f, 1);

            ModListButton.SetActive(false);
        }
Exemplo n.º 5
0
        private static GameObject SetupSubPanel(Transform parent)
        {
            GameObject subPanelToInstantiate = parent.Find("SettingsSubPanel, Controls (Gamepad)").gameObject;

            GameObject subPanelInstance = GameObject.Instantiate(subPanelToInstantiate, parent);

            Transform instanceLayout = subPanelInstance.transform.Find("Scroll View/Viewport/VerticalLayout");

            foreach (Transform child in instanceLayout)
            {
                GameObject.Destroy(child.gameObject);
            }

            GameObject sliderSetting   = subPanelToInstantiate.transform.Find("Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Slider (Look Scale X)").gameObject;
            GameObject boolSetting     = subPanelToInstantiate.transform.Find("Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Bool (Invert X)").gameObject;
            GameObject carouselSetting = parent.transform.Find("SettingsSubPanel, Video/Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Carousel (Vsync)").gameObject;

            LanguageTextMeshController descriptionText = parent.transform.Find("GenericDescriptionPanel/ContentSizeFitter/DescriptionText").GetComponent <LanguageTextMeshController>();

            bool first = true;

            foreach (KeyValuePair <string, ModConfig.ConfigSetting> keyValuePair in ModConfig.settings)
            {
                ModConfig.ConfigSetting setting = keyValuePair.Value;

                BaseSettingsControl settingInstance;
                if (setting.entry.SettingType == typeof(float) || setting.entry.SettingType == typeof(int))
                {
                    settingInstance = GameObject.Instantiate(sliderSetting, instanceLayout).GetComponent <BaseSettingsControl>();

                    SettingsSlider slider = settingInstance as SettingsSlider;
                    slider.minValue     = setting.minValue;
                    slider.maxValue     = setting.maxValue;
                    slider.formatString = setting.entry.SettingType == typeof(float) ? "{0:0.00}" : "{0:N0}";
                }
                else if (setting.entry.SettingType == typeof(bool))
                {
                    settingInstance = GameObject.Instantiate(boolSetting, instanceLayout).GetComponent <BaseSettingsControl>();
                }
                else
                {
                    settingInstance = GameObject.Instantiate(carouselSetting, instanceLayout).GetComponent <BaseSettingsControl>();

                    CarouselController carousel = settingInstance as CarouselController;
                    List <CarouselController.Choice> choices = new List <CarouselController.Choice>();
                    if (keyValuePair.Key == "vr_ray_color")
                    {
                        string[] choiceStrings = new string[]
                        {
                            "White",
                            "Green",
                            "Red",
                            "Blue",
                            "Yellow",
                            "Magenta",
                            "Cyan",
                            "Lime",
                            "Black"
                        };

                        string[] hexStrings = new string[]
                        {
                            "#FFFFFF",
                            "#008000",
                            "#FF0000",
                            "#0000FF",
                            "#FFFF00",
                            "#FF00FF",
                            "#00FFFF",
                            "#00FF00",
                            "#000000"
                        };

                        for (int i = 0; i < choiceStrings.Length; i++)
                        {
                            CarouselController.Choice choice = new CarouselController.Choice();
                            choice.convarValue           = hexStrings[i];
                            choice.suboptionDisplayToken = choiceStrings[i];
                            choices.Add(choice);
                        }
                    }

                    carousel.choices = choices.ToArray();
                }

                settingInstance.settingSource   = BaseSettingsControl.SettingSource.ConVar;
                settingInstance.nameToken       = setting.entry.Definition.Key;
                settingInstance.settingName     = keyValuePair.Key;
                settingInstance.gameObject.name = "VRModSetting, " + settingInstance.nameToken;

                HGButton button = settingInstance.GetComponent <HGButton>();
                if (button)
                {
                    string prefixString = "";

                    if (setting.settingUpdate == ModConfig.ConfigSetting.SettingUpdate.NextStage)
                    {
                        prefixString = "[WILL APPLY NEXT STAGE] ";
                    }
                    else if (setting.settingUpdate == ModConfig.ConfigSetting.SettingUpdate.AfterRestart)
                    {
                        prefixString = "[RESTART REQUIRED] ";
                    }

                    button.updateTextOnHover = true;
                    button.hoverToken        = prefixString + setting.entry.Description.Description;
                    button.hoverLanguageTextMeshController = descriptionText;

                    button.defaultFallbackButton = first;
                    first = false;
                }
            }

            GameObject controllerBindingSetting = subPanelToInstantiate.transform.Find("Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Binding (Jump)").gameObject;
            GameObject keyboardBindingSetting   = parent.Find("SettingsSubPanel, Controls (M&KB)/Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Binding (Jump)").gameObject;

            ActionAddons.ActionDef[] actionDefs = ActionAddons.actionDefs;
            foreach (var actionDef in actionDefs)
            {
                if (actionDef.keyboardMap != KeyboardKeyCode.None)
                {
                    AddBindingSetting(actionDef, keyboardBindingSetting, instanceLayout);
                }
                if (actionDef.joystickMap != ActionAddons.ControllerInput.None)
                {
                    AddBindingSetting(actionDef, controllerBindingSetting, instanceLayout);
                }
            }

            subPanelInstance.transform.Find("Scroll View").gameObject.AddComponent <ScrollToSelection>();

            return(subPanelInstance);
        }