public static bool Prefix(MainCameraControl __instance, out Vector3 __state) { __state = __instance.viewModel.transform.localPosition; Debug.Log($"prefix LocalPosition {__state}"); if (!Config.instance.EnableSnapTurning) { return(true); //Enter vanilla method } UpdateFields(); if (_isLookingUpOrDown && !Config.instance.EnableVirticalLook) { return(false); //Disable looking up or down with the joystick } if (_shouldSnapTurn) { UpdatePlayerRotation(); return(false); //Don't enter vanilla method if we snap turn } return(true); }
public static bool Prefix(MainCameraControl __instance) { if (!SnapTurningOptions.EnableSnapTurning || Player.main.isPiloting) { return(true); //Enter vanilla method } UpdateFields(); if (_isLookingUpOrDown) { ClearInput(); return(true); } if (_shouldSnapTurn) { UpdatePlayerRotation(); return(false); //Don't enter vanilla method if we snap turn } if (_shouldIgnoreLookRightOrLeft || SnapTurningOptions.DisableMouseLook) { ClearInput(); } return(true); }
private void Awake() { GameDirector director = GameDirector.getInstance(); director.currentSceneController = this; mf = Singleton <GameObjectFactory> .Instance; player = mf.getPlayer(); cameraControl = GetComponent <MainCameraControl>(); cameraControl.setTarget(player.transform); }
// Use this for initialization void Start() { dammyCampos = transform.position; player = PlayerObj.transform.GetComponent <PlayerMove>(); mousepos = Input.mousePosition; mousepos2 = mousepos; flagsInStageManager = GameObject.Find("GameControlObject").GetComponent <FlagsInStageManager>(); MainCamera = MainCameraObj.transform.GetComponent <MainCameraControl>(); CameraAngle = Vector3.zero; Application.targetFrameRate = 60; }
static void Postfix(MainCameraControl __instance) { Transform forwardRefTransform = __instance.GetComponentInParent <PlayerController>().forwardReference;//forwardReference is the main camera transform if (pdaIsClosing && pdaCloseTimer < pdaCloseDelay) { pdaCloseTimer += Time.deltaTime; } else if (pdaCloseTimer >= pdaCloseDelay || (pdaIsClosing && Player.main.GetPDA().state == PDA.State.Opened)) { pdaIsClosing = false; pdaCloseTimer = 0; } if (Player.main.GetPDA().state == PDA.State.Closing) { pdaIsClosing = true; } //when the pda is opened the viewmodel is moved forward but even when the state is closed, it is kept foward for a short while which was causing the neck to //show if I also moved the model forward at the same time. So I maintain my own closing state with pdaIsClosing and only move the model forward after pdaCloseDelay. //There may be a better way to solve this so someone please fix it. //I think the shifting of the model happens because of local position changes in the actual 3D model since the offset values didn't change during the model shift. if (Player.main.GetPDA().state == PDA.State.Closed && !pdaIsClosing) { if (Player.main.motorMode == Player.MotorMode.Seaglide) { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardRefTransform.position + (forwardRefTransform.up * seaglideYOffset) + forwardRefTransform.forward * seaglideZOffset); } else if (Player.main.transform.position.y < Ocean.main.GetOceanLevel() + 1f && !Player.main.IsInside() && !Player.main.precursorOutOfWater) { //use the viewModel transform instead of forwardRef since the player body pitches while swimming. string clipName = Player.main.playerAnimator.GetCurrentAnimatorClipInfo(0)[0].clip.name; if (clipName == "Back_lean" || clipName == "view_surface_swim_forward") { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardRefTransform.position + (__instance.viewModel.transform.up * (swimYOffset - 0.1f)) + __instance.viewModel.transform.forward * (swimZOffset - 0.1f)); } else { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardRefTransform.position + (__instance.viewModel.transform.up * swimYOffset) + __instance.viewModel.transform.forward * swimZOffset); } } else if (!__instance.cinematicMode && Player.main.motorMode != Player.MotorMode.Vehicle && Player.main.motorMode != Player.MotorMode.Seaglide) { if (Player.main.movementSpeed == 0) { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardRefTransform.position + Vector3.up * defaultYOffset + new Vector3(forwardRefTransform.forward.x, 0f, forwardRefTransform.forward.z).normalized *defaultZOffset); } else { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardRefTransform.position + Vector3.up * defaultYOffset + new Vector3(forwardRefTransform.forward.x, 0f, forwardRefTransform.forward.z).normalized *(defaultZOffset - 0.1f)); } } } }
public static void MCC_Update_Postfix(MainCameraControl __instance) { Transform forwardReference = __instance.GetComponentInParent <PlayerController>().forwardReference; if (MainPatcher.pdaIsClosing && MainPatcher.pdaCloseTimer < MainPatcher.pdaCloseDelay) { MainPatcher.pdaCloseTimer += Time.deltaTime; } else if (MainPatcher.pdaCloseTimer >= MainPatcher.pdaCloseDelay || (MainPatcher.pdaIsClosing && Player.main.GetPDA().state == PDA.State.Opened)) { MainPatcher.pdaIsClosing = false; MainPatcher.pdaCloseTimer = 0f; } if (Player.main.GetPDA().state == PDA.State.Closing) { MainPatcher.pdaIsClosing = true; } if (Player.main.GetPDA().state == PDA.State.Closed && !MainPatcher.pdaIsClosing) { if (Player.main.motorMode == Player.MotorMode.Seaglide) { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardReference.position + forwardReference.up * MainPatcher.seaglideYOffset + forwardReference.forward * MainPatcher.seaglideZOffset); return; } #if SN1 if (Player.main.transform.position.y < Ocean.main.GetOceanLevel() + 1f && !Player.main.IsInside() && !Player.main.precursorOutOfWater) #elif BZ if (Player.main.transform.position.y < Ocean.GetOceanLevel() + 1f && !Player.main.IsInside() && !Player.main.forceWalkMotorMode) #endif { string name = Player.main.playerAnimator.GetCurrentAnimatorClipInfo(0)[0].clip.name; if (name == "Back_lean" || name == "view_surface_swim_forward") { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardReference.position + __instance.viewModel.transform.up * (MainPatcher.swimYOffset - 0.1f) + __instance.viewModel.transform.forward * (MainPatcher.swimZOffset - 0.1f)); return; } __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardReference.position + __instance.viewModel.transform.up * MainPatcher.swimYOffset + __instance.viewModel.transform.forward * MainPatcher.swimZOffset); return; } else if (!__instance.cinematicMode && Player.main.motorMode != Player.MotorMode.Vehicle && Player.main.motorMode != Player.MotorMode.Seaglide) { if (Player.main.movementSpeed == 0f) { __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardReference.position + Vector3.up * MainPatcher.defaultYOffset + new Vector3(forwardReference.forward.x, 0f, forwardReference.forward.z).normalized *MainPatcher.defaultZOffset); return; } __instance.viewModel.transform.localPosition = __instance.viewModel.transform.parent.worldToLocalMatrix.MultiplyPoint(forwardReference.position + Vector3.up * MainPatcher.defaultYOffset + new Vector3(forwardReference.forward.x, 0f, forwardReference.forward.z).normalized *(MainPatcher.defaultZOffset - 0.1f)); } } }
// Use this for initialization void Start() { player = GameObject.Find("player").GetComponent <PlayerMove>(); cameraControl = GameObject.Find("CameraDammy").GetComponent <CameraControl>(); mainCameraControl = Camera.main.GetComponent <MainCameraControl>(); talk = GameObject.Find("GameControlObject").GetComponent <TalkProcess>(); /*animator = GameObject.Find("ActionUI").GetComponent<Animator>(); * pauseAnim = GameObject.Find("Pausemenu").GetComponent<Animator>(); * Button1 = GameObject.Find("Button1").GetComponent<Button>(); * if (GameObject.Find("ClearFlagObject") != null) * { * // stageClearProcess = GameObject.Find("ClearFlagObject").GetComponent<stageClearedFlag>(); * }*/ ///////// //match = Resources.Load("Prefab/GameMainObjects/Match") as GameObject ; }
public static void moveCamera() { Vector2 myLookDelta = GameInput.GetLookDelta(); if (myLookDelta == Vector2.zero) { myLookDelta.x = Input.GetAxis("ControllerAxis4"); myLookDelta.y = -Input.GetAxis("ControllerAxis5"); } MainCameraControl mainCam = MainCameraControl.main; mainCam.rotationX += myLookDelta.x; mainCam.rotationY += myLookDelta.y; mainCam.rotationX = Mathf.Clamp(mainCam.rotationX, -100, 100); mainCam.rotationY = Mathf.Clamp(mainCam.rotationY, mainCam.minimumY, mainCam.maximumY); //mainCam.cameraUPTransform.localEulerAngles = new Vector3(Mathf.Min(0f, -mainCam.rotationY), 0f, 0f); mainCam.transform.localEulerAngles = new Vector3(-mainCam.rotationY, mainCam.rotationX, 0f); }
public static bool Prefix(MainCameraControl __instance, out Vector3 __state) { __state = __instance.viewModel.transform.localPosition; if (!SnapTurningOptions.EnableSnapTurning || Player.main.isPiloting) { return(true); //Enter vanilla method } UpdateFields(); if (_isLookingUpOrDown) { return(false); //Disable looking up or down with the joystick } if (_shouldSnapTurn) { UpdatePlayerRotation(); return(false); //Don't enter vanilla method if we snap turn } return(true); }
void Awake() { Instance = this; }
// Use this for initialization void Start() { flagsInStageManager = GameObject.Find("GameControlObject").GetComponent <FlagsInStageManager>(); mainCameraControl = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <MainCameraControl>(); }
public static void Postfix(MainCameraControl __instance, Vector3 __state) { __instance.viewModel.transform.localPosition = __state; }
public static bool Prefix(MainCameraControl __instance) { var mainCam = MainCameraControl.main; //var cameraToPlayerMan = CameraToPlayerManager.main; bool inVehicleNow = (Player.main.IsPilotingSeatruck() || Player.main.inExosuit); if (isInVehicle) { if (inVehicleNow) { // do nothing } else { isInVehicle = false; } } else { if (inVehicleNow) { isInVehicle = true; isNewlyInVehicle = true; } else { // do nothing } } if (!inVehicleNow) { if (releaseFlag) { cameraRelinquish(); releaseFlag = false; } return(true); } releaseFlag = true; if (isNewlyInVehicle) { isNewlyInVehicle = false; //BasicText message = new BasicText(); //message.ShowMessage("This Message Will Fade In 10 Seconds", 10); } if (Player.main.motorMode == Player.MotorMode.Seaglide) { // hack the controls } bool triggerState = (Input.GetAxisRaw("ControllerAxis3") > 0) || (Input.GetAxisRaw("ControllerAxis3") < 0); if (isTriggerDown) { if (triggerState) { //do nothing } else { isTriggerDown = false; isTriggerNewlyUp = true; } } else { if (triggerState) { isTriggerDown = true; isTriggerNewlyDown = true; } else { //do nothing } } void cameraRelinquish() { mainCam.ResetCamera(); mainCam.cinematicMode = false; mainCam.lookAroundMode = true; FreeLookPatcher.isFreeLooking = false; } if (Input.GetKeyDown(FreeLookPatcher.Config.FreeLookKey) || isTriggerNewlyDown) { Debug.Log("FreeLook: button pressed. Taking control of the camera."); FreeLookPatcher.isFreeLooking = true; isTriggerNewlyDown = false; resetCameraFlag = false; // invoke a camera vulnerability mainCam.cinematicMode = true; mainCam.lookAroundMode = false; return(false); } else if (Input.GetKeyUp(FreeLookPatcher.Config.FreeLookKey) || isTriggerNewlyUp) { isTriggerNewlyUp = false; Debug.Log("FreeLook: button released. Relinquishing control of the camera."); resetCameraFlag = true; } if (!resetCameraFlag && (Input.GetKey(FreeLookPatcher.Config.FreeLookKey) || isTriggerDown)) { resetCameraFlag = false; moveCamera(); // adding oxygen is something vehicle.update would usually do, // so we do it naively here as well. // I'm not sure that Time.deltaTime seconds worth of oxygen per frame is the right amount... OxygenManager oxygenMgr = Player.main.oxygenMgr; oxygenMgr.AddOxygen(Time.deltaTime); return(false); } if (resetCameraFlag) { mainCam.rotationX = Mathf.SmoothDampAngle(mainCam.rotationX, 0f, ref xVelocity, smoothTime); mainCam.rotationY = Mathf.SmoothDampAngle(mainCam.rotationY, 0f, ref yVelocity, smoothTime); mainCam.camRotationX = mainCam.rotationX; mainCam.camRotationY = mainCam.rotationY; mainCam.transform.localEulerAngles = new Vector3(-mainCam.camRotationY, mainCam.camRotationX, 0); double threshold = 1; if (Mathf.Abs(mainCam.camRotationX) < threshold && Mathf.Abs(mainCam.camRotationY) < threshold) { cameraRelinquish(); resetCameraFlag = false; } // need to retain control in order to finish snapping back to center return(false); } // nothing from the key and the camera has been reset, so we don't need control //cameraRelinquish(); return(true); }
static bool Prefix(MainCameraControl __instance) { __instance.cameraUPTransform.localPosition = new Vector3(__instance.cameraUPTransform.localPosition.x, __instance.cameraUPTransform.localPosition.y, 0f); return(false); }