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