36 "OnSettingsScreenCreated",
38 loader.OnSettingsScreenCreated(
this, out Dictionary<ButtonWidget, Action> buttonsToAdd);
39 if (buttonsToAdd !=
null) {
40 foreach (KeyValuePair<ButtonWidget, Action> child
in buttonsToAdd) {
74 foreach (KeyValuePair<ButtonWidget, Action> buttonAction
in m_buttonActions) {
75 if (buttonAction.Key.IsClicked) {
76 buttonAction.Value?.Invoke();
95 ArgumentNullException.ThrowIfNull(button);
97 throw new InvalidOperationException(
"Button already has an action assigned");
99 int index = m_buttonActions.Count - 1;
100 if (index % 2 == 0) {
static object Get(Type type, string name)
static void GoBack(params object[] parameters)
static void SwitchScreen(string name, params object[] parameters)
ButtonWidget m_controlsButton
StackPanelWidget m_rightPanel
ButtonWidget m_graphicsButton
void AddSettingButton(string text, Action onClicked)
添加新的设置按钮。使用标准的设置按钮样式,若需要自定义样式请使用另一个重载
readonly Dictionary< ButtonWidget, Action > m_buttonActions
ButtonWidget m_audioButton
StackPanelWidget m_leftStack
ButtonWidget m_performanceButton
void AddSettingButton(ButtonWidget button, Action onClicked)
添加新的设置按钮
ButtonWidget m_compatibilityButton
static void HookAction(string HookName, Func< ModLoader, bool > action)
执行Hook