private void UpdateKeyChoice(ModSettingsBase modSettings, FieldInfo field, CustomKeybinding customKeybinding) { KeyCode keyCode = (KeyCode)field.GetValue(modSettings); customKeybinding.currentKeycodeSetting = keyCode; customKeybinding.keyRebindingButton.SetValueLabel(keyCode.ToString()); }
private void AddKeySetting(ModSettingsBase modSettings, FieldInfo field, NameAttribute name, DescriptionAttribute description) { // Create menu item GameObject setting = CreateSetting(name, description, ObjectPrefabs.KeyEntryPrefab, "Label"); GameObject keyButtonObject = setting.transform.FindChild("Keybinding_Button").gameObject; CustomKeybinding customKeybinding = setting.AddComponent <CustomKeybinding>(); customKeybinding.keyRebindingButton = keyButtonObject.GetComponent <KeyRebindingButton>(); customKeybinding.currentKeycodeSetting = (KeyCode)field.GetValue(modSettings); customKeybinding.RefreshLabelValue(); UIButton uiButton = keyButtonObject.GetComponent <UIButton>(); EventDelegate.Set(uiButton.onClick, new Action(customKeybinding.OnClick)); customKeybinding.OnChange = new Action(() => UpdateKeyValue(modSettings, field, customKeybinding)); modSettings.AddRefreshAction(() => UpdateKeyChoice(modSettings, field, customKeybinding)); // Control visibility SetVisibilityListener(modSettings, field, setting, lastHeader); }
private void UpdateKeyValue(ModSettingsBase modSettings, FieldInfo field, CustomKeybinding customKeybinding) { SetSettingsField(modSettings, field, customKeybinding.currentKeycodeSetting); }