protected void SettingsGUI(int windowID) { GUILayout.BeginVertical(GUILayout.Width(SETTINGS_WIDTH)); // Distance calculation method GUILayout.Label("Distance calculation", headingStyle); GUIContent guiContent = new GUIContent("Lateral", "Calculates distance as the horizontal distance only. Useful if you're looking to hit a landing spot exactly."); if (GUILayout.Toggle(Config.distanceCalcMethod == Config.DistanceCalcMethod.LATERAL, guiContent)) { Config.distanceCalcMethod = Config.DistanceCalcMethod.LATERAL; } guiContent = new GUIContent("Straight line", "Calculates distance in a direct line."); if (GUILayout.Toggle(Config.distanceCalcMethod == Config.DistanceCalcMethod.STRAIGHT_LINE, guiContent)) { Config.distanceCalcMethod = Config.DistanceCalcMethod.STRAIGHT_LINE; } guiContent = new GUIContent("Compromise", "Uses lateral distance if the vessel and waypoint altitude are relatively close, otherwise uses straight line distance."); if (GUILayout.Toggle(Config.distanceCalcMethod == Config.DistanceCalcMethod.COMPROMISE, guiContent)) { Config.distanceCalcMethod = Config.DistanceCalcMethod.COMPROMISE; } // In-Flight Waypoints :) GUILayout.Label("Waypoints to display in-flight", headingStyle); guiContent = new GUIContent("All", "Display all waypoints on the given celestial body while in flight."); if (GUILayout.Toggle(Config.waypointDisplay == Config.WaypointDisplay.ALL, guiContent)) { Config.waypointDisplay = Config.WaypointDisplay.ALL; } guiContent = new GUIContent("Active", "Display only the active waypoint while in flight."); if (GUILayout.Toggle(Config.waypointDisplay == Config.WaypointDisplay.ACTIVE, guiContent)) { Config.waypointDisplay = Config.WaypointDisplay.ACTIVE; } guiContent = new GUIContent("None", "Do not display any waypoints while in flight."); if (GUILayout.Toggle(Config.waypointDisplay == Config.WaypointDisplay.NONE, guiContent)) { Config.waypointDisplay = Config.WaypointDisplay.NONE; } // HUD GUILayout.Label("Values to display below altimeter", headingStyle); if (GUILayout.Toggle(Config.hudDistance, "Distance to target") != Config.hudDistance) { Config.hudDistance = !Config.hudDistance; } if (GUILayout.Toggle(Config.hudTime, "Time to target") != Config.hudTime) { Config.hudTime = !Config.hudTime; } if (GUILayout.Toggle(Config.hudHeading, "Heading to target") != Config.hudHeading) { Config.hudHeading = !Config.hudHeading; } if (GUILayout.Toggle(Config.hudAngle, "Glide slope angles") != Config.hudAngle) { Config.hudAngle = !Config.hudAngle; } // Display style GUILayout.Label("Location display style", headingStyle); if (GUILayout.Toggle(!Config.displayDecimal, "Degrees/Minutes/Seconds") == Config.displayDecimal) { Config.displayDecimal = false; } if (GUILayout.Toggle(Config.displayDecimal, "Decimal") != Config.displayDecimal) { Config.displayDecimal = true; } // Toolbar if (ToolbarManager.ToolbarAvailable) { GUILayout.Label("Toolbar Display", headingStyle); if (GUILayout.Toggle(Config.useStockToolbar, "Show icon in stock toolbar") != Config.useStockToolbar) { Config.useStockToolbar = !Config.useStockToolbar; if (Config.useStockToolbar) { SetupToolbar(); } else { TeardownToolbar(GameScenes.FLIGHT); } } } // Opacity GUILayout.Label("Waypoint Opacity", headingStyle); Config.opacity = GUILayout.HorizontalSlider(Config.opacity, 0.3f, 1.0f); if (GUILayout.Button(new GUIContent("Export Custom Waypoints", "Exports the custom waypoints to GameData/WaypointManager/CustomWaypoints.cfg"))) { CustomWaypoints.Export(); } if (GUILayout.Button(new GUIContent("Import Custom Waypoints", "Imports the custom waypoints from GameData/WaypointManager/CustomWaypoints.cfg"))) { CustomWaypoints.Import(); } GUILayout.EndVertical(); GUI.DragWindow(); SetToolTip(1); }
protected void SettingsGUI(int windowID) { GUILayout.BeginVertical(GUILayout.Width(SETTINGS_WIDTH)); // Distance calculation method GUILayout.Label("Distance calculation", headingStyle); GUIContent guiContent = new GUIContent("Lateral", "Calculates distance as the horizontal distance only. Useful if you're looking to hit a landing spot exactly."); if (GUILayout.Toggle(Config.distanceCalcMethod == Config.DistanceCalcMethod.LATERAL, guiContent)) { Config.distanceCalcMethod = Config.DistanceCalcMethod.LATERAL; } guiContent = new GUIContent("Straight line", "Calculates distance in a direct line."); if (GUILayout.Toggle(Config.distanceCalcMethod == Config.DistanceCalcMethod.STRAIGHT_LINE, guiContent)) { Config.distanceCalcMethod = Config.DistanceCalcMethod.STRAIGHT_LINE; } guiContent = new GUIContent("Compromise", "Uses lateral distance if the vessel and waypoint altitude are relatively close, otherwise uses straight line distance."); if (GUILayout.Toggle(Config.distanceCalcMethod == Config.DistanceCalcMethod.COMPROMISE, guiContent)) { Config.distanceCalcMethod = Config.DistanceCalcMethod.COMPROMISE; } // In-Flight Waypoints :) GUILayout.Label("Waypoints to display in-flight", headingStyle); guiContent = new GUIContent("All", "Display all waypoints on the given celestial body while in flight."); if (GUILayout.Toggle(Config.waypointDisplay == Config.WaypointDisplay.ALL, guiContent)) { Config.waypointDisplay = Config.WaypointDisplay.ALL; } guiContent = new GUIContent("Active", "Display only the active waypoint while in flight."); if (GUILayout.Toggle(Config.waypointDisplay == Config.WaypointDisplay.ACTIVE, guiContent)) { Config.waypointDisplay = Config.WaypointDisplay.ACTIVE; } guiContent = new GUIContent("None", "Do not display any waypoints while in flight."); if (GUILayout.Toggle(Config.waypointDisplay == Config.WaypointDisplay.NONE, guiContent)) { Config.waypointDisplay = Config.WaypointDisplay.NONE; } // HUD GUILayout.Label("Values to display below altimeter", headingStyle); if (GUILayout.Toggle(Config.hudDistance, "Distance to target") != Config.hudDistance) { Config.hudDistance = !Config.hudDistance; } if (GUILayout.Toggle(Config.hudTime, "Time to target") != Config.hudTime) { Config.hudTime = !Config.hudTime; } if (GUILayout.Toggle(Config.hudHeading, "Heading to target") != Config.hudHeading) { Config.hudHeading = !Config.hudHeading; } if (GUILayout.Toggle(Config.hudAngle, "Glide slope angles") != Config.hudAngle) { Config.hudAngle = !Config.hudAngle; } // Display style GUILayout.Label("Location display style", headingStyle); if (GUILayout.Toggle(!Config.displayDecimal, "Degrees/Minutes/Seconds") == Config.displayDecimal) { Config.displayDecimal = false; } if (GUILayout.Toggle(Config.displayDecimal, "Decimal") != Config.displayDecimal) { Config.displayDecimal = true; } // Opacity GUILayout.Label("Waypoint Opacity", headingStyle); GUILayout.BeginHorizontal(); Config.opacity = GUILayout.HorizontalSlider(Config.opacity, 0.3f, 1.0f); GUILayout.Space(5); if (GUILayout.Button("Reset", GUILayout.Width(50))) { Config.opacity = 1.0f; } GUILayout.EndHorizontal(); if (GUILayout.Button(new GUIContent("Export Custom Waypoints", "Exports the custom waypoints to GameData/WaypointManager/CustomWaypoints.cfg"))) { CustomWaypoints.Export(); } if (importExportWindow == null) { if (GUILayout.Button(new GUIContent("Import Custom Waypoints", "Imports the custom waypoints from GameData/WaypointManager/CustomWaypoints.cfg"))) { if (importExportWindow == null) { importExportWindow = gameObject.AddComponent <ImportExport>(); } //CustomWaypoints.Import(); } } else { if (GUILayout.Button(new GUIContent("Cancel Import of Custom Waypoints", "Cancels the import of custom waypoints from GameData/WaypointManager/CustomWaypoints.cfg"))) { Destroy(importExportWindow); } } GUILayout.Label("UI Scaling (" + (Config.scaling * 100).ToString("F0") + "%)", headingStyle); GUILayout.BeginHorizontal(); Config.scaling = GUILayout.HorizontalSlider(Config.scaling, 0.8f, 1.5f); GUILayout.Space(5); if (GUILayout.Button("Reset", GUILayout.Width(50))) { Config.scaling = 1.0f; } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUI.DragWindow(); SetToolTip(1); }