示例#1
0
        void KeyDownHandler(Key key)
        {
            if (SimulateMouse(key, true))
            {
                return;
            }

            if (IsShutdown(key))
            {
                game.Exit();
            }
            else if (key == Keys[KeyBind.Screenshot])
            {
                game.screenshotRequested = true;
            }
            else if (game.Gui.ActiveScreen.HandlesKeyDown(key))
            {
            }
            else if (HandleCoreKey(key))
            {
            }
            else if (game.LocalPlayer.HandlesKey(key))
            {
            }
            else
            {
                int idx = HotkeyList.FindPartial(key, game.Input);
                if (idx == -1)
                {
                    return;
                }

                Hotkey hotkey = HotkeyList.Hotkeys[idx];
                string text   = hotkey.Text;

                if (!hotkey.StaysOpen)
                {
                    game.Chat.Send(text, false);
                }
                else if (game.Gui.activeScreen == null)
                {
                    game.Gui.hudScreen.OpenInput(text);
                }
            }
        }