private void OnKeyBindStateChanged(ViewportBoundKeyEventArgs args) { if (_baseClient.RunLevel != ClientRunLevel.InGame) { return; } if (!_entitySystemManager.TryGetEntitySystem <InputSystem>(out var inputSystem)) { return; } var keyArgs = args.KeyEventArgs; var inputFunction = _inputManager.NetworkBindMap.KeyFunctionID(keyArgs.Function); EntityCoordinates coords = EntityCoordinates.Invalid; EntityUid entity = EntityUid.Invalid; if (args.Viewport is ScalingViewport viewport) { MapCoordinates mapCoords = viewport.ScreenToMap(keyArgs.PointerLocation.Position); entity = GetEntityUnderMouse(viewport, keyArgs.PointerLocation.Position, mapCoords); coords = _mapManager.TryFindGridAt(mapCoords, out var grid) ? grid.MapToGrid(mapCoords) : EntityCoordinates.FromMap(_mapManager, mapCoords); } var message = new FullInputCmdMessage(_gameTiming.CurTick, _gameTiming.TickFraction, inputFunction, keyArgs.State, coords, keyArgs.PointerLocation, entity); if (inputSystem.HandleInputCommand(_playerManager.LocalPlayer.Session, keyArgs.Function, message)) { keyArgs.Handle(); } }
private void OnKeyBindStateChanged(ViewportBoundKeyEventArgs args) { if (_baseClient.RunLevel < ClientRunLevel.InGame) { return; } if (!_entitySystemManager.TryGetEntitySystem <InputSystem>(out var inputSystem)) { return; } var message = new FullInputCmdMessage(_gameTiming.CurTick, _gameTiming.TickFraction, _inputManager.NetworkBindMap.KeyFunctionID(args.KeyEventArgs.Function), args.KeyEventArgs.State, EntityCoordinates.Invalid, args.KeyEventArgs.PointerLocation, EntityUid.Invalid); if (inputSystem.HandleInputCommand(_playerManager.LocalPlayer !.Session, args.KeyEventArgs.Function, message)) { args.KeyEventArgs.Handle(); } }