Exemple #1
0
        private void HandleRawMouseMove(int x, int y)
        {
            TooltipManager.CancelTooltip();

            if (!Main.Active)
            {
                Program.MainInstance.IsMouseVisible = true;
                return;
            }

            float baseMouseSpeed = ((float)System.Windows.Forms.SystemInformation.MouseSpeed / 20f) * OverallMouseSpeedMult;

            if (Main.Input.ShiftHeld)
            {
                baseMouseSpeed *= 5;
            }

            if (Main.Input.LeftClickHeld && dragType == ViewportDragType.LeftClick)
            {
                Program.MainInstance.IsMouseVisible = false;
                Mouse.SetPosition((int)Math.Round(Main.Input.LeftClickDownAnchor.X * Main.DPIX),
                                  (int)Math.Round(Main.Input.LeftClickDownAnchor.Y * Main.DPIY));

                bool isInvertedPitch = false;

                //float pitchCheck = OrbitCamEuler.X + MathHelper.PiOver2;

                //if (pitchCheck >= 0)
                //{
                //    isInvertedPitch = Math.Floor(pitchCheck / MathHelper.Pi) % 2 == 1;
                //}
                //else
                //{
                //    isInvertedPitch = Math.Floor(-pitchCheck / MathHelper.Pi) % 2 == 0;
                //}

                OrbitCamEuler += new Vector3(-y, isInvertedPitch ? x : -x, 0) * baseMouseSpeed * CameraTurnSpeedMouse * 0.01f;
            }
            else if (Main.Input.RightClickHeld && dragType == ViewportDragType.RightClick)
            {
                FollowingLockon = false;

                Program.MainInstance.IsMouseVisible = false;
                Mouse.SetPosition((int)Math.Round(Main.Input.LeftClickDownAnchor.X * Main.DPIX),
                                  (int)Math.Round(Main.Input.LeftClickDownAnchor.Y * Main.DPIY));

                if (Main.Input.CtrlHeld)
                {
                    CameraOrbitOrigin += Vector3.Transform(
                        new Vector3(-x, 0, -y),
                        CameraLocationInWorld.Rotation) * baseMouseSpeed
                                         * CameraMoveSpeed * 0.0015f * OrbitCamDistance * ProjectionVerticalFovRatio;
                }
                else
                {
                    CameraOrbitOrigin += Vector3.Transform(
                        new Vector3(-x, y, 0),
                        CameraLocationInWorld.Rotation) * baseMouseSpeed
                                         * CameraMoveSpeed * 0.0015f * OrbitCamDistance * ProjectionVerticalFovRatio;
                }
            }
            else
            {
                Program.MainInstance.IsMouseVisible = true;
            }
        }