//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /// <summary> /// Create a toggle setting /// </summary> /// <param name="p_Parent">Parent transform</param> /// <param name="p_Text">Toggle caption</param> /// <param name="p_Action">Toggle callback</param> /// <param name="p_HoverHint">Hover hint text</param> public static BSMLToggleSetting Create(UnityEngine.Transform p_Parent, string p_Text, bool p_Enabled, Action <bool> p_Action, string p_HoverHint = null) { if (m_ToggleSettingCreator == null) { m_ToggleSettingCreator = new BSMLToggleSettingTag(); } var l_ToggleObject = m_ToggleSettingCreator.CreateObject(p_Parent); l_ToggleObject.gameObject.SetActive(false); var l_Toggle = l_ToggleObject.GetComponent <BSMLToggleSetting>(); l_Toggle.Text = p_Text; l_Toggle.Value = p_Enabled; l_Toggle.toggle.onValueChanged.AddListener((x) => { p_Action(x); }); if (!string.IsNullOrEmpty(p_HoverHint)) { HMUI.HoverHint l_HoverHint = l_ToggleObject.GetComponent <HMUI.HoverHint>() ?? l_ToggleObject.AddComponent <HMUI.HoverHint>(); l_HoverHint.text = p_HoverHint; l_HoverHint.SetField("_hoverHintController", UnityEngine.Resources.FindObjectsOfTypeAll <HMUI.HoverHintController>().First()); } l_ToggleObject.gameObject.SetActive(true); return(l_Toggle); }
#pragma warning restore CS0649 //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /// <summary> /// On activation /// </summary> /// <param name="p_FirstActivation">Is the first activation ?</param> /// <param name="p_AddedToHierarchy">Activation type</param> /// <param name="p_ScreenSystemEnabling">Is screen system enabled</param> protected override void DidActivate(bool p_FirstActivation, bool p_AddedToHierarchy, bool p_ScreenSystemEnabling) { /// Forward event base.DidActivate(p_FirstActivation, p_AddedToHierarchy, p_ScreenSystemEnabling); /// Initial setup if (p_FirstActivation) { m_ToggleSettingCreator = new BeatSaberMarkupLanguage.Tags.ToggleSettingTag(); foreach (var l_Plugin in Plugin.Instance.Plugins) { var l_Setting = AddSetting(l_Plugin.Name, l_Plugin.IsEnabled, (x) => { try { l_Plugin.SetEnabled(x); CheckChatTutorial(l_Plugin); } catch (System.Exception p_InitException) { Logger.Instance.Error("Error on plugin init " + l_Plugin.Name); Logger.Instance.Error(p_InitException); } }); m_PluginsSetting.Add(l_Plugin, l_Setting); } } }