public static void LoadGame(GameSaving.GameSave loadedData) { GameSaving.ClearScene(); MySaveLoadedHook mySaveLoadedHook = new MySaveLoadedHook(loadedData); mySaveLoadedHook = MyHookSystem.executeHook <MySaveLoadedHook>(mySaveLoadedHook); if (mySaveLoadedHook.isCanceled()) { return; } Ref.planetManager.SwitchLocation(Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress), loadedData.vessels[loadedData.mainVesselId].globalPosition, false, true, 0.0); Ref.velocityOffset = loadedData.velocityOffset; Ref.controller.globalTime = loadedData.globalTime; Ref.controller.timewarpPhase = loadedData.timeWarpPhase; Ref.controller.startedTimewarpTime = loadedData.startedTimewapTime; Ref.timeWarping = (Ref.controller.timewarpPhase != 0); Ref.controller.SetCameraDistance(loadedData.camDistance); foreach (GameSaving.VesselSave vesselToLoad in loadedData.vessels) { GameSaving.LoadVessel(vesselToLoad); } Ref.planetManager.FullyLoadTerrain(Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress)); Ref.mainVessel = Ref.controller.vessels[loadedData.mainVesselId]; if (loadedData.selectedVesselId != -1) { Ref.map.SelectVessel(Ref.controller.vessels[loadedData.selectedVesselId], false); } Ref.map.UpdateVesselsMapIcons(); Ref.map.following = new OrbitLines.Target(Ref.GetPlanetByName(loadedData.mapFollowingAdress)); Ref.map.UpdateMapPosition(loadedData.mapPosition); Ref.map.UpdateMapZoom(-loadedData.mapPosition.z); Ref.map.ToggleMap(); if (Ref.mapView != loadedData.mapView) { Ref.map.ToggleMap(); } Ref.mainVessel.SetThrottle(Ref.mainVessel.throttle); Ref.map.DrawOrbitLines(); Ref.controller.RepositionFuelIcons(); Ref.controller.warpedTimeCounterUI.text = string.Empty; Ref.planetManager.UpdateAtmosphereFade(); Ref.mainVesselHeight = loadedData.vessels[loadedData.mainVesselId].globalPosition.magnitude2d - Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress).radius; Ref.mainVesselAngleToPlanet = (float)Math.Atan2(loadedData.vessels[loadedData.mainVesselId].globalPosition.y, loadedData.vessels[loadedData.mainVesselId].globalPosition.x) * 57.29578f; if (Ref.mainVesselHeight < Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress).cameraSwitchHeightM) { Ref.controller.camTargetAngle = Ref.mainVesselAngleToPlanet - 90f; } else { Ref.controller.camTargetAngle = 0f; } Ref.cam.transform.eulerAngles = new Vector3(0f, 0f, Ref.controller.camTargetAngle); Ref.controller.camAngularVelocity = 0f; }
public static void LoadGame(GameSaving.GameSave loadedData) { GameSaving.ClearScene(); Ref.planetManager.SwitchLocation(Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress), loadedData.vessels[loadedData.mainVesselId].globalPosition, false, true); Ref.velocityOffset = loadedData.velocityOffset; Ref.controller.globalTime = loadedData.globalTime; Ref.controller.timewarpPhase = loadedData.timeWarpPhase; Ref.controller.startedTimewarpTime = loadedData.startedTimewapTime; Ref.timeWarping = (Ref.controller.timewarpPhase != 0); Ref.controller.SetCameraDistance(loadedData.camDistance); foreach (GameSaving.VesselSave current in loadedData.vessels) { GameSaving.LoadVessel(current); } Ref.planetManager.FullyLoadTerrain(Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress)); Ref.mainVessel = Ref.controller.vessels[loadedData.mainVesselId]; Ref.selectedVessel = ((loadedData.selectedVesselId == -1) ? null : Ref.controller.vessels[loadedData.selectedVesselId]); Ref.map.UpdateVesselsMapIcons(); Ref.map.following = Ref.GetPlanetByName(loadedData.mapFollowingAdress); Ref.map.UpdateMapPosition(loadedData.mapPosition); Ref.map.UpdateMapZoom(-loadedData.mapPosition.z); Ref.map.ToggleMap(); if (Ref.mapView != loadedData.mapView) { Ref.map.ToggleMap(); } Ref.mainVessel.SetThrottle(Ref.mainVessel.throttle); Ref.map.UpdateVesselOrbitLines(new List <Orbit>(), true); Ref.controller.RepositionFuelIcons(); Ref.controller.warpedTimeCounterUI.text = string.Empty; if (Ref.map.transferWindow.target != null) { Ref.map.SelectCelestilaBodyTarget(Ref.map.transferWindow.target); } Ref.planetManager.UpdateAtmosphereFade(); Ref.mainVesselHeight = loadedData.vessels[loadedData.mainVesselId].globalPosition.magnitude2d - Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress).radius; Ref.mainVesselAngleToPlanet = (float)Math.Atan2(loadedData.vessels[loadedData.mainVesselId].globalPosition.y, loadedData.vessels[loadedData.mainVesselId].globalPosition.x) * 57.29578f; if (Ref.mainVesselHeight < Ref.GetPlanetByName(loadedData.vessels[loadedData.mainVesselId].adress).cameraSwitchHeightM) { Ref.controller.camTargetAngle = Ref.mainVesselAngleToPlanet - 90f; } else { Ref.controller.camTargetAngle = 0f; } Ref.cam.transform.eulerAngles = new Vector3(0f, 0f, Ref.controller.camTargetAngle); Ref.controller.camAngularVelocity = 0f; }