/// <summary> /// Reads the bound button or key from the given control to bypass control blocking. /// </summary> public static bool IsControlPressedIgnoreBlock(MyStringId controlId, bool newPress = false) { IMyControl control = MyAPIGateway.Input.GetGameControl(controlId); // WARNING: IsKeyPress(MyKeys.None) returns true for some people! if (newPress) { MyMouseButtonsEnum button = control.GetMouseControl(); if (button != MyMouseButtonsEnum.None && MyAPIGateway.Input.IsNewMousePressed(button)) { return(true); } MyKeys kb1 = control.GetKeyboardControl(); if (kb1 != MyKeys.None && MyAPIGateway.Input.IsNewKeyPressed(kb1)) { return(true); } MyKeys kb2 = control.GetSecondKeyboardControl(); if (kb2 != MyKeys.None && MyAPIGateway.Input.IsNewKeyPressed(kb2)) { return(true); } } else { MyMouseButtonsEnum button = control.GetMouseControl(); if (button != MyMouseButtonsEnum.None && MyAPIGateway.Input.IsMousePressed(button)) { return(true); } MyKeys kb1 = control.GetKeyboardControl(); if (kb1 != MyKeys.None && MyAPIGateway.Input.IsKeyPress(kb1)) { return(true); } MyKeys kb2 = control.GetSecondKeyboardControl(); if (kb2 != MyKeys.None && MyAPIGateway.Input.IsKeyPress(kb2)) { return(true); } } return(false); }
public static string GetAssignedGameControlNames(IMyControl control) { var inputs = new List<string>(); if(control.GetMouseControl() != MyMouseButtonsEnum.None) inputs.Add(Input.GetName(control.GetMouseControl())); if(control.GetKeyboardControl() != MyKeys.None) inputs.Add(Input.GetKeyName(control.GetKeyboardControl())); if(control.GetSecondKeyboardControl() != MyKeys.None) inputs.Add(Input.GetKeyName(control.GetSecondKeyboardControl())); return (inputs.Count == 0 ? Input.GetUnassignedName() : string.Join(" or ", inputs)); }
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)); }
public string GetFriendlyString(bool xboxChars = true) { List <string> combined = new List <string>(); foreach (object o in combination) { if (o is MyStringId) { IMyControl control = MyAPIGateway.Input.GetGameControl((MyStringId)o); if (control.GetMouseControl() != MyMouseButtonsEnum.None) { combined.Add(InputHandler.inputNames[control.GetMouseControl()]); } else if (control.GetKeyboardControl() != MyKeys.None) { combined.Add(InputHandler.inputNames[control.GetKeyboardControl()]); } else if (control.GetSecondKeyboardControl() != MyKeys.None) { combined.Add(InputHandler.inputNames[control.GetSecondKeyboardControl()]); } else { combined.Add(InputHandler.inputNames[control]); } } else if (xboxChars && (o is MyJoystickAxesEnum || o is MyJoystickButtonsEnum)) { char c = InputHandler.xboxCodes.GetValueOrDefault(o, ' '); combined.Add(c == ' ' ? InputHandler.inputNames[o] : c.ToString()); } else { combined.Add(InputHandler.inputNames[o]); } } return(String.Join(" ", combined)); }
public static string GetFriendlyStringForControl(IMyControl control) { tmp.Clear(); if (control.GetKeyboardControl() != MyKeys.None) { if (tmp.Length > 0) { tmp.Append(" or "); } string def = control.GetKeyboardControl().ToString(); tmp.Append(inputNiceNames.GetValueOrDefault(inputNames.GetValueOrDefault(control.GetKeyboardControl(), def), def)); } if (control.GetMouseControl() != MyMouseButtonsEnum.None) { string def = control.GetMouseControl().ToString(); tmp.Append(inputNiceNames.GetValueOrDefault(inputNames.GetValueOrDefault(control.GetMouseControl(), def), def)); } else if (control.GetSecondKeyboardControl() != MyKeys.None) { if (tmp.Length > 0) { tmp.Append(" or "); } string def = control.GetSecondKeyboardControl().ToString(); tmp.Append(inputNiceNames.GetValueOrDefault(inputNames.GetValueOrDefault(control.GetSecondKeyboardControl(), def), def)); } string val = tmp.ToString(); tmp.Clear(); return(val); }
public static string GetFriendlyStringForControl(IMyControl control) { tmp.Clear(); if(control.GetKeyboardControl() != MyKeys.None) { if(tmp.Length > 0) tmp.Append(" or "); var def = control.GetKeyboardControl().ToString(); tmp.Append(inputNiceNames.GetValueOrDefault(inputNames.GetValueOrDefault(control.GetKeyboardControl(), def), def)); } if(control.GetMouseControl() != MyMouseButtonsEnum.None) { var def = control.GetMouseControl().ToString(); tmp.Append(inputNiceNames.GetValueOrDefault(inputNames.GetValueOrDefault(control.GetMouseControl(), def), def)); } else if(control.GetSecondKeyboardControl() != MyKeys.None) { if(tmp.Length > 0) tmp.Append(" or "); var def = control.GetSecondKeyboardControl().ToString(); tmp.Append(inputNiceNames.GetValueOrDefault(inputNames.GetValueOrDefault(control.GetSecondKeyboardControl(), def), def)); } var val = tmp.ToString(); tmp.Clear(); return val; }