示例#1
0
        public static string GetKeyText(BindingKeysData bindingKey)
        {
            if (bindingKey == null)
            {
                return("None");
            }

            var prefix = new StringBuilder();

            if (bindingKey.IsCtrlDown)
            {
                prefix.Append("Ctrl+");
            }

            if (bindingKey.IsAltDown)
            {
                prefix.Append("Alt+");
            }

            if (bindingKey.IsShiftDown)
            {
                prefix.Append("Shift+");
            }

            return(prefix.ToString() + bindingKey.Key);
        }
示例#2
0
        public static bool ReadKey(out BindingKeysData bindingKey)
        {
            KeyCode keyCode = KeyCode.None;

            foreach (KeyCode keyHeld in Enum.GetValues(typeof(KeyCode)))
            {
                if (keyHeld == KeyCode.None || keyHeld > KeyCode.PageDown)
                {
                    continue;
                }

                if (Input.GetKey(keyHeld))
                {
                    keyCode = keyHeld;
                    break;
                }
            }

            if (keyCode != KeyCode.None)
            {
                bindingKey = new BindingKeysData()
                {
                    Key         = keyCode,
                    IsCtrlDown  = Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl),
                    IsAltDown   = Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt),
                    IsShiftDown = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)
                };
                return(true);
            }
            else
            {
                bindingKey = null;
                return(false);
            }
        }
示例#3
0
        public static bool CanBeRegistered(string bindingName, BindingKeysData bindingKey,
                                           KeyboardAccess.GameModesGroup gameMode = KeyboardAccess.GameModesGroup.World)
        {
            bool isBound = Game.Instance.Keyboard.GetBindingByName(bindingName) != null;

            if (isBound)
            {
                Game.Instance.Keyboard.UnregisterBinding(bindingName);
            }

            bool result = Game.Instance.Keyboard.CanBeRegistered(
                bindingName,
                bindingKey.Key,
                gameMode,
                bindingKey.IsCtrlDown,
                bindingKey.IsAltDown,
                bindingKey.IsShiftDown);

            if (isBound)
            {
                Game.Instance.Keyboard.RegisterBinding(
                    bindingName, bindingKey, gameMode, false);
            }

            return(result);
        }
示例#4
0
        public static void RegisterKey(string bindingName, BindingKeysData bindingKey,
                                       KeyboardAccess.GameModesGroup gameMode = KeyboardAccess.GameModesGroup.World)
        {
            Game.Instance.Keyboard.UnregisterBinding(bindingName);

            if (bindingKey != null && bindingKey.Key != KeyCode.None)
            {
                Game.Instance.Keyboard.RegisterBinding(bindingName, bindingKey, gameMode, false);
            }
        }
示例#5
0
 private void TryRegisterHotkey(string name, BindingKeysData value)
 {
     if (value != null)
     {
         HotkeyHelper.RegisterKey(name, value, KeyboardAccess.GameModesGroup.World);
     }
     else
     {
         HotkeyHelper.UnregisterKey(name);
     }
 }
        private void TryRegisterHotkey(string name, BindingKeysData value)
        {
            Mod.Debug(MethodBase.GetCurrentMethod(), name, HotkeyHelper.GetKeyText(value));

            if (value != null)
            {
                HotkeyHelper.RegisterKey(name, value, KeyboardAccess.GameModesGroup.All);
            }
            else
            {
                HotkeyHelper.UnregisterKey(name);
            }
        }
示例#7
0
        public static bool CanBeRegistered(string bindingName, BindingKeysData bindingKey,
                                           KeyboardAccess.GameModesGroup gameMode = KeyboardAccess.GameModesGroup.World)
        {
            bool result = Game.Instance.Keyboard.CanBeRegistered(
                bindingName,
                bindingKey.Key,
                gameMode,
                bindingKey.IsCtrlDown,
                bindingKey.IsAltDown,
                bindingKey.IsShiftDown);

            return(result);
        }
示例#8
0
 public static string GetKeyText(BindingKeysData bindingKey)
 {
     if (bindingKey == null)
     {
         return("None");
     }
     else
     {
         return(string.Concat(
                    bindingKey.IsCtrlDown ? "Ctrl+" : null,
                    bindingKey.IsAltDown ? "Alt+" : null,
                    bindingKey.IsShiftDown ? "Shift+" : null,
                    bindingKey.Key.ToString()));
     }
 }
示例#9
0
        public static string GetKeyText(BindingKeysData bindingKey)
        {
            if (bindingKey == null)
            {
                return("None");
            }
            else
            {
                string prefix =
                    bindingKey.IsCtrlDown ? "Ctrl+" :
                    bindingKey.IsShiftDown ? "Shift+" :
                    bindingKey.IsAltDown ? "Alt+" : string.Empty;

                return(prefix + bindingKey.Key.ToString());
            }
        }
 public void SetHotkey(string name, BindingKeysData value)
 {
     Hotkeys[name] = value;
     TryRegisterHotkey(name, value);
 }