private void Start() { try { this.subWaterModel = GameDatabase.Instance.GetModel("Maritime Pack/Dome/Sub/model"); } catch { MPLog.Writelog("[Maritime Pack] Problem locating SubWaterLayer!"); } if (this.subWaterModel != null) { this.subWaterModel.SetActive(false); } else { MPLog.Writelog("[Maritime Pack ] One of the underwater environment models are not loading!"); } if (UnderwaterCamera.ManualControl) { try { UnderwaterCamera.RestoreCameraParent(); } catch (Exception) { MPLog.Writelog("[Maritime Pack ] Startup no active camera parent"); } UnderwaterCamera.ManualControl = false; } }
public void Update() { if (!SubFound || FlightGlobals.ActiveVessel == null) { return; } //Camera Switch if (FlightGlobals.ActiveVessel.altitude <= -2.0 && MPUnderwaterCamera.active) { try { if (UnderwaterCamera.ManualControl && (CameraManager.Instance.currentCameraMode == CameraManager.CameraMode.IVA || CameraManager.Instance.currentCameraMode == CameraManager.CameraMode.Internal)) // Exit when IVA too { UnderwaterCamera.RestoreCameraParent(); return; } } catch (Exception) { MPLog.Writelog("[Maritime Pack] RestoreCameraParent Exception!"); return; } if (!UnderwaterCamera.ManualControl) { try { UnderwaterCamera.SetCameraParent(); MPLog.Writelog("[Maritime Pack] Setting Camera Parent"); } catch (Exception ex) { print("[Maritime Pack] Set Camera Exception!"); print(ex.Message); } try { UnderwaterCamera.ManualControl = true; cameraManualControl(); MPLog.Writelog("[Maritime Pack] Camera Manual Control Activated"); } catch (Exception ex) { MPLog.Writelog("[Maritime Pack] Camera Manual Control Exception!"); print(ex.Message); } } else { if (FlightCamera.fetch.enabled) { new WaitForEndOfFrame(); cameraManualControl(); } } } else { if (UnderwaterCamera.ManualControl) { try { UnderwaterCamera.RestoreCameraParent(); } catch (Exception ex) { MPLog.Writelog("[Maritime Pack] Restore Camera Parent Exception!"); print(ex.Message); } } } //End Camera Switch }