/// <summary> /// Add some camera height while planting a blueprint /// </summary> private void AdjustCameraHeight(On.GameCamera.orig_UpdateCamera orig, GameCamera self, float dt) { orig(self, dt); if (Player.m_localPlayer != null) { if (Player.m_localPlayer.InPlaceMode()) { if (Player.m_localPlayer.m_placementGhost) { var pieceName = Player.m_localPlayer.m_placementGhost.name; if (pieceName.StartsWith("make_blueprint")) { if (Input.GetKey(KeyCode.LeftShift)) { float minOffset = 0f; float maxOffset = 20f; if (Input.GetAxis("Mouse ScrollWheel") < 0f) { Instance.cameraOffsetMake = Mathf.Clamp(Instance.cameraOffsetMake += 1f, minOffset, maxOffset); } if (Input.GetAxis("Mouse ScrollWheel") > 0f) { Instance.cameraOffsetMake = Mathf.Clamp(Instance.cameraOffsetMake -= 1f, minOffset, maxOffset); } } self.transform.position += new Vector3(0, Instance.cameraOffsetMake, 0); } if (pieceName.StartsWith("piece_blueprint")) { if (Input.GetKey(KeyCode.LeftShift)) { // TODO: base min/max off of selected piece dimensions float minOffset = 2f; float maxOffset = 20f; if (Input.GetAxis("Mouse ScrollWheel") < 0f) { Instance.cameraOffsetPlace = Mathf.Clamp(Instance.cameraOffsetPlace += 1f, minOffset, maxOffset); } if (Input.GetAxis("Mouse ScrollWheel") > 0f) { Instance.cameraOffsetPlace = Mathf.Clamp(Instance.cameraOffsetPlace -= 1f, minOffset, maxOffset); } } self.transform.position += new Vector3(0, Instance.cameraOffsetPlace, 0); } } } } }
/// <summary> /// Add some camera height while planting a blueprint /// </summary> private void AdjustCameraHeight(On.GameCamera.orig_UpdateCamera orig, GameCamera self, float dt) { orig(self, dt); if (updateCamera && Player.m_localPlayer && Player.m_localPlayer.InPlaceMode() && Player.m_localPlayer.m_placementGhost) { var pieceName = Player.m_localPlayer.m_placementGhost.name; if (pieceName.StartsWith("make_blueprint") || pieceName.StartsWith("piece_blueprint")) { self.transform.position += new Vector3(0, Instance.cameraOffset, 0); } } }
internal static void UpdateCamera(On.GameCamera.orig_UpdateCamera orig, GameCamera self, float dt) { BlueprintManager.Instance.updateCamera = !Valheim_Build_Camera.Valheim_Build_Camera.InBuildMode(); orig(self, dt); BlueprintManager.Instance.updateCamera = true; }