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(">"));
        }
Example #2
0
        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));
        }