protected override void OnKeyDown(KeyboardKeyEventArgs e) { base.OnKeyDown(e); switch (e.Key) { case Key.Escape: if (GuiScreen is GuiScreenMainMenu || KeyboardState.IsKeyDown(Key.Escape)) { return; } if (GuiScreen != null) { CloseGuiScreen(); } else { OpenGuiScreen(new GuiScreenIngameMenu()); } break; case Key.E: if (KeyboardState.IsKeyDown(Key.E)) { return; } if (GuiScreen is GuiScreenInventory) { CloseGuiScreen(); return; } if (GuiScreen == null) { OpenGuiScreen(new GuiScreenInventory()); } break; case Key.Up: if (KeyboardState.IsKeyDown(Key.Up)) { return; } break; case Key.Down: if (KeyboardState.IsKeyDown(Key.Down)) { return; } break; case Key.Enter: if (KeyboardState.IsKeyDown(Key.Enter)) { return; } if (GuiScreen is GuiChat gc) { gc.SendMessage(); Instance.CloseGuiScreen(); } else { OpenGuiScreen(new GuiChat()); } break; case Key.F2: _takeScreenshot = true; break; case Key.F11: if (WindowState != WindowState.Fullscreen) { _lastWindowState = WindowState; WindowState = WindowState.Fullscreen; } else { WindowState = _lastWindowState; } break; } if (AllowIngameInput()) { switch (e.Key) { case Key.Q: if (KeyboardState.IsKeyDown(Key.Q)) { return; } if (e.Control) { Player.DropHeldStack(); } else { Player?.DropHeldItem(); } break; case Key.R: if (!e.Control || KeyboardState.IsKeyDown(Key.R)) { return; } Shader.ReloadAll(); SettingsManager.Load(); TextureManager.Reload(); SoundEngine.Reload(); LangUtil.Reload(); Camera.SetTargetFov(SettingsManager.GetFloat("fov")); WorldRenderer.RenderDistance = SettingsManager.GetInt("renderdistance"); _sensitivity = SettingsManager.GetFloat("sensitivity"); if (e.Shift) { JsonModelLoader.Reload(); //TODO - World?.DestroyChunkModels(); } break; } if (GuiScreen == null) { for (int i = 0; i < 9; i++) { if (e.Key == Key.Number1 + i) { Player?.SetSelectedSlot(i); break; } } } } if (e.Alt && e.Key == Key.F4) { Exit(); } KeyboardState = e.Keyboard; }
protected override void OnKeyDown(KeyboardKeyEventArgs e) { base.OnKeyDown(e); // If chat add to text if (guiChat != null && guiChat.visible == true) { guiChat.InputText(e.Key); } switch (e.Key) { case Key.P: Player?.World?.AddWaypoint(new BlockPos(Player.Pos).Offset(FaceSides.Up), new OpenTK.Color(255, 0, 0, 127), "TEST"); break; case Key.Escape: if (GuiScreen is GuiScreenMainMenu || KeyboardState.IsKeyDown(Key.Escape)) { return; } if (GuiScreen != null) { CloseGuiScreen(); } else { OpenGuiScreen(new GuiScreenIngameMenu()); } break; case Key.E: if (KeyboardState.IsKeyDown(Key.E)) { return; } if (guiChat != null && guiChat.visible) { return; } if (GuiScreen is GuiScreenInventory) { CloseGuiScreen(); return; } if (GuiScreen == null) { OpenGuiScreen(new GuiScreenInventory()); } break; case Key.Up: if (KeyboardState.IsKeyDown(Key.Up)) { return; } if (guiChat != null) { if (guiChat.visible == true) { guiChat.ShowHistoryUP(); } } break; case Key.Down: if (KeyboardState.IsKeyDown(Key.Down)) { return; } if (guiChat != null) { if (guiChat.visible == true) { guiChat.ShowHistoryDOWN(); } } break; case Key.Enter: if (KeyboardState.IsKeyDown(Key.Enter)) { return; } if (guiChat == null) { guiChat = new GuiChat(); return; } else { guiChat.Init(); guiChat.ToggleVisibillity(); } break; case Key.F2: _takeScreenshot = true; break; case Key.F11: if (WindowState != WindowState.Fullscreen) { _lastWindowState = WindowState; WindowState = WindowState.Fullscreen; } else { WindowState = _lastWindowState; } break; } if (AllowInput()) { switch (e.Key) { case Key.Q: if (KeyboardState.IsKeyDown(Key.Q)) { return; } if (e.Control) { Player.DropHeldStack(); } else { Player?.DropHeldItem(); } break; case Key.R: if (!e.Control || KeyboardState.IsKeyDown(Key.R)) { return; } Shader.ReloadAll(); SettingsManager.Load(); TextureManager.Reload(); WorldRenderer.RenderDistance = SettingsManager.GetInt("renderdistance"); _sensitivity = SettingsManager.GetFloat("sensitivity"); if (e.Shift) { JsonModelLoader.Reload(); World?.DestroyChunkModels(); } break; } if (GuiScreen == null) { for (int i = 0; i < 9; i++) { if (e.Key == Key.Number1 + i) { Player?.SetSelectedSlot(i); break; } } } } if (e.Alt && e.Key == Key.F4) { Exit(); } KeyboardState = e.Keyboard; }