internal static void CreateWPForLaunchSite(KKLaunchSite site) { FinePrint.Waypoint lsWP = new FinePrint.Waypoint(); //lsWP.altitude = selectedSite.staticInstance.surfaceHeight + 20f; lsWP.altitude = 0; lsWP.height = 20f; lsWP.isOnSurface = true; lsWP.latitude = site.staticInstance.RefLatitude; lsWP.longitude = site.staticInstance.RefLongitude; lsWP.name = site.LaunchSiteName; lsWP.celestialName = site.body.name; lsWP.isNavigatable = true; lsWP.navigationId = Guid.NewGuid(); lsWP.enableMarker = true; lsWP.fadeRange = site.body.Radius; lsWP.seed = site.LaunchSiteName.GetHashCode(); lsWP.isCustom = true; switch (site.sitecategory) { case LaunchSiteCategory.RocketPad: lsWP.id = "Squad/PartList/SimpleIcons/R&D_node_icon_heavierrocketry"; break; case LaunchSiteCategory.Runway: lsWP.id = "Squad/PartList/SimpleIcons/RDicon_aerospaceTech2"; break; case LaunchSiteCategory.Helipad: lsWP.id = "Squad/PartList/SimpleIcons/R&D_node_icon_landing"; break; default: lsWP.id = "custom"; break; } FinePrint.WaypointManager.AddWaypoint(lsWP); site.wayPoint = lsWP; }
public static void setSelectedSite(KKLaunchSite soSite) { selectedSite = soSite; }
public static KKLaunchSite getSelectedSite() { KKLaunchSite thisSite = selectedSite; return(thisSite); }
public void drawBaseManagerWindow(int windowID) { if (!layoutIsInitialized) { InitializeLayout(); layoutIsInitialized = true; } string sButtonName = ""; sButtonName = selectedSite.LaunchSiteName; if (selectedSite.LaunchSiteName == "Runway") { sButtonName = "KSC Runway"; } if (selectedSite.LaunchSiteName == "LaunchPad") { sButtonName = "KSC LaunchPad"; } GUILayout.BeginHorizontal(); { GUI.enabled = false; GUILayout.Button("-KK-", DeadButton, GUILayout.Height(21)); GUILayout.FlexibleSpace(); GUILayout.Button("Base Manager", DeadButton, GUILayout.Height(21)); GUILayout.FlexibleSpace(); GUI.enabled = true; if (HighLogic.LoadedScene != GameScenes.EDITOR) { if (GUILayout.Button("X", DeadButtonRed, GUILayout.Height(21))) { InputLockManager.RemoveControlLock("KKEditorLock"); selectedSite = null; this.Close(); return; } } } GUILayout.EndHorizontal(); GUILayout.Space(1); GUILayout.Box(tHorizontalSep, BoxNoBorder, GUILayout.Height(4)); GUILayout.Space(2); if (selectedSite.LaunchSiteName == "Runway") { GUILayout.Box("KSC Runway", Yellowtext); } else if (selectedSite.LaunchSiteName == "LaunchPad") { GUILayout.Box("KSC LaunchPad", Yellowtext); } else { GUILayout.Box("" + selectedSite.LaunchSiteName, Yellowtext); } if (!foldedIn) { GUILayout.Space(5); GUILayout.BeginHorizontal(); { GUILayout.Space(2); GUILayout.Box(tVerticalSep, BoxNoBorder, GUILayout.Width(4), GUILayout.Height(135)); GUILayout.FlexibleSpace(); GUILayout.Box(selectedSite.logo, BoxNoBorder, GUILayout.Height(135), GUILayout.Width(135)); GUILayout.FlexibleSpace(); GUILayout.Box(tVerticalSep, BoxNoBorder, GUILayout.Width(4), GUILayout.Height(135)); GUILayout.Space(2); } GUILayout.EndHorizontal(); GUILayout.Space(3); descriptionScrollPosition = GUILayout.BeginScrollView(descriptionScrollPosition, GUILayout.Height(120)); { GUI.enabled = false; GUILayout.Label(selectedSite.LaunchSiteDescription, LabelWhite); GUI.enabled = true; } GUILayout.EndScrollView(); } GUILayout.Space(1); isFavourite = (selectedSite.favouriteSite == "Yes"); GUILayout.BeginHorizontal(); { GUI.enabled = (!displayStats); if (GUILayout.Button("Stats", GUILayout.Height(23))) { displayLog = false; displayStats = true; } GUI.enabled = true; GUI.enabled = (!displayLog); if (GUILayout.Button("Log", GUILayout.Height(23))) { displayLog = true; displayStats = false; } GUI.enabled = true; if (isFavourite) { tFaveTemp = tIsFave; } else { tFaveTemp = tMakeFavourite; } if (GUILayout.Button(tFaveTemp, GUILayout.Height(23), GUILayout.Width(23))) { if (isFavourite) { selectedSite.favouriteSite = "No"; } else { selectedSite.favouriteSite = "Yes"; } } if (foldedIn) { tFolded = tFoldOut; } if (!foldedIn) { tFolded = tFoldIn; } if (GUILayout.Button(tFolded, GUILayout.Height(23), GUILayout.Width(23))) { if (foldedIn) { foldedIn = false; } else { foldedIn = true; } } } GUILayout.EndHorizontal(); GUILayout.Space(1); if (displayStats) { GUILayout.Label("Altitude: " + selectedSite.refAlt.ToString("#0.0") + " m", LabelInfo); GUILayout.Label("Longitude: " + selectedSite.refLon.ToString("#0.000"), LabelInfo); GUILayout.Label("Latitude: " + selectedSite.refLat.ToString("#0.000"), LabelInfo); GUILayout.Space(3); GUILayout.Label("Length: " + selectedSite.LaunchSiteLength.ToString("#0" + " m"), LabelInfo); GUILayout.Label("Width: " + selectedSite.LaunchSiteWidth.ToString("#0" + " m"), LabelInfo); GUILayout.FlexibleSpace(); } if (MiscUtils.isCareerGame()) { if (displayLog) { logScrollPosition = GUILayout.BeginScrollView(logScrollPosition, GUILayout.Height(120)); { Char csep = '|'; string[] sLogEntries = selectedSite.MissionLog.Split(csep); foreach (string sEntry in sLogEntries) { GUILayout.Label(sEntry, LabelInfo); } } GUILayout.EndScrollView(); GUILayout.FlexibleSpace(); } GUI.enabled = !selectedSite.isOpen; if (selectedSite.OpenCost > 0) { if (!KerbalKonstructs.instance.disableRemoteBaseOpening) { if (GUILayout.Button("Open Base for \n" + selectedSite.OpenCost + " funds", GUILayout.Height(38))) { double currentfunds = Funding.Instance.Funds; if (selectedSite.OpenCost > currentfunds) { MiscUtils.HUDMessage("Insufficient funds to open this base!", 10, 3); } else { selectedSite.SetOpen(); LaunchSiteManager.OpenLaunchSite(selectedSite); Funding.Instance.AddFunds(-selectedSite.OpenCost, TransactionReasons.Cheating); } } } } GUI.enabled = true; GUI.enabled = selectedSite.isOpen; if (selectedSite.CloseValue > 0) { if (GUILayout.Button("Close Base for \n" + selectedSite.CloseValue + " funds", GUILayout.Height(38))) { Funding.Instance.AddFunds(selectedSite.CloseValue, TransactionReasons.Cheating); LaunchSiteManager.CloseLaunchSite(selectedSite); selectedSite.SetClosed(); } } GUI.enabled = true; GUILayout.FlexibleSpace(); if (HighLogic.LoadedScene == GameScenes.EDITOR) { GUILayout.BeginHorizontal(); { if (selectedSite.LaunchSiteName == EditorLogic.fetch.launchSiteName) { tStatusLaunchsite = tSetLaunchsite; } else if (selectedSite.isOpen) { tStatusLaunchsite = tOpenedLaunchsite; } else { tStatusLaunchsite = tClosedLaunchsite; } GUILayout.Label(tStatusLaunchsite, GUILayout.Height(32), GUILayout.Width(32)); GUI.enabled = (selectedSite.isOpen) && !(selectedSite.LaunchSiteName == EditorLogic.fetch.launchSiteName); if (GUILayout.Button("Set as \nLaunchsite", GUILayout.Height(38))) { LaunchSiteManager.setLaunchSite(selectedSite); string smessage = sButtonName + " has been set as the launchsite"; MiscUtils.HUDMessage(smessage, 10, 0); } GUI.enabled = true; } GUILayout.EndHorizontal(); } } GUILayout.Space(3); GUILayout.Box(tHorizontalSep, BoxNoBorder, GUILayout.Height(4)); GUILayout.Space(1); GUI.DragWindow(new Rect(0, 0, 10000, 10000)); }
public static void setTargetSite(KKLaunchSite lsTarget, string sName = "") { lTargetSite = lsTarget; }
internal void SaveSettings() { bool addToDB = false; if (!selectedObject.hasLauchSites) { Log.Normal("Creating LaunchSite"); KKLaunchSite lsite = new KKLaunchSite(); selectedObject.launchSite = lsite; Log.Normal("created; lsite = " + lsite + "; launch site = " + selectedObject.launchSite); selectedObject.hasLauchSites = true; lsite.staticInstance = selectedObject; selectedObject.launchSite.body = selectedObject.CelestialBody; addToDB = true; } string oldName = selectedObject.launchSite.LaunchSiteName; LaunchSiteCategory oldCategory = category; bool oldState = selectedObject.launchSite.ILSIsActive; selectedObject.launchSite.LaunchSiteName = siteName; selectedObject.launchSite.LaunchSiteLength = float.Parse(stLength); selectedObject.launchSite.LaunchSiteWidth = float.Parse(stWidth); selectedObject.launchSite.LaunchSiteType = siteType; selectedObject.launchSite.LaunchPadTransform = siteTrans; selectedObject.launchSite.LaunchSiteDescription = siteDesc; selectedObject.launchSite.OpenCost = float.Parse(stOpenCost); selectedObject.launchSite.CloseValue = float.Parse(stCloseValue); selectedObject.launchSite.LaunchSiteIsHidden = bool.Parse(siteHidden); selectedObject.launchSite.ILSIsActive = bool.Parse(ILSActive); selectedObject.launchSite.LaunchSiteAuthor = siteAuthor; selectedObject.launchSite.refLat = (float)selectedObject.RefLatitude; selectedObject.launchSite.refLon = (float)selectedObject.RefLongitude; selectedObject.launchSite.refAlt = selectedObject.RadiusOffset; selectedObject.launchSite.sitecategory = category; selectedObject.launchSite.InitialCameraRotation = float.Parse(initialCameraRotation); if (ILSConfig.DetectNavUtils()) { Log.Normal("NavUtils detected"); Log.Debug("object: " + selectedObject); Log.Debug("launchsite: " + selectedObject.launchSite); Log.Debug("body: " + selectedObject.launchSite.body); bool regenerateILSConfig = false; Log.Debug("old name: " + oldName); Log.Debug("new name: " + selectedObject.launchSite.LaunchSiteName); if (oldName != null && !oldName.Equals(siteName)) { ILSConfig.RenameSite(selectedObject.launchSite.LaunchSiteName, siteName); regenerateILSConfig = true; } Log.Debug("old category: " + oldCategory); if ((oldCategory != category)) { ILSConfig.HandleCategoryChange(selectedObject); regenerateILSConfig = true; } bool state = bool.Parse(ILSActive); Log.Normal("new state: " + state + "; old state: " + oldState); if (oldState != state || regenerateILSConfig) { if (state) { ILSConfig.GenerateFullILSConfig(selectedObject); } else { ILSConfig.DropILSConfig(selectedObject.launchSite.LaunchSiteName, true); } } } if (addToDB) { selectedObject.launchSite.ParseLSConfig(selectedObject, null); selectedObject.SaveConfig(); EditorGUI.instance.enableColliders = true; selectedObject.ToggleAllColliders(true); LaunchSiteManager.RegisterLaunchSite(selectedObject.launchSite); } selectedObject.SaveConfig(); }
public void DrawSelectorWindow(int id) { GUILayout.BeginHorizontal(); { GUI.enabled = false; GUILayout.Button("-KK-", UIMain.DeadButton, GUILayout.Height(21)); GUILayout.FlexibleSpace(); GUILayout.Button("Launchsite Selector", UIMain.DeadButton, GUILayout.Height(21)); GUILayout.FlexibleSpace(); GUI.enabled = true; if (GUILayout.Button("X", UIMain.DeadButtonRed, GUILayout.Height(21))) { this.Close(); return; } } GUILayout.EndHorizontal(); GUILayout.Space(1); GUILayout.Box(UIMain.tHorizontalSep, UIMain.BoxNoBorder, GUILayout.Height(4)); GUILayout.Space(2); GUILayout.BeginHorizontal(); { GUILayout.Space(5); if (MiscUtils.isCareerGame()) { if (GUILayout.Button(new GUIContent(showOpen ? UIMain.tOpenBasesOn : UIMain.tOpenBasesOff, "Open"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { if (showOpen) { showOpen = false; showClosed = true; } else { showOpen = true; } } if (GUILayout.Button(new GUIContent(showClosed ? UIMain.tClosedBasesOn : UIMain.tClosedBasesOff, "Closed"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { if (showClosed) { showClosed = false; showOpen = true; } else { showClosed = true; } } GUILayout.FlexibleSpace(); } if (GUILayout.Button(new GUIContent(showFavOnly ? UIMain.tFavesOn : UIMain.tFavesOff, "Only Favourites"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { showFavOnly = !showFavOnly; } GUILayout.FlexibleSpace(); if (EditorDriver.editorFacility == EditorFacility.SPH) { GUI.enabled = false; } isSelected = (showAllcategorys || (category == LaunchSiteCategory.RocketPad)); if (GUILayout.Button(new GUIContent(isSelected? UIMain.tLaunchpadsOn : UIMain.tLaunchpadsOff, "Rocketpads"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { category = LaunchSiteCategory.RocketPad; showAllcategorys = false; } GUI.enabled = true; GUILayout.Space(2); if (EditorDriver.editorFacility == EditorFacility.VAB) { GUI.enabled = false; } isSelected = (showAllcategorys || (category == LaunchSiteCategory.RocketPad)); if (GUILayout.Button(new GUIContent(isSelected ? UIMain.tRunwaysOn : UIMain.tRunwaysOff, "Runways"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { category = LaunchSiteCategory.Runway; showAllcategorys = false; } GUI.enabled = true; GUILayout.Space(2); if (EditorDriver.editorFacility == EditorFacility.VAB) { GUI.enabled = false; } isSelected = (showAllcategorys || (category == LaunchSiteCategory.Helipad)); if (GUILayout.Button(new GUIContent(isSelected ? UIMain.tHelipadsOn: UIMain.tHelipadsOff, "Helipads"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { category = LaunchSiteCategory.Helipad; showAllcategorys = false; } GUI.enabled = true; GUILayout.Space(2); if (EditorDriver.editorFacility == EditorFacility.VAB) { GUI.enabled = false; } isSelected = (showAllcategorys || (category == LaunchSiteCategory.Waterlaunch)); if (GUILayout.Button(new GUIContent(isSelected ? UIMain.tWaterOn : UIMain.tWaterOff, "WalterLaunch"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { category = LaunchSiteCategory.Waterlaunch; showAllcategorys = false; } GUI.enabled = true; GUILayout.Space(2); isSelected = (showAllcategorys || (category == LaunchSiteCategory.Other)); if (GUILayout.Button(new GUIContent(isSelected ? UIMain.tOtherOn : UIMain.tOtherOff, "Other"), UIMain.ButtonKK, GUILayout.Width(32), GUILayout.Height(32))) { category = LaunchSiteCategory.Other; showAllcategorys = false; } GUILayout.FlexibleSpace(); if (GUILayout.Button("ALL", GUILayout.Width(32), GUILayout.Height(32))) { showAllcategorys = true; } } GUILayout.EndHorizontal(); GUILayout.Space(10); sitesScrollPosition = GUILayout.BeginScrollView(sitesScrollPosition); { foreach (KKLaunchSite site in LaunchSiteManager.allLaunchSites) { if (showFavOnly && (site.favouriteSite != "Yes")) { continue; } if (category != site.sitecategory && !showAllcategorys) { continue; } if (LaunchSiteManager.CheckLaunchSiteIsValid(site) == false) { continue; } if (MiscUtils.isCareerGame()) { if ((!showOpen && site.isOpen) || (!showClosed && !site.isOpen)) { continue; } // Don't show hidden closed Bases if (site.LaunchSiteIsHidden && (!site.isOpen)) { continue; } } GUILayout.BeginHorizontal(); { ShowOpenStatus(site); launchButtonName = site.LaunchSiteName; if (site.LaunchSiteName == "Runway") { launchButtonName = "KSC Runway"; } if (site.LaunchSiteName == "LaunchPad") { launchButtonName = "KSC LaunchPad"; } GUI.enabled = (selectedSite != site); if (GUILayout.Button(launchButtonName, GUILayout.Height(30))) { selectedSite = site; BaseManager.selectedSite = selectedSite; //if (!MiscUtils.isCareerGame()) //{ // LaunchSiteManager.setLaunchSite(site); // smessage = "Launchsite set to " + launchButtonName; // MiscUtils.HUDMessage(smessage, 10, 2); //} } GUI.enabled = true; ShowOpenStatus(site); } GUILayout.EndHorizontal(); } } GUILayout.EndScrollView(); GUILayout.Space(5); sCurrentSite = LaunchSiteManager.getCurrentLaunchSite(); switch (sCurrentSite) { case "Runway": GUILayout.Box("Current Launchsite: KSC Runway"); break; case "LaunchPad": GUILayout.Box("Current Launchsite: KSC LaunchPad"); break; default: GUILayout.Box("Current Launchsite: " + sCurrentSite); break; } GUI.enabled = (selectedSite.isOpen && (selectedSite.LaunchSiteName != sCurrentSite)); if (GUILayout.Button("Set as Launchsite", GUILayout.Height(46))) { LaunchSiteManager.setLaunchSite(selectedSite); MiscUtils.HUDMessage(selectedSite.LaunchSiteName + " has been set as the launchsite", 10, 0); } GUI.enabled = true; GUILayout.BeginHorizontal(); { GUI.enabled = false; if ((selectedSite.isOpen) && (EditorDriver.editorFacility == EditorFacility.SPH) && (KerbalKonstructs.instance.defaultSPHlaunchsite != selectedSite.LaunchSiteName)) { GUI.enabled = true; } if ((selectedSite.isOpen) && (EditorDriver.editorFacility == EditorFacility.VAB) && (KerbalKonstructs.instance.defaultVABlaunchsite != selectedSite.LaunchSiteName)) { GUI.enabled = true; } if (GUILayout.Button("Set as Default", GUILayout.Height(23))) { if (selectedSite != null) { MiscUtils.HUDMessage(selectedSite.LaunchSiteName + " has been set as the default", 10, 0); if (EditorDriver.editorFacility == EditorFacility.SPH) { KerbalKonstructs.instance.defaultSPHlaunchsite = selectedSite.LaunchSiteName; } if (EditorDriver.editorFacility == EditorFacility.VAB) { KerbalKonstructs.instance.defaultVABlaunchsite = selectedSite.LaunchSiteName; } } } GUI.enabled = true; if (GUILayout.Button("Use Default", GUILayout.Height(23))) { selectedSite = LaunchSiteManager.GetDefaultSite(); LaunchSiteManager.setLaunchSite(selectedSite); MiscUtils.HUDMessage(selectedSite.LaunchSiteName + " has been set as the launchsite", 10, 0); BaseManager.selectedSite = selectedSite; } } GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Box(UIMain.tHorizontalSep, UIMain.BoxNoBorder, GUILayout.Height(4)); GUILayout.Space(2); GUI.enabled = true; if (GUI.tooltip != "") { var labelSize = GUI.skin.GetStyle("Label").CalcSize(new GUIContent(GUI.tooltip)); GUI.Box(new Rect(Event.current.mousePosition.x, Event.current.mousePosition.y + 20, labelSize.x + 5, labelSize.y + 6), GUI.tooltip, UIMain.KKToolTip); } GUI.DragWindow(new Rect(0, 0, 10000, 10000)); }
public LaunchsiteItem(KKLaunchSite launchsite) { this.launchsite = launchsite; }
public void DrawLaunchsites() { displayingTooltip = false; body = PlanetariumCamera.fetch.target.GetReferenceBody(); bool isOpen = false; // Then do launchsites for (int index = 0; index < lauchSites.Length; index++) { launchSite = lauchSites[index]; // check if we should display the site or not this is the fastst check, so it shoud be first isOpen = launchSite.isOpen; if (!KerbalKonstructs.instance.mapShowHelipads && launchSite.sitecategory == LaunchSiteCategory.Helipad) { continue; } if (!KerbalKonstructs.instance.mapShowOther && (launchSite.sitecategory == LaunchSiteCategory.Other)) { continue; } if (!KerbalKonstructs.instance.mapShowWaterLaunch && (launchSite.sitecategory == LaunchSiteCategory.Waterlaunch)) { continue; } if (!KerbalKonstructs.instance.mapShowRocketbases && launchSite.sitecategory == LaunchSiteCategory.RocketPad) { continue; } if (!KerbalKonstructs.instance.mapShowRunways && launchSite.sitecategory == LaunchSiteCategory.Runway) { continue; } if (MiscUtils.isCareerGame()) { if (!KerbalKonstructs.instance.mapShowOpen && isOpen) { continue; } if (!KerbalKonstructs.instance.mapShowClosed && !isOpen) { continue; } // don't show hidden bases when closed if (launchSite.LaunchSiteIsHidden && !isOpen) { continue; } } launchSitePosition = (Vector3)launchSite.body.GetWorldSurfacePosition(launchSite.refLat, launchSite.refLon, launchSite.refAlt) - MapView.MapCamera.GetComponent <Camera>().transform.position; if (mapHideIconsBehindBody && IsOccluded(launchSitePosition, body)) { continue; } lsPosition = MapView.MapCamera.GetComponent <Camera>().WorldToScreenPoint(ScaledSpace.LocalToScaledSpace(launchSitePosition)); screenRect = new Rect((lsPosition.x - 8), (Screen.height - lsPosition.y) - 8, 16, 16); // Distance between camera and spawnpoint sort of float fPosZ = lsPosition.z; float fRadarRadius = 12800 / fPosZ; float fRadarOffset = fRadarRadius / 2; if (launchSite.icon != null) { if (fRadarRadius > 15) { GUI.DrawTexture(screenRect, launchSite.icon, ScaleMode.ScaleToFit, true); } } else { if (fRadarRadius > 15) { switch (launchSite.sitecategory) { case LaunchSiteCategory.RocketPad: GUI.DrawTexture(screenRect, UIMain.VABIcon, ScaleMode.ScaleToFit, true); break; case LaunchSiteCategory.Runway: GUI.DrawTexture(screenRect, UIMain.runWayIcon, ScaleMode.ScaleToFit, true); break; case LaunchSiteCategory.Helipad: GUI.DrawTexture(screenRect, UIMain.heliPadIcon, ScaleMode.ScaleToFit, true); break; case LaunchSiteCategory.Waterlaunch: GUI.DrawTexture(screenRect, UIMain.waterLaunchIcon, ScaleMode.ScaleToFit, true); break; default: GUI.DrawTexture(screenRect, UIMain.ANYIcon, ScaleMode.ScaleToFit, true); break; } } } // Tooltip if (!displayingTooltip && screenRect.Contains(Event.current.mousePosition)) { //Only display one tooltip at a time string sToolTip = ""; sToolTip = launchSite.LaunchSiteName; if (launchSite.LaunchSiteName == "Runway") { sToolTip = "KSC Runway"; } if (launchSite.LaunchSiteName == "LaunchPad") { sToolTip = "KSC LaunchPad"; } DisplayMapIconToolTip(sToolTip, lsPosition); // Select a base by clicking on the icon if (Event.current.type == EventType.mouseDown && Event.current.button == 0) { MiscUtils.HUDMessage("Selected base is " + sToolTip + ".", 5f, 3); BaseManager.setSelectedSite(launchSite); selectedSite = launchSite; NavGuidanceSystem.setTargetSite(selectedSite); BaseManager.instance.Open(); } } } }
void UseDefault() { selectedSite = LaunchSiteManager.GetDefaultSite(); SetLaunchsite(); }
void UpdateUI() { landingGuide.SetIsOnWithoutNotify(LandingGuideUI.instance.IsOpen()); navGuidance.SetIsOnWithoutNotify(NavGuidanceSystem.instance.IsOpen()); var Range = float.PositiveInfinity; //FIXME atmo scaling? other worlds? ... if (FlightGlobals.ActiveVessel.altitude > 75000) { center = null; noBasesBeacon.SetActive(true); noNearestBase.SetActive(false); nearestBaseGroup.SetActive(false); } else { center = StaticDatabase.GetClosestLaunchCenter();; if (center == null) { noBasesBeacon.SetActive(false); noNearestBase.SetActive(true); nearestBaseGroup.SetActive(false); } else { noBasesBeacon.SetActive(false); noNearestBase.SetActive(false); nearestBaseGroup.SetActive(true); Vector3 vPosition = FlightGlobals.ActiveVessel.GetTransform().position; ngsSite = LaunchSiteManager.getNearestBase(center, vPosition); Range = Vector3.Distance(center.gameObject.transform.position, vPosition); string info; if (Range < 10000) { info = center.Group + " at " + Range.ToString("#0.0") + " m"; } else { info = center.Group + " at " + (Range / 1000).ToString("#0.0") + " km"; } nearestBase.Info(info); bool ngs = NavGuidanceSystem.instance.IsOpen(); ngsFiller.SetActive(!ngs); setNGSTarget.SetActive(ngs); } } if (!MiscUtils.isCareerGame()) { careerGroup.SetActive(false); } else { careerGroup.SetActive(true); if (!FlightGlobals.ActiveVessel.Landed || Range > 5000) { //FIXME a bouncy landing will be laggy if (launchsiteItems.Count > 0) { launchsiteItems.Clear(); UIKit.UpdateListContent(launchsiteItems); } basesCanBeOpened.SetActive(true); openSite.SetActive(false); siteIsOpen.SetActive(false); siteCannoteBeOpened.SetActive(false); } else { basesCanBeOpened.SetActive(false); if (launchsiteItems.Count != center.launchsites.Count) { BuildLaunchsites(); } UpdateLaunchsite(); } //if (Range > 100000) //{ // if (bLanded) // { // GUILayout.Box(tHorizontalSep, BoxNoBorder, GUILayout.Height(4)); // GUILayout.Space(2); // GUILayout.Label("This feature is WIP.", LabelInfo); // GUI.enabled = false; // if (GUILayout.Button("Found a New Base", GUILayout.Height(23))) // { // foundingBase = true; // } // GUI.enabled = true; // GUILayout.Box(tHorizontalSep, BoxNoBorder, GUILayout.Height(4)); // GUILayout.Space(2); // } //} //else //{ // GUILayout.Label("This feature is WIP.", LabelInfo); //} } UpdateFaclilitiesGroup(); }
void OnLaunchsiteSelected(LaunchsiteItem site) { selectedSite = site.launchsite; UpdateUI(); }