public static StringBuilder AppendInputBind(this StringBuilder sb, MyStringId controlId) { IMyControl control = MyAPIGateway.Input.GetGameControl(controlId); if (control == null) { return(sb.Append("<Unknown:").Append(controlId.String).Append(">")); } string mouse = control.GetControlButtonName(MyGuiInputDeviceEnum.Mouse); if (!string.IsNullOrEmpty(mouse)) { return(sb.Append(mouse)); } string key = control.GetControlButtonName(MyGuiInputDeviceEnum.Keyboard); if (string.IsNullOrEmpty(key)) { key = control.GetControlButtonName(MyGuiInputDeviceEnum.KeyboardSecond); } if (!string.IsNullOrEmpty(key)) { return(sb.Append(key)); } return(sb.Append("<").Append(control.GetControlName().String).Append(">")); }
public static string GetAssignedGameControlNames(IMyControl control, bool oneResult = false) { List <string> inputs = (oneResult ? null : new List <string>()); if (control.GetMouseControl() != MyMouseButtonsEnum.None) { string name = Input.GetName(control.GetMouseControl()); if (oneResult) { return(name); } else { inputs.Add(name); } } if (control.GetKeyboardControl() != MyKeys.None) { string name = Input.GetKeyName(control.GetKeyboardControl()); if (oneResult) { return(name); } else { inputs.Add(name); } } if (control.GetSecondKeyboardControl() != MyKeys.None) { string name = Input.GetKeyName(control.GetSecondKeyboardControl()); if (oneResult) { return(name); } else { inputs.Add(name); } } return(oneResult || inputs.Count == 0 ? "{Unassigned:" + control.GetControlName() + "}" : string.Join(" or ", inputs)); }