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); } }
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); } }
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); } }
static void Postfix(FreeRoamCamera __instance) { if (!Main.enabled) { return; } try { Main.ApplySettings(); } catch (Exception e) { Main.logger.LogException(e); } }
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(); }
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); } }
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(); }
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); } }