private void MoveCrosshair(Vector2 screenCoords) { CrosshairPosition = screenCoords; var crosshairPosition = new Vector2(UI.WIDTH * 0.5f + screenCoords.X * UI.WIDTH * 0.5f, UI.HEIGHT * 0.5f + screenCoords.Y * UI.HEIGHT * 0.5f); const float w = 1f; //Filtering is done earlier 0.6f; _crosshairPosition = new Vector2(_crosshairPosition.X + (crosshairPosition.X - _crosshairPosition.X) * w, _crosshairPosition.Y + (crosshairPosition.Y - _crosshairPosition.Y) * w); var centerPosition = new Vector2(UI.WIDTH * 0.5f, UI.HEIGHT * 0.5f); var deadzone = 2f; if ((_crosshairPosition - centerPosition).Length() < deadzone) { _crosshairPosition = centerPosition; } _dotCrosshair.Move(_crosshairPosition); _missileLockCrosshair.Move(_crosshairPosition); }
public void OnTick(object sender, EventArgs e) { if (_shutDownRequestFlag) { return; } _tobiiTracker.Update(); _debugGazeVisualization.Move(new Vector2(TobiiAPI.GetGazePoint().X *UI.WIDTH, TobiiAPI.GetGazePoint().Y *UI.HEIGHT)); _controllerEmulation.Enabled = !Game.IsPaused; _mouseEmulation.Enabled = !Game.IsPaused && !_menuPool.IsAnyMenuOpen() && _isWindowForeground; //CheckFreelookDevice(); SaveSettingsOnMenuClosed(); Game.Player.Character.CanBeKnockedOffBike = _settings.DontFallFromBikesEnabled; //Bug in Script hook if (Game.IsPaused) { return; } if (!_settings.UserAgreementAccepted) { _introScreen.OpenMenu(); } RecordGameSessionStarted(); Vector3 shootCoord; Vector3 shootCoordSnap; Vector3 shootMissileCoord; Ped ped; Entity missileTarget; var controllerState = _controllerEmulation.ControllerState; const float joystickRadius = 0.1f; var joystickDelta = new Vector2(controllerState.Gamepad.RightThumbX, -controllerState.Gamepad.RightThumbY) * (1.0f / 32768.0f) * joystickRadius; _gameState.Update(); var centeredNormalizedGaze = new Vector2(TobiiAPI.GetGazePoint().X, TobiiAPI.GetGazePoint().Y) * 2 - new Vector2(1, 1); _gazeProjector.FindGazeProjection( centeredNormalizedGaze, joystickDelta, out shootCoord, out shootCoordSnap, out shootMissileCoord, out ped, out missileTarget); _controlsProcessor.Update(_lastTickTime, shootCoord, shootCoordSnap, shootMissileCoord, ped, missileTarget); //_aiming.TurnHead(ped, shootCoord); _menuPool.ProcessMenus(); _animationHelper.Process(); if (_debugOutput.Visible) { _debugGazeVisualization.Render(); } _debugOutput.Process(); _mouseEmulation.ProcessInput(); _lastTickTime = DateTime.UtcNow; if (_shutDownRequestFlag) { _shutDownRequestedEvent.Set(); } }