コード例 #1
0
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////

        /// <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);
        }
コード例 #2
0
#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);
                }
            }
        }