Example #1
0
        public static void PrepareIncrementSetting(IncrementSetting p_Setting, BSMLAction p_Action, BSMLAction p_Formatter, float p_Value, bool p_RemoveLabel)
        {
            p_Setting.gameObject.SetActive(false);

            if (p_Formatter != null)
            {
                p_Setting.formatter = p_Formatter;
            }

            p_Setting.Value = p_Value;

            if (p_Action != null)
            {
                p_Setting.onChange = p_Action;
            }

            if (p_RemoveLabel)
            {
                GameObject.Destroy(p_Setting.gameObject.GetComponentsInChildren <TextMeshProUGUI>().ElementAt(0).transform.gameObject);

                RectTransform l_RectTransform = p_Setting.gameObject.transform.GetChild(1) as RectTransform;
                l_RectTransform.anchorMin = Vector2.zero;
                l_RectTransform.anchorMax = Vector2.one;
                l_RectTransform.sizeDelta = Vector2.one;

                p_Setting.gameObject.GetComponent <LayoutElement>().preferredWidth = -1f;
            }

            p_Setting.gameObject.SetActive(true);
        }
Example #2
0
        public override void HandleType(ComponentTypeWithData componentType, BSMLParserParams parserParams)
        {
            IncrementSetting incrementSetting = componentType.component as IncrementSetting;

            if (componentType.data.TryGetValue("isInt", out string isInt))
            {
                incrementSetting.isInt = Parse.Bool(isInt);
            }

            if (componentType.data.TryGetValue("increment", out string increment))
            {
                incrementSetting.increments = Parse.Float(increment);
            }

            if (componentType.data.TryGetValue("minValue", out string minValue))
            {
                incrementSetting.minValue = Parse.Float(minValue);
            }

            if (componentType.data.TryGetValue("maxValue", out string maxValue))
            {
                incrementSetting.maxValue = Parse.Float(maxValue);
            }
        }
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Set if the effect is enabled
        /// </summary>
        /// <param name="p_Enabled">New state</param>
        internal static void SetReorderEnabled(bool p_Enabled, bool p_AddOverrideLightsIntensityOption)
        {
            if (m_StaticLightsToggle == null || m_NoteJumpStartBeatOffsetDropdown == null || m_SfxVolumeSettingsController == null)
            {
                return;
            }

            m_StaticLightsToggle.transform.parent.parent.GetComponent <VerticalLayoutGroup>().enabled = true;

            if (p_AddOverrideLightsIntensityOption && (m_OverrideLightsIntensityToggle == null || !m_OverrideLightsIntensityToggle))
            {
                var l_Creator = new BeatSaberMarkupLanguage.Tags.Settings.IncrementSettingTag();
                var l_Clone   = l_Creator.CreateObject(m_StaticLightsToggle.transform.parent.parent);
                l_Clone.GetComponentInChildren <TextMeshProUGUI>().text = "Override lights intensity";
                (l_Clone.transform as RectTransform).offsetMax          = new Vector2(90, (l_Clone.transform as RectTransform).offsetMax.y);

                if (m_StaticLightsToggle.transform.parent.Find("Icon"))
                {
                    var l_Icon = GameObject.Instantiate(m_StaticLightsToggle.transform.parent.Find("Icon"), l_Clone.transform);
                    l_Icon.transform.SetAsFirstSibling();
                }

                var l_LabelTemplateRectTransform = m_StaticLightsToggle.transform.parent.GetChild(1).transform as RectTransform;
                (l_Clone.transform.GetChild(1).transform as RectTransform).offsetMin = l_LabelTemplateRectTransform.offsetMin;
                (l_Clone.transform.GetChild(1).transform as RectTransform).offsetMax = l_LabelTemplateRectTransform.offsetMax;

                (l_Clone.transform.GetChild(2).transform as RectTransform).offsetMin = new Vector2(-36f, 0f);
                (l_Clone.transform.GetChild(2).transform as RectTransform).offsetMax = Vector2.zero;

                m_OverrideLightsIntensityToggle            = l_Clone.GetComponent <IncrementSetting>();
                m_OverrideLightsIntensityToggle.minValue   = 0;
                m_OverrideLightsIntensityToggle.maxValue   = 2;
                m_OverrideLightsIntensityToggle.increments = 0.1f;

                var l_Event = new BeatSaberMarkupLanguage.Parser.BSMLAction(null, typeof(PPlayerSettingsPanelController).GetMethod(nameof(OnOverrideLightIntensityChange), System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic));
                Utils.GameUI.PrepareIncrementSetting(m_OverrideLightsIntensityToggle, l_Event, Utils.GameUI.Formatter_Percentage, Config.GameTweaker.OverrideLightIntensity, false);
            }
            else if (!p_AddOverrideLightsIntensityOption && m_OverrideLightsIntensityToggle != null && m_OverrideLightsIntensityToggle)
            {
                GameObject.DestroyImmediate(m_OverrideLightsIntensityToggle.gameObject);
                m_OverrideLightsIntensityToggle = null;
            }

            if (p_Enabled)
            {
                m_PlayerHeightSettingsController.transform.SetAsFirstSibling();
                m_AutomaticPlayerHeightToggle.transform.parent.SetAsFirstSibling();
                m_SfxVolumeSettingsController.transform.parent.SetAsFirstSibling();
                m_NoTextsAndHudsToggle.transform.parent.SetAsFirstSibling();
                m_AdvanceHudToggle.transform.parent.SetAsFirstSibling();
                if (m_OverrideLightsIntensityToggle != null && m_OverrideLightsIntensityToggle)
                {
                    m_OverrideLightsIntensityToggle.transform.SetAsFirstSibling();
                }
                m_StaticLightsToggle.transform.parent.SetAsFirstSibling();
                m_NoteJumpStartBeatOffsetDropdown.transform.parent.SetAsFirstSibling();
            }
            else
            {
                m_NoteJumpStartBeatOffsetDropdown.transform.parent.SetAsFirstSibling();
                m_HideNoteSpawnEffectToggle.transform.parent.SetAsFirstSibling();
                m_AdaptiveSfxToggle.transform.parent.SetAsFirstSibling();
                m_ReduceDebrisToggle.transform.parent.SetAsFirstSibling();
                m_AdvanceHudToggle.transform.parent.SetAsFirstSibling();
                m_NoTextsAndHudsToggle.transform.parent.SetAsFirstSibling();
                m_SaberTrailIntensitySettingsController.transform.parent.SetAsFirstSibling();
                if (m_OverrideLightsIntensityToggle != null && m_OverrideLightsIntensityToggle)
                {
                    m_OverrideLightsIntensityToggle.transform.SetAsFirstSibling();
                }
                m_StaticLightsToggle.transform.parent.SetAsFirstSibling();
                m_LeftHandedToggle.transform.parent.SetAsFirstSibling();
                m_SfxVolumeSettingsController.transform.parent.SetAsFirstSibling();
                m_PlayerHeightSettingsController.transform.SetAsFirstSibling();
                m_AutomaticPlayerHeightToggle.transform.parent.SetAsFirstSibling();
            }
        }