Ejemplo n.º 1
0
        static void Postfix(FreeRoamCamera __instance, DragInfo dragInfo)
        {
            if (!Main.enabled || !Main.freeCamActivated)
            {
                return;
            }

            try
            {
                var mDragDelayTimer  = Traverse.Create(__instance).Field("mDragDelayTimer").GetValue <float>();
                var dragInitialDelay = Traverse.Create(__instance).Field("dragInitialDelay").GetValue <float>();
                var dragModifier     = Traverse.Create(__instance).Field("dragModifier").GetValue <float>();

                if (Input.GetMouseButton(1) && mDragDelayTimer >= dragInitialDelay && !(UIManager.instance.UIObjectsAtMousePosition.Count > 0))
                {
                    var zoom      = Mathf.Lerp(__instance.cameraMaxZoom, __instance.cameraMinZoom, __instance.zoomNormalized);
                    var pos       = Vector3.zero;
                    var transform = __instance.transform;
                    var position  = transform.position;
                    var forward   = transform.forward;
                    forward.y = 0;
                    pos      += forward.normalized * (-dragInfo.delta.y * Time.unscaledDeltaTime) * dragModifier * Main.settings.GetMouseSpeed * zoom;
                    var right = transform.right;
                    right.y = 0;
                    pos    += right.normalized * (-dragInfo.delta.x * Time.unscaledDeltaTime) * dragModifier * Main.settings.GetMouseSpeed * zoom;
                    transform.parent.position += pos;
                }
            }
            catch (Exception e)
            {
                Main.logger.LogException(e);
            }
        }
Ejemplo n.º 2
0
        static void Postfix(FreeRoamCamera __instance)
        {
            if (!Main.enabled)
            {
                return;
            }

            try
            {
                Main.fixCamTarget = null;

                var state = Traverse.Create(__instance).Field("mState").GetValue();
                if ((int)state == (int)Main.state_FreeRoam)
                {
                    Main.freeCamActivated = true;
                }
                else
                {
                    Main.freeCamActivated = false;
                }

                Traverse.Create(__instance).Field("mDisablePanControls").SetValue(Main.freeCamActivated);
            }
            catch (Exception e)
            {
                Main.logger.LogException(e);
            }
        }
Ejemplo n.º 3
0
        static void Prefix(FreeRoamCamera __instance, GameObject inTarget, ref CameraManager.Transition inTransition, float inCameraRightVectorOffset, Vehicle inVehicle)
        {
            if (!Main.enabled || !Main.settings.InstantTransitions)
            {
                return;
            }

            try
            {
                inTransition = CameraManager.Transition.Instant;
            }
            catch (Exception e)
            {
                Main.logger.LogException(e);
            }
        }
Ejemplo n.º 4
0
        static void Postfix(FreeRoamCamera __instance)
        {
            if (!Main.enabled)
            {
                return;
            }

            try
            {
                Main.ApplySettings();
            }
            catch (Exception e)
            {
                Main.logger.LogException(e);
            }
        }
Ejemplo n.º 5
0
 protected override void Initialize()
 {
     this.cameraType = previewControl.CameraType.FREE_ROAM;
     Arua_Camera_Editor.Common.ContentManager.SetGraphicsDevice(base.GraphicsDevice);
     this.XNAContent    = new Microsoft.Xna.Framework.Content.ContentManager(base.Services, "Content");
     this.zmsEffect     = Shaders.CreateObjectEffect(base.GraphicsDevice);
     this.terrainEffect = Shaders.CreateTerrainEffect(base.GraphicsDevice);
     this.motionEffect  = new BasicEffect(base.GraphicsDevice, null);
     this.zmsEffect.Parameters["World"].SetValue(Matrix.Identity);
     this.previewResize();
     this.camera       = new FreeRoamCamera(new Vector2((float)(base.Width / 2), (float)(base.Height / 2)));
     this.timer        = Stopwatch.StartNew();
     Application.Idle += delegate
     {
         base.Invalidate();
     };
     this.LoadContent();
 }
Ejemplo n.º 6
0
        static void Postfix(FreeRoamCamera __instance)
        {
            if (!Main.enabled)
            {
                return;
            }

            try
            {
                if (Main.fixCamTarget)
                {
                    Main.fixCamRotation += __instance.transform.parent.localEulerAngles - rotation;
                }
            }
            catch (Exception e)
            {
                Main.logger.LogException(e);
            }
        }
Ejemplo n.º 7
0
 protected override void Initialize()
 {
     this.cameraType = previewControl.CameraType.FREE_ROAM;
     Arua_Camera_Editor.Common.ContentManager.SetGraphicsDevice(base.GraphicsDevice);
     this.XNAContent = new Microsoft.Xna.Framework.Content.ContentManager(base.Services, "Content");
     this.zmsEffect = Shaders.CreateObjectEffect(base.GraphicsDevice);
     this.terrainEffect = Shaders.CreateTerrainEffect(base.GraphicsDevice);
     this.motionEffect = new BasicEffect(base.GraphicsDevice, null);
     this.zmsEffect.Parameters["World"].SetValue(Matrix.Identity);
     this.previewResize();
     this.camera = new FreeRoamCamera(new Vector2((float)(base.Width / 2), (float)(base.Height / 2)));
     this.timer = Stopwatch.StartNew();
     Application.Idle += delegate
     {
         base.Invalidate();
     };
     this.LoadContent();
 }
Ejemplo n.º 8
0
        static void Postfix(FreeRoamCamera __instance)
        {
            if (!Main.enabled)
            {
                return;
            }

            try
            {
                if (Main.freeCamActivated)
                {
                    var transform = __instance.transform;
                    var pos       = Vector3.zero;
                    var zoom      = Mathf.Lerp(__instance.cameraMaxZoom, __instance.cameraMinZoom, __instance.zoomNormalized);
                    var speed     = Main.settings.GetKeyboardSpeed * zoom * Time.unscaledDeltaTime;
                    if (Input.GetKey(KeyCode.W))
                    {
                        var dir = transform.forward;
                        dir.y = 0;
                        pos  += dir.normalized * speed;
                    }
                    if (Input.GetKey(KeyCode.S))
                    {
                        var dir = transform.forward;
                        dir.y = 0;
                        pos  -= dir.normalized * speed;
                    }
                    if (Input.GetKey(KeyCode.A))
                    {
                        var dir = transform.right;
                        dir.y = 0;
                        pos  -= dir.normalized * speed;
                    }
                    if (Input.GetKey(KeyCode.D))
                    {
                        var dir = transform.right;
                        dir.y = 0;
                        pos  += dir.normalized * speed;
                    }

                    var position = transform.parent.position;
                    position += pos;
                    transform.parent.position = position;

                    //            RaycastHit raycastHit;
                    //            pos = position;
                    //            pos.y = 50f;
                    //            if (Physics.Raycast(pos, -transform.up, out raycastHit, 0))
                    //            {
                    //                transform.localPosition = new Vector3(0, raycastHit.point.y, 0);
                    //                Console.WriteLine($"{raycastHit.transform.name} {raycastHit.collider.gameObject.layer} {raycastHit.point}");
                    //            }

                    var scrollWheel = Input.GetAxis("Mouse ScrollWheel");
                    if (scrollWheel != 0)
                    {
                        var mZoomSpeed = Traverse.Create(__instance).Field("mZoomSpeed").GetValue <float>();
                        Traverse.Create(__instance).Field("mZoomSpeed").SetValue(mZoomSpeed + scrollWheel * Time.unscaledDeltaTime * Traverse.Create(__instance).Field("zoomSpeedModifier").GetValue <float>());
                    }
                }
                else
                {
                    if (Main.fixCamTarget)
                    {
                        var x  = __instance.transform.parent.localEulerAngles.x;
                        var y1 = __instance.transform.parent.localEulerAngles.y;
                        var y2 = (__instance.targetVehicle.unityVehicle.transform.localEulerAngles + Main.fixCamRotation).y;

                        if (y1 < 0)
                        {
                            y1 += 360f;
                        }
                        if (y2 < 0)
                        {
                            y2 += 360f;
                        }
                        y1 = y1 % 360f;
                        y2 = y2 % 360f;
                        if (y2 - y1 > 180)
                        {
                            y1 += 360f;
                        }
                        else if (y1 - y2 > 180)
                        {
                            y2 += 360f;
                        }

                        __instance.transform.parent.localEulerAngles = Vector3.Lerp(new Vector3(x, y1, 0), new Vector3(x, y2, 0), Time.unscaledDeltaTime * 3f * Game.instance.time.GetSimulationTimeScale());
                    }
                }
            }
            catch (Exception e)
            {
                Main.logger.LogException(e);
            }
        }