diff --git a/.gitignore b/.gitignore index 32ddd07..12cd04e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,6 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. -# Vim swap files -.*.swp - # User-specific files *.suo *.user @@ -13,17 +10,12 @@ [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ -[Rr]eleases/ x64/ -x86/ build/ bld/ [Bb]in/ [Oo]bj/ -# Roslyn cache directories -*.ide/ - # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* @@ -99,6 +91,7 @@ _TeamCity* *.dotCover # NCrunch +*.ncrunch* _NCrunch_* .*crunch*.local.xml @@ -128,19 +121,15 @@ publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# If using the old MSBuild-Integrated Package Restore, uncomment this: -#!**/packages/repositories.config + +# NuGet Packages Directory +packages/ +## TODO: If the tool you use requires repositories.config uncomment the next line +#!packages/repositories.config + +# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets +# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented) +!packages/build/ # Windows Azure Build Output csx/ @@ -165,9 +154,8 @@ node_modules/ # RIA/Silverlight projects Generated_Code/ -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML @@ -184,3 +172,64 @@ UpgradeLog*.htm # Microsoft Fakes FakesAssemblies/ + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Icon must ends with two \r. +Icon + +# Thumbnails +._* + +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + + +# Windows +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# +# Vim files +# +*~ +*.swp +*.dll +*.pdb +.vs diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..b13c006 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,7 @@ +{ + "ExpandedNodes": [ + "" + ], + "SelectedNode": "\\WaypointManager.sln", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/WaypointManager/config/applicationhost.config b/.vs/WaypointManager/config/applicationhost.config new file mode 100644 index 0000000..b42cd34 --- /dev/null +++ b/.vs/WaypointManager/config/applicationhost.config @@ -0,0 +1,1030 @@ + + + + + + + + +
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.vs/WaypointManager/project-colors.json b/.vs/WaypointManager/project-colors.json new file mode 100644 index 0000000..ff9839a --- /dev/null +++ b/.vs/WaypointManager/project-colors.json @@ -0,0 +1,21 @@ +{ + "Version": 1, + "ProjectMap": { + "c2c97615-1b94-4a31-9a68-042f6457403e": { + "ProjectGuid": "c2c97615-1b94-4a31-9a68-042f6457403e", + "DisplayName": "WaypointManager", + "ColorIndex": 0 + }, + "e9463310-6814-47f6-8fbe-881501c4309c": { + "ProjectGuid": "e9463310-6814-47f6-8fbe-881501c4309c", + "DisplayName": "Solution Items", + "ColorIndex": 1 + }, + "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3": { + "ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3", + "DisplayName": "Miscellaneous Files", + "ColorIndex": -1 + } + }, + "NextColorIndex": 2 +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000..e26a0f2 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/BUGS.txt b/BUGS.txt new file mode 100644 index 0000000..174ddc6 --- /dev/null +++ b/BUGS.txt @@ -0,0 +1,2 @@ +BUGS + diff --git a/Changelog.txt b/Changelog.txt new file mode 100644 index 0000000..dc23a58 --- /dev/null +++ b/Changelog.txt @@ -0,0 +1,98 @@ +Changelog + +2.8.4.7 + Updated fix to not show invalid waypoints on the Sun + +2.8.4.6 + Thanks to github user @Clayell for this: + Edit a GUI label that is not specific to custom waypoints removing the "custom" since it's not related to custom waypoints + Added to bypass a Kopernicus error where it puts invalid waypoints into the system + +2.8.4.5 + Added option to display Waypoint Coordinates, based on code from github user @David Shade + +2.8.4.4 + Updated text in Settings window re. dragging the Nav Window + Small optimization regarding initializing styles, eliminating an extra function call during OnGUI + Fixed nav window initialization (was not setting background/opacity upon startup) + +2.8.4.3 + Thanks to github user @eminterrupted for finding this bug: + displayOpacity was being read incorrectly from the saved config, causing the display background opacity to be reset to 50% every game restart + Added text to config window explaining how to drag the nav window + Updated version file to use github for version info + +2.8.4.2 + Fixed Next flight without changing any settings, grey background is absent + Multiple initializions are needed because KSP/Unity is stupid and loses the background texture between scenes + Added ability to control the grey scale of the display background + Adjusted display lines to not overlap + +2.8.4.1 + Fixed setting window not displaying (unintended sideeffect of the previous update) + Added colored background (grey) for onscreen display (controllable via slider in settings window) + +2.8.4 + Added ability to drag the onscreen live display of status to anywhere on screen (need to hold down either left or right control screen) + Added reset button to settings page to reset the position of the live display to the default + cleaned up some really old code + +2.8.3.5 + Fixed path for loading files (broken by new launcher) + +2.8.3.4 + Fixed memory leak caused by the WaypointManagerGameEvents being unloaded + +2.8.3.3 + Added AssemblyFileVersion + Updated version file for 1.12 + Fixed custom icons + +2.8.3.1 + Fixed loading of contract icons + Optimized display of onscreen text + Fixed display of onscreen text position & removed word wrapping + +2.8.3 + Added new dependency, SpacetuxLibrary + Changed Debug.Log methods to Log.Info + Added UI Scaling + +2.8.2.7 + Fixed modname on the toolbar button + +2.8.2.6 + Removed extra .version file + +2.8.2.5 + Updated coordinates & altitude for the Armstrong Memorial + +2.8.2.4 + Another error in version file, was https instead of http + +2.8.2.3 + Fixed version file + +2.8.2.2 + Added page to select import of custom waypoints + Patchmanager configs removed + Moved icons into PluginData + Changed loading of icons to Toolbarcontroller.LoadImageFromFile + Added selection window to load custom waypoints + Split big CustomWaypoints.InterestingSites.cfg into planet specific files + +2.8.2.1 + Added custom landing site configs, make active using PatchManager and then import into WaypointManager + +2.8.2 + Adoption by LinuxGuruGamer + Added support for ToolbarController + Added support for ClickThroughBlocker + Patch from github user @SumGuyTwitches: + fix kraken location off by 8 degrees + Patch from Github user @taniwha: + Use dateTimeFormatter for time period lengths + + Fixed RSS compatibility with changes listed in this issue on Github: + https://github.com/jrossignol/WaypointManager/issues/59 + diff --git a/CustomWaypoints/CustomWaypoints.InterestingPlaces.cfg b/CustomWaypoints/CustomWaypoints.InterestingPlaces.cfg index 9413bbd..77c9bdb 100644 --- a/CustomWaypoints/CustomWaypoints.InterestingPlaces.cfg +++ b/CustomWaypoints/CustomWaypoints.InterestingPlaces.cfg @@ -174,11 +174,11 @@ WAYPOINT { name = Armstrong Monument celestialName = Mun - latitude = 0.70269999999999999 - longitude = 22.747 + latitude = 0.703 + longitude = 22.7465 navigationId = 85b49f1e-7576-4c77-bb90-85b3ac62c91c icon = custom - altitude = 2.2737367544323206E-13 + altitude = 568 index = 18 seed = 1197 } @@ -678,7 +678,7 @@ WAYPOINT { name = Space Kraken celestialName = Bop - latitude = 60.435555559999997 + latitude = 68.435555559999997 longitude = 117.02527778 navigationId = cedb4799-9cf7-4629-9f41-bcc47b733247 icon = thermometer diff --git a/GameData/WaypointManager/CelestialBodies.cfg b/GameData/WaypointManager/CelestialBodies.cfg index 19a0203..c37dd4c 100644 --- a/GameData/WaypointManager/CelestialBodies.cfg +++ b/GameData/WaypointManager/CelestialBodies.cfg @@ -8,5 +8,5 @@ WAYPOINT_MANAGER_BODIES { name = default - url = WaypointManager/icons/CelestialBodies + url = WaypointManager/PluginData/icons/CelestialBodies } diff --git a/GameData/WaypointManager/CustomIcons.cfg b/GameData/WaypointManager/CustomIcons.cfg index 25e10a1..ade5e6e 100644 --- a/GameData/WaypointManager/CustomIcons.cfg +++ b/GameData/WaypointManager/CustomIcons.cfg @@ -5,5 +5,5 @@ WAYPOINT_MANAGER_ICONS { name = WaypointManager - url = WaypointManager/icons/Custom + url = WaypointManager/PluginData/icons } diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Bop.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Bop.cfg new file mode 100644 index 0000000..610a2b4 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Bop.cfg @@ -0,0 +1,52 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Large Orange Circle + celestialName = Bop + latitude = 4.7400000000000002 + longitude = -72.769999999999996 + navigationId = 7d860c42-e129-4efa-875f-df496be98762 + icon = custom + altitude = 3.1263880373444408E-13 + index = 55 + seed = 37 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Bop + latitude = 23.8733 + longitude = -64.566699999999997 + navigationId = 96f0dd67-ecb0-43b4-aedb-5f8419c8362c + icon = pressure + altitude = 2.7966962079517543E-11 + index = 56 + seed = 159 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Bop + latitude = 37.584200000000003 + longitude = -139.27369999999999 + navigationId = 82bf0ff5-1117-483e-a0a2-7627b49f69c2 + icon = pressure + altitude = 1.8189894035458601E-12 + index = 57 + seed = 105 +} +WAYPOINT +{ + name = Space Kraken + celestialName = Bop + latitude = 68.435555559999997 + longitude = 117.02527778 + navigationId = cedb4799-9cf7-4629-9f41-bcc47b733247 + icon = thermometer + altitude = -1.8189894035458565E-12 + index = 65 + seed = 426 +} +WAYPOINT diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Dres.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Dres.cfg new file mode 100644 index 0000000..5b086f4 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Dres.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Highest Elevation + celestialName = Dres + latitude = -85.001199999999997 + longitude = 42.637900000000002 + navigationId = ca6e0206-e362-4b86-b55c-99480126b562 + icon = pressure + altitude = -3.5988989566249074E-12 + index = 45 + seed = 972 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Dres + latitude = 19.017330000000001 + longitude = -57.139899999999997 + navigationId = 5bfc97f3-4d57-453d-916a-5a5a5f92b57c + icon = pressure + altitude = -1.06581410364015E-14 + index = 46 + seed = 972 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Duna.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Duna.cfg new file mode 100644 index 0000000..5b48681 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Duna.cfg @@ -0,0 +1,75 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Highest Elevation + celestialName = Duna + latitude = 20.885000000000002 + longitude = -106.79810000000001 + navigationId = a864de06-27fe-452f-bf34-981b2113ae73 + icon = pressure + altitude = 0 + index = 37 + seed = 16 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Duna + latitude = -5.9436 + longitude = -50.548099999999998 + navigationId = ae709377-a5cb-4b4f-b667-ba529cc7e253 + icon = pressure + altitude = -2.7000623958883802E-13 + index = 38 + seed = 77 +} +WAYPOINT +{ + name = Cyduna Face + celestialName = Duna + latitude = 17.048300000000001 + longitude = -85.471699999999998 + navigationId = 6b27e7ed-a143-47f0-a8a4-196083383aab + icon = custom + altitude = 6.8212102632969618E-13 + index = 39 + seed = 665 +} +WAYPOINT +{ + name = Alien Camera + celestialName = Duna + latitude = -30.352499999999999 + longitude = -28.6828 + navigationId = 02334b66-5cd6-4a41-83b7-055627e944ba + icon = custom + altitude = -1.9895196601282805E-13 + index = 40 + seed = 37 +} +WAYPOINT +{ + name = SSTV Hill + celestialName = Duna + latitude = -66.134399999999999 + longitude = -160.7432 + navigationId = 201424b1-dda6-45e6-947e-b8e35e9794ba + icon = custom + altitude = 0 + index = 41 + seed = 269 +} +WAYPOINT +{ + name = Ike Zenith + celestialName = Duna + latitude = 0 + longitude = 6 + navigationId = 85ffab91-f80b-46f1-ae2e-d9679250bb69 + icon = dish + altitude = 0 + index = 44 + seed = 569 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Eeloo.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Eeloo.cfg new file mode 100644 index 0000000..50429ea --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Eeloo.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Highest Elevation + celestialName = Eeloo + latitude = 24.334700000000002 + longitude = 27.9602 + navigationId = 8c40f4bc-513c-4b26-a4ff-bc53e5d2975b + icon = pressure + altitude = -3.6379788070917101E-12 + index = 60 + seed = 1293 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Eeloo + latitude = 51.778599999999997 + longitude = -32.288800000000002 + navigationId = afca125c-6590-4206-9858-2597fd7cb16e + icon = pressure + altitude = -386.88580000000002 + index = 61 + seed = 1375 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Eve.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Eve.cfg new file mode 100644 index 0000000..8772432 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Eve.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Highest Elevation + celestialName = Eve + latitude = -25.015899999999998 + longitude = -158.45580000000001 + navigationId = df42fa13-cb8e-4306-a7cb-6f81bc5787ca + icon = pressure + altitude = 3.6379788070917101E-12 + index = 33 + seed = 876 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Eve + latitude = -44.747300000000003 + longitude = -107.8528 + navigationId = 43ef7049-05aa-49bf-8010-6d68dd0863ae + icon = pressure + altitude = -1876.8985 + index = 34 + seed = 904 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Gilly.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Gilly.cfg new file mode 100644 index 0000000..6f0a3f6 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Gilly.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Lowest Elevation + celestialName = Gilly + latitude = 56.7883 + longitude = -7.2400000000000002 + navigationId = 78240bc6-495d-4791-8772-7ad64876ebf7 + icon = pressure + altitude = -6.8212102632969598E-13 + index = 35 + seed = 679 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Gilly + latitude = -29.256599999999999 + longitude = -123.8708 + navigationId = 986c230f-10ec-40e1-82b6-bd085acac186 + icon = pressure + altitude = 2.7284841053187799E-12 + index = 36 + seed = 501 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Ike.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Ike.cfg new file mode 100644 index 0000000..c149cd4 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Ike.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Highest Elevation + celestialName = Ike + latitude = 25.279499999999999 + longitude = 178.2971 + navigationId = 217d4365-f02c-4c2a-848e-ad5c75bf63b1 + icon = pressure + altitude = -4.0017766878008797E-11 + index = 42 + seed = 51 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Ike + latitude = -14.425000000000001 + longitude = 25.455300000000001 + navigationId = 13426c20-bbb6-46dc-801b-b9bb60a588c4 + icon = pressure + altitude = -4.5474735088646412E-13 + index = 43 + seed = 808 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.InterestingPlaces.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.InterestingPlaces.cfg new file mode 100644 index 0000000..26266af --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.InterestingPlaces.cfg @@ -0,0 +1,1372 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints. + +WAYPOINT +{ + name = North Station One Tracking Station + celestialName = Kerbin + latitude = 63.095084361794797 + longitude = -90.079893279056407 + navigationId = 80698255-4e2f-4c14-88d5-7a0faeca3ab9 + icon = dish + altitude = 2.7284841053187847E-12 + index = 0 + seed = 51 +} +WAYPOINT +{ + name = Harvester Massif Tracking Station + celestialName = Kerbin + latitude = -11.9501036949728 + longitude = 33.740039782730598 + navigationId = 60053bff-d21f-4570-b8b3-e73cfea1bf26 + icon = dish + altitude = 4.3078600020335216 + index = 1 + seed = 358 +} +WAYPOINT +{ + name = Crater Rim Tracking Station + celestialName = Kerbin + latitude = 9.4500575394183706 + longitude = -172.11006586553799 + navigationId = d2f734ce-52f3-4dff-9d04-3b51940fb877 + icon = dish + altitude = -2.7284841053187847E-12 + index = 5 + seed = 808 +} +WAYPOINT +{ + name = Baikerbanur Tracking Station + celestialName = Kerbin + latitude = 20.681019179238699 + longitude = -146.50146247265101 + navigationId = ec0d87b9-4371-42d1-8bc1-0031b17fcf4e + icon = dish + altitude = 11.482591688283833 + index = 6 + seed = 241 +} +WAYPOINT +{ + name = Mesa South Tracking Station + celestialName = Kerbin + latitude = -59.590011134603699 + longitude = -25.869794095014601 + navigationId = e3b35deb-8fe5-4864-8d27-1698097b98f3 + icon = dish + altitude = 4.3227068297583173 + index = 7 + seed = 583 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Kerbin + latitude = 61.578400000000002 + longitude = 46.3733 + navigationId = d782c960-172d-4d5a-8743-9548c8a55e86 + icon = pressure + altitude = 3.637978807091713E-12 + index = 8 + seed = 651 +} +WAYPOINT +{ + name = Eastern Monolith + celestialName = Kerbin + latitude = -28.808299999999999 + longitude = -13.440099999999999 + navigationId = 1d620c17-aa6f-4492-bdb7-b72d01adae00 + icon = custom + altitude = 4.5474735088646412E-12 + index = 9 + seed = 91 +} +WAYPOINT +{ + name = Hidden Valley Monolith + celestialName = Kerbin + latitude = 35.570510763646503 + longitude = -74.977286738143405 + navigationId = 4d433a4d-60e1-42d6-b92e-424005c34705 + icon = custom + altitude = 0.46431883214927439 + index = 10 + seed = 9 +} +WAYPOINT +{ + name = Western Monolith + celestialName = Kerbin + latitude = -0.64011062426790699 + longitude = -80.766738375291098 + navigationId = a6803f1b-ca9a-43e9-98bd-b6cb321f6ab6 + icon = custom + altitude = 15.919417221052754 + index = 11 + seed = 426 +} +WAYPOINT +{ + name = Deepest Depth + celestialName = Kerbin + latitude = -28.905000000000001 + longitude = -83.111599999999996 + navigationId = 78bfd3da-a544-40bd-aecd-d61c24dde4aa + icon = pressure + altitude = -1390.9353000000001 + index = 12 + seed = 248 +} +WAYPOINT +{ + name = Tut-Ur Jeb-Ahn + celestialName = Kerbin + latitude = -6.5056566716276301 + longitude = -141.68561514627001 + navigationId = 963243d9-2f0b-47c1-8f6a-e73efeea4436 + icon = eva + altitude = 64.3599999999999 + index = 13 + seed = 358 +} +WAYPOINT +{ + name = Crashed Saucer + celestialName = Kerbin + latitude = 81.955167431885798 + longitude = -128.517572697502 + navigationId = 1e8b1906-b7b6-484f-8775-ee92c0744be4 + icon = custom + altitude = 3.4355408039409099 + index = 15 + seed = 159 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Mun + latitude = -82.518299999999996 + longitude = -152.3254 + navigationId = 82927aae-3d08-4419-874b-544e45d547af + icon = pressure + altitude = 2.7284841053187847E-12 + index = 16 + seed = 23 +} +WAYPOINT +{ + name = Northwest Crater Arch + celestialName = Mun + latitude = 12.443199999999999 + longitude = 39.177999999999997 + navigationId = dce9943e-f7cf-4774-ab16-d156b2b0da87 + icon = seismic + altitude = 3.4106051316484809E-12 + index = 17 + seed = 330 +} +WAYPOINT +{ + name = Armstrong Monument + celestialName = Mun + latitude = 0.70269999999999999 + longitude = 22.747 + navigationId = 85b49f1e-7576-4c77-bb90-85b3ac62c91c + icon = custom + altitude = 2.2737367544323206E-13 + index = 18 + seed = 1197 +} +WAYPOINT +{ + name = Nearside Monolith + celestialName = Mun + latitude = -9.8314000000000004 + longitude = 25.917000000000002 + navigationId = 6f063b5f-02a9-4e98-9422-ff2f679cb8d8 + icon = custom + altitude = -2.1600499167107046E-12 + index = 19 + seed = 426 +} +WAYPOINT +{ + name = South Polar Monolith + celestialName = Mun + latitude = -82.206299999999999 + longitude = 102.93049999999999 + navigationId = 0a319114-cc2d-4e6d-9902-7f64b8e68830 + icon = custom + altitude = 0 + index = 21 + seed = 248 +} +WAYPOINT +{ + name = Crashed Saucer + celestialName = Mun + latitude = -70.955600000000004 + longitude = -68.137799999999999 + navigationId = abe0c9a8-650f-4679-b875-d1fd19f68caf + icon = custom + altitude = -4.5474735088646404E-12 + index = 22 + seed = 501 +} +WAYPOINT +{ + name = East Crater Arch + celestialName = Mun + latitude = 2.4695 + longitude = 81.513300000000001 + navigationId = d99b0e30-60ba-4bfb-ab4f-5fc2c66c8926 + icon = seismic + altitude = -4.5474735088646412E-13 + index = 23 + seed = 501 +} +WAYPOINT +{ + name = Northern Monolith + celestialName = Mun + latitude = 57.660400000000003 + longitude = 9.1422000000000008 + navigationId = 507bb506-4456-49c1-9579-cd1790bc463b + icon = custom + altitude = 4.5474735088646404E-12 + index = 24 + seed = 269 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Mun + latitude = 35.320999999999998 + longitude = -76.629599999999996 + navigationId = 14ae4a01-9d7a-494e-9d9b-e6dd8e721148 + icon = pressure + altitude = -3.637978807091713E-12 + index = 25 + seed = 972 +} +WAYPOINT +{ + name = East Farside Arch + celestialName = Mun + latitude = -12.443099999999999 + longitude = -140.822 + navigationId = aa547350-8932-4053-a8d6-900f5638869d + icon = seismic + altitude = 0 + index = 26 + seed = 119 +} +WAYPOINT +{ + name = Kerbin Zenith + celestialName = Mun + latitude = 0 + longitude = 47 + navigationId = 61c70b61-5047-4fa8-b4ca-83877b886233 + icon = dish + altitude = 4.0927261579781771E-12 + index = 27 + seed = 747 +} +WAYPOINT +{ + name = Kerbin Nadir + celestialName = Mun + latitude = 0 + longitude = -133 + navigationId = aea94a99-3943-4693-875b-888350a2eb26 + icon = dish + altitude = -2.7284841053187847E-12 + index = 28 + seed = 23 +} +WAYPOINT +{ + name = Monolith + celestialName = Minmus + latitude = 23.776800000000001 + longitude = 60.046199999999999 + navigationId = fbf3d06b-3376-4af3-a102-d95f4534096c + icon = custom + altitude = -2.7284841053187847E-12 + index = 29 + seed = 248 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Minmus + latitude = -62.929699999999997 + longitude = 74.728999999999999 + navigationId = d3e788c7-3a91-4d51-b35b-501cdc1c7a74 + icon = pressure + altitude = -2.7284841053187799E-12 + index = 30 + seed = 16 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Moho + latitude = -19.654499999999999 + longitude = -166.23410000000001 + navigationId = 362860d0-ebc4-4c49-b32b-e8ef4d2a3eef + icon = pressure + altitude = 1.7763568394002501E-14 + index = 31 + seed = 98 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Moho + latitude = 54.679000000000002 + longitude = 153.49000000000001 + navigationId = 3531bbc3-f488-457b-9ea4-406a919ffeb8 + icon = pressure + altitude = -5.0022208597511053E-12 + index = 32 + seed = 241 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Eve + latitude = -25.015899999999998 + longitude = -158.45580000000001 + navigationId = df42fa13-cb8e-4306-a7cb-6f81bc5787ca + icon = pressure + altitude = 3.6379788070917101E-12 + index = 33 + seed = 876 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Eve + latitude = -44.747300000000003 + longitude = -107.8528 + navigationId = 43ef7049-05aa-49bf-8010-6d68dd0863ae + icon = pressure + altitude = -1876.8985 + index = 34 + seed = 904 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Gilly + latitude = 56.7883 + longitude = -7.2400000000000002 + navigationId = 78240bc6-495d-4791-8772-7ad64876ebf7 + icon = pressure + altitude = -6.8212102632969598E-13 + index = 35 + seed = 679 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Gilly + latitude = -29.256599999999999 + longitude = -123.8708 + navigationId = 986c230f-10ec-40e1-82b6-bd085acac186 + icon = pressure + altitude = 2.7284841053187799E-12 + index = 36 + seed = 501 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Duna + latitude = 20.885000000000002 + longitude = -106.79810000000001 + navigationId = a864de06-27fe-452f-bf34-981b2113ae73 + icon = pressure + altitude = 0 + index = 37 + seed = 16 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Duna + latitude = -5.9436 + longitude = -50.548099999999998 + navigationId = ae709377-a5cb-4b4f-b667-ba529cc7e253 + icon = pressure + altitude = -2.7000623958883802E-13 + index = 38 + seed = 77 +} +WAYPOINT +{ + name = Cyduna Face + celestialName = Duna + latitude = 17.048300000000001 + longitude = -85.471699999999998 + navigationId = 6b27e7ed-a143-47f0-a8a4-196083383aab + icon = custom + altitude = 6.8212102632969618E-13 + index = 39 + seed = 665 +} +WAYPOINT +{ + name = Alien Camera + celestialName = Duna + latitude = -30.352499999999999 + longitude = -28.6828 + navigationId = 02334b66-5cd6-4a41-83b7-055627e944ba + icon = custom + altitude = -1.9895196601282805E-13 + index = 40 + seed = 37 +} +WAYPOINT +{ + name = SSTV Hill + celestialName = Duna + latitude = -66.134399999999999 + longitude = -160.7432 + navigationId = 201424b1-dda6-45e6-947e-b8e35e9794ba + icon = custom + altitude = 0 + index = 41 + seed = 269 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Ike + latitude = 25.279499999999999 + longitude = 178.2971 + navigationId = 217d4365-f02c-4c2a-848e-ad5c75bf63b1 + icon = pressure + altitude = -4.0017766878008797E-11 + index = 42 + seed = 51 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Ike + latitude = -14.425000000000001 + longitude = 25.455300000000001 + navigationId = 13426c20-bbb6-46dc-801b-b9bb60a588c4 + icon = pressure + altitude = -4.5474735088646412E-13 + index = 43 + seed = 808 +} +WAYPOINT +{ + name = Ike Zenith + celestialName = Duna + latitude = 0 + longitude = 6 + navigationId = 85ffab91-f80b-46f1-ae2e-d9679250bb69 + icon = dish + altitude = 0 + index = 44 + seed = 569 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Dres + latitude = -85.001199999999997 + longitude = 42.637900000000002 + navigationId = ca6e0206-e362-4b86-b55c-99480126b562 + icon = pressure + altitude = -3.5988989566249074E-12 + index = 45 + seed = 972 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Dres + latitude = 19.017330000000001 + longitude = -57.139899999999997 + navigationId = 5bfc97f3-4d57-453d-916a-5a5a5f92b57c + icon = pressure + altitude = -1.06581410364015E-14 + index = 46 + seed = 972 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Laythe + latitude = -17.589099999999998 + longitude = 172.58420000000001 + navigationId = b658c0e4-a5b3-4264-99dd-7432eee05018 + icon = pressure + altitude = -1.3642420526593924E-12 + index = 47 + seed = 344 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Laythe + latitude = 29.4543 + longitude = 7.3498999999999999 + navigationId = c76bb712-b752-4c4a-86fd-0cf2a4bbfed9 + icon = pressure + altitude = -2799.8879000000002 + index = 48 + seed = 384 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Vall + latitude = 11.634499999999999 + longitude = 145.49189999999999 + navigationId = cf72209a-2994-42af-a970-49182ecae345 + icon = pressure + altitude = -394.33319999999998 + index = 49 + seed = 316 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Vall + latitude = -57.491500000000002 + longitude = -144.45920000000001 + navigationId = 21dfc4a1-43ed-4612-92df-eb181282f1c1 + icon = pressure + altitude = 4.6895820560166612E-12 + index = 50 + seed = 1375 +} +WAYPOINT +{ + name = Vallhenge + celestialName = Vall + latitude = -60.328899999999997 + longitude = 84.057900000000004 + navigationId = e125af95-0f29-4a2d-8b30-3b774771a5e2 + icon = custom + altitude = 9.0949470177292824E-13 + index = 51 + seed = 384 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Tylo + latitude = -51.778599999999997 + longitude = 20.577400000000001 + navigationId = 5a6fce06-63df-47b9-ad8f-a5a43a817570 + icon = pressure + altitude = 2.7284841053187799E-12 + index = 52 + seed = 679 +} +WAYPOINT +{ + name = Cave + celestialName = Tylo + latitude = 40.267099999999999 + longitude = 174.04669999999999 + navigationId = 12910cef-d4a3-466e-b96f-90d190566dd2 + icon = report + altitude = 2.5579538487363607E-12 + index = 54 + seed = 187 +} +WAYPOINT +{ + name = Large Orange Circle + celestialName = Bop + latitude = 4.7400000000000002 + longitude = -72.769999999999996 + navigationId = 7d860c42-e129-4efa-875f-df496be98762 + icon = custom + altitude = 3.1263880373444408E-13 + index = 55 + seed = 37 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Bop + latitude = 23.8733 + longitude = -64.566699999999997 + navigationId = 96f0dd67-ecb0-43b4-aedb-5f8419c8362c + icon = pressure + altitude = 2.7966962079517543E-11 + index = 56 + seed = 159 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Bop + latitude = 37.584200000000003 + longitude = -139.27369999999999 + navigationId = 82bf0ff5-1117-483e-a0a2-7627b49f69c2 + icon = pressure + altitude = 1.8189894035458601E-12 + index = 57 + seed = 105 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Pol + latitude = -25.125699999999998 + longitude = 173.77080000000001 + navigationId = cf7e900b-4995-4ffe-b801-64dc9e8bbcfc + icon = pressure + altitude = -4.2632564145605999E-14 + index = 58 + seed = 337 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Pol + latitude = -62.830800000000004 + longitude = 164.58619999999999 + navigationId = e6fbae07-f2ba-4ab8-bd60-44b7b6398c39 + icon = pressure + altitude = -4.5474735088646404E-12 + index = 59 + seed = 1197 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Eeloo + latitude = 24.334700000000002 + longitude = 27.9602 + navigationId = 8c40f4bc-513c-4b26-a4ff-bc53e5d2975b + icon = pressure + altitude = -3.6379788070917101E-12 + index = 60 + seed = 1293 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Eeloo + latitude = 51.778599999999997 + longitude = -32.288800000000002 + navigationId = afca125c-6590-4206-9858-2597fd7cb16e + icon = pressure + altitude = -386.88580000000002 + index = 61 + seed = 1375 +} +WAYPOINT +{ + name = Space Kraken + celestialName = Bop + latitude = 68.435555559999997 + longitude = 117.02527778 + navigationId = cedb4799-9cf7-4629-9f41-bcc47b733247 + icon = thermometer + altitude = -1.8189894035458565E-12 + index = 65 + seed = 426 +} +WAYPOINT +{ + name = KSC VAB Helipad West + celestialName = Kerbin + latitude = -0.096774291835035595 + longitude = 285.379923596384 + navigationId = 7cfe6007-8dff-4dad-8078-dfe83f58a469 + icon = balloon + altitude = -1.4210854715202004E-14 + index = 67 + seed = 255 +} +WAYPOINT +{ + name = KSC VAB Helipad East + celestialName = Kerbin + latitude = -0.096789186370403402 + longitude = 285.38258125436499 + navigationId = 9e90fd65-8879-40f8-ad10-11991ef655c9 + icon = balloon + altitude = 1.4210854715202004E-14 + index = 68 + seed = 51 +} +WAYPOINT +{ + name = KSC Launchpad + celestialName = Kerbin + latitude = -0.0972059472729188 + longitude = -74.557678525428102 + navigationId = ec73f087-3cc8-49a7-ab26-6324f491f5e1 + icon = balloon + altitude = 8.0341943049570403 + index = 109 + seed = 330 +} +WAYPOINT +{ + name = KSC Launchpad Flagpole + celestialName = Kerbin + latitude = -0.090084646929245504 + longitude = -74.558323606357305 + navigationId = ca0ab3d5-8767-41de-bb33-e32c73429dae + icon = custom + altitude = 40.690020784153745 + index = 110 + seed = 1293 +} +WAYPOINT +{ + name = KSC Launchpad Tower + celestialName = Kerbin + latitude = -0.092162061050975796 + longitude = -74.552601310656698 + navigationId = b0202784-910b-4e43-8b5f-31e9eecdb006 + icon = custom + altitude = 4.0237118559889637 + index = 111 + seed = 876 +} +WAYPOINT +{ + name = KSC Launchpad Tanks + celestialName = Kerbin + latitude = -0.100159477059805 + longitude = -74.551233776036199 + navigationId = 7b0183f6-adfd-4de5-b0be-926d7b6c40cd + icon = custom + altitude = 7.8061098207253963 + index = 112 + seed = 98 +} +WAYPOINT +{ + name = KSC Launchpad Round Tank + celestialName = Kerbin + latitude = -0.10360694580957799 + longitude = -74.554894432730194 + navigationId = 069b60bc-f05a-4d46-8202-3c78ea7de05e + icon = custom + altitude = 12.866016028798228 + index = 113 + seed = 384 +} +WAYPOINT +{ + name = KSC Runway West + celestialName = Kerbin + latitude = -0.048551152501917001 + longitude = 285.27366496477202 + navigationId = 96e5530a-947b-4004-8ff2-e67d6db70073 + icon = balloon + altitude = 1.4210854715202004E-14 + index = 114 + seed = 1375 +} +WAYPOINT +{ + name = KSC Runway East + celestialName = Kerbin + latitude = -0.0502284824994308 + longitude = 285.50930442201098 + navigationId = 5318f57b-8736-44f7-b9af-2121e5babf53 + icon = balloon + altitude = -1.4210854715202004E-14 + index = 115 + seed = 904 +} +WAYPOINT +{ + name = Island Runway 09 + celestialName = Kerbin + latitude = -1.5182753759709999 + longitude = -71.968234330081401 + navigationId = feac6113-ff8d-48d7-8107-add22a80e3b1 + icon = balloon + altitude = 24.550378443705853 + index = 116 + seed = 173 +} +WAYPOINT +{ + name = Island Runway 27 + celestialName = Kerbin + latitude = -1.51552116418601 + longitude = -71.851643021159404 + navigationId = a4e75aa9-d428-4c05-8a6b-9fb62104c859 + icon = balloon + altitude = 37.808130879536861 + index = 117 + seed = 665 +} +WAYPOINT +{ + name = KSC Admin Helipad + celestialName = Kerbin + latitude = -0.092585741383718806 + longitude = 285.336888947055 + navigationId = 60c408f6-0c3f-4b9e-a390-33ceeef7501d + icon = balloon + altitude = 17.094428896438302 + index = 118 + seed = 665 +} +WAYPOINT +{ + name = KSC Crawlerway + celestialName = Kerbin + latitude = -0.096971050269359094 + longitude = 285.40972797335201 + navigationId = 6b427f70-e8a2-464b-a6de-30497113ed72 + icon = report + altitude = 4.2632564145606011E-14 + index = 119 + seed = 1375 +} +WAYPOINT +{ + name = KSC VAB + celestialName = Kerbin + latitude = -0.096801300186681399 + longitude = 285.38647041267399 + navigationId = becf54a9-a246-4200-be19-02ad3f15606c + icon = report + altitude = -1.4210854715202004E-14 + index = 120 + seed = 23 +} +WAYPOINT +{ + name = KSC SPH Tanks + celestialName = Kerbin + latitude = -0.056140292627044702 + longitude = 285.36006625169398 + navigationId = 18a36138-53dc-40a5-aeaa-6660dbadd395 + icon = report + altitude = 2.8421709430404007E-14 + index = 129 + seed = 77 +} +WAYPOINT +{ + name = KSC VAB Tanks + celestialName = Kerbin + latitude = -0.089697105577885197 + longitude = 285.39057192040502 + navigationId = f25a6bcf-4663-4b69-b216-32b7ddbc0c33 + icon = report + altitude = 8.9146826120559304 + index = 121 + seed = 316 +} +WAYPOINT +{ + name = KSC VAB Round Tank + celestialName = Kerbin + latitude = -0.089861819444973901 + longitude = 285.37263249925297 + navigationId = eb1eb621-9907-4b7d-9930-c0ce13bdebb4 + icon = report + altitude = 20.750444516190299 + index = 122 + seed = 358 +} +WAYPOINT +{ + name = KSC VAB Pod Memorial + celestialName = Kerbin + latitude = -0.091780704399143306 + longitude = 285.37034881251401 + navigationId = 53f0a2ae-c400-4ddc-b3e9-169fafab8383 + icon = report + altitude = 6.8803951606387699 + index = 123 + seed = 822 +} +WAYPOINT +{ + name = KSC VAB Main Building + celestialName = Kerbin + latitude = -0.096774292553383504 + longitude = 285.379939331976 + navigationId = d4113c8a-4320-4396-befd-90fba6bc7d14 + icon = report + altitude = 110.858032149263 + index = 124 + seed = 337 +} +WAYPOINT +{ + name = KSC Mission Control + celestialName = Kerbin + latitude = -0.074839837287863406 + longitude = 285.38555081350199 + navigationId = 07f588a2-8a26-42f3-86ca-51279c679f88 + icon = report + altitude = 22.904211186803899 + index = 125 + seed = 37 +} +WAYPOINT +{ + name = KSC SPH + celestialName = Kerbin + latitude = -0.068314560757950796 + longitude = 285.37262543456501 + navigationId = 953653f6-86b9-4ad1-8ef7-2935452d482d + icon = report + altitude = 3.0041069599100898 + index = 126 + seed = 358 +} +WAYPOINT +{ + name = KSC SPH Round Tank + celestialName = Kerbin + latitude = -0.070576929301162897 + longitude = 285.35602146324197 + navigationId = e753894e-314a-46cd-907e-bf96c3232cf1 + icon = report + altitude = 20.9372527650557 + index = 127 + seed = 747 +} +WAYPOINT +{ + name = KSC SPH Water Tower + celestialName = Kerbin + latitude = -0.058021625483335899 + longitude = 285.35857267653398 + navigationId = b52fe15b-9036-4cc7-a386-15636ba19d67 + icon = report + altitude = 29.350859563797702 + index = 128 + seed = 269 +} +WAYPOINT +{ + name = KSC SPH Main Building + celestialName = Kerbin + latitude = -0.062774915944332793 + longitude = 285.36676573215601 + navigationId = 927dd6c3-344d-4a2b-a37b-45cbe2128254 + icon = report + altitude = 81.851956957950904 + index = 130 + seed = 1115 +} +WAYPOINT +{ + name = KSC Administration + celestialName = Kerbin + latitude = -0.092581025949561496 + longitude = 285.33689206467801 + navigationId = 255007c2-88e2-4207-8d85-10fca7601687 + icon = report + altitude = 17.094428881886401 + index = 132 + seed = 255 +} +WAYPOINT +{ + name = KSC Flag Pole + celestialName = Kerbin + latitude = -0.094144984707098006 + longitude = 285.34647714111202 + navigationId = 5fb4c97d-0f78-45a9-b1c0-11e3b8c25730 + icon = custom + altitude = 48.889007763238503 + index = 133 + seed = 105 +} +WAYPOINT +{ + name = KSC Astronaut Complex + celestialName = Kerbin + latitude = -0.089909523836995006 + longitude = 285.353940720249 + navigationId = a7c33410-1fce-4ba3-ba48-b750f05919f7 + icon = report + altitude = 25.070338910562 + index = 134 + seed = 398 +} +WAYPOINT +{ + name = KSC Tracking Station Hub + celestialName = Kerbin + latitude = -0.12719847030462 + longitude = 285.39462404211099 + navigationId = b58ce3bb-8e37-465e-a6d4-aeebeb01587a + icon = report + altitude = 16.8013761916664 + index = 135 + seed = 358 +} +WAYPOINT +{ + name = KSC Tracking Station Dish North + celestialName = Kerbin + latitude = -0.11823770130627 + longitude = 285.38962938277001 + navigationId = 060ec8fb-fe4e-4238-9f75-17443832bacb + icon = dish + altitude = 24.281359310727499 + index = 136 + seed = 16 +} +WAYPOINT +{ + name = KSC Tracking Station Dish South + celestialName = Kerbin + latitude = -0.13589354435676801 + longitude = 285.38949332033002 + navigationId = be2e0352-66ed-47a7-ba92-e35e9a4cc049 + icon = dish + altitude = 24.315369184245402 + index = 137 + seed = 337 +} +WAYPOINT +{ + name = KSC Tracking Station Dish East + celestialName = Kerbin + latitude = -0.12731756091773699 + longitude = 285.404782995262 + navigationId = 9ebc63c1-7a97-4108-8668-564d1884de5c + icon = dish + altitude = 24.281390124116999 + index = 138 + seed = 276 +} +WAYPOINT +{ + name = KSC Tracking Station + celestialName = Kerbin + latitude = -0.12443331920301801 + longitude = 285.39623886670398 + navigationId = a7c5d8a6-1028-4c73-af63-c406d3e6cbf6 + icon = report + altitude = 4.3622092258883596 + index = 139 + seed = 890 +} +WAYPOINT +{ + name = KSC R&D Small Lab + celestialName = Kerbin + latitude = -0.10354780221486801 + longitude = 285.355025695145 + navigationId = 89dec67e-1c11-4b47-b536-1a6dadd6885b + icon = report + altitude = 9.5331524281063995 + index = 140 + seed = 597 +} +WAYPOINT +{ + name = KSC R&D Side Lab + celestialName = Kerbin + latitude = -0.11053661135989 + longitude = 285.34447758648201 + navigationId = 05c8ab58-ea3b-4fa0-9d2b-4a63072a502d + icon = report + altitude = 22.641339755500699 + index = 141 + seed = 77 +} +WAYPOINT +{ + name = KSC R&D Central Building + celestialName = Kerbin + latitude = -0.109071838317709 + longitude = 285.352970668154 + navigationId = 91195f2c-90b9-4727-9e4d-6a3335b250d0 + icon = report + altitude = 34.309831616352298 + index = 142 + seed = 597 +} +WAYPOINT +{ + name = KSC R&D Main Building + celestialName = Kerbin + latitude = -0.10848324834083301 + longitude = 285.36248063932999 + navigationId = afaac97f-e05d-4197-a944-bef8ffed32c3 + icon = report + altitude = 28.734739397070399 + index = 143 + seed = 98 +} +WAYPOINT +{ + name = KSC R&D Corner Lab + celestialName = Kerbin + latitude = -0.118624032947731 + longitude = 285.366529153474 + navigationId = f8f3a000-c977-4c93-87dc-d6e2cd34360a + icon = report + altitude = 34.784655628493098 + index = 144 + seed = 501 +} +WAYPOINT +{ + name = KSC R&D Wind Tunnel + celestialName = Kerbin + latitude = -0.123517638824824 + longitude = 285.360777245132 + navigationId = d1d95275-9a34-4730-8d8a-eac89ddb8e44 + icon = report + altitude = 0 + index = 145 + seed = 808 +} +WAYPOINT +{ + name = KSC R&D Tanks + celestialName = Kerbin + latitude = -0.12137868545054201 + longitude = 285.35374778114402 + navigationId = 41be0955-16bb-4e87-b4b0-0f693719cd83 + icon = report + altitude = 9.1798749957233401 + index = 146 + seed = 37 +} +WAYPOINT +{ + name = KSC R&D Observatory + celestialName = Kerbin + latitude = -0.122488061527529 + longitude = 285.347702897479 + navigationId = 3dfc5ddb-b42b-4fc2-ad7d-cd788718c530 + icon = report + altitude = 35.593318588914997 + index = 147 + seed = 822 +} +WAYPOINT +{ + name = KSC R&D + celestialName = Kerbin + latitude = -0.10884933370783199 + longitude = 285.358611235723 + navigationId = 6bf4e0b5-ae96-4e83-8082-a8d7169cf142 + icon = report + altitude = 3.01313023851257 + index = 148 + seed = 180 +} +WAYPOINT +{ + name = KSC + celestialName = Kerbin + latitude = -0.079292882337452006 + longitude = 285.40410323138201 + navigationId = 7d8b0263-e4ab-40f6-af63-3f74f5a8f15e + icon = report + altitude = -1.09118695906368 + index = 149 + seed = 583 +} +WAYPOINT +{ + name = KSC VAB South Complex + celestialName = Kerbin + latitude = -0.106497259621255 + longitude = 285.380791209351 + navigationId = 2f7d2497-291a-4fe5-817d-84a543833398 + icon = report + altitude = 8.6853406010195595 + index = 150 + seed = 316 +} +WAYPOINT +{ + name = Island Launchsite + celestialName = Kerbin + latitude = -1.5292755201464101 + longitude = -71.885305541255093 + navigationId = bb4d2e1e-1fb0-4d93-b1fc-ff2831454093 + icon = balloon + altitude = 18.343590766541126 + index = 151 + seed = 119 +} +WAYPOINT +{ + name = Woomerang Launchpad + celestialName = Kerbin + latitude = 45.290008610357802 + longitude = 136.11000269884599 + navigationId = 48148dd2-e673-4285-aac5-a055b6f411e2 + icon = balloon + altitude = 5.5465857695093064 + index = 152 + seed = 876 +} +WAYPOINT +{ + name = Woomerang Tracking Station + celestialName = Kerbin + latitude = 44.720015892778001 + longitude = 137.029843878425 + navigationId = 5049d71c-6976-4bea-bb6b-7b2049a63845 + icon = dish + altitude = 1.7446588787679502 + index = 153 + seed = 876 +} +WAYPOINT +{ + name = KSC Runway 09 + celestialName = Kerbin + latitude = -0.048600385045034701 + longitude = -74.724409241422194 + navigationId = 96e5530a-947b-4004-8ff2-e67d6db70073 + icon = balloon + altitude = 4.5361671554856429 + index = 114 + seed = 1375 +} +WAYPOINT +{ + name = K2 Summit + celestialName = Kerbin + latitude = 0.062761120686451302 + longitude = -79.349539300638199 + navigationId = 04c0866a-8a74-40eb-a248-764e551e6a8a + icon = pressure + altitude = 0.038140040009238874 + index = 154 + seed = 384 +} +WAYPOINT +{ + name = Island Airfield Tower + celestialName = Kerbin + latitude = -1.52331871899049 + longitude = -71.911111810017005 + navigationId = 73caeafd-cfa1-49cc-9669-ab415133bce0 + icon = custom + altitude = 66.558396332664415 + index = 155 + seed = 426 +} +WAYPOINT +{ + name = Smiley Face + celestialName = Kerbin + latitude = -30 + longitude = -80 + navigationId = 66652944-f478-430f-87a3-48b1fd658d19 + icon = gravity + altitude = 0 + index = 156 + seed = 276 +} +WAYPOINT +{ + name = Baikerbanur Monolith + celestialName = Kerbin + latitude = 20.6708947559456 + longitude = -146.49685403868901 + navigationId = 5ce4f5b1-e46e-4538-ab9a-32c4f82fc413 + icon = custom + altitude = -1.323019093834148 + index = 157 + seed = 651 +} +WAYPOINT +{ + name = Baikerbanur VAB + celestialName = Kerbin + latitude = 20.635392812880202 + longitude = -146.430052175329 + navigationId = 5974e347-7e88-46e8-a6a8-921bfc061f16 + icon = custom + altitude = 57.133920537540462 + index = 158 + seed = 412 +} +WAYPOINT +{ + name = Baikerbanur Launchpad + celestialName = Kerbin + latitude = 20.663490720665202 + longitude = -146.42099044111399 + navigationId = 4651d52b-6a9a-4eee-b08c-1ef3bb56e91e + icon = balloon + altitude = 4.0092718037774944 + index = 159 + seed = 679 +} +WAYPOINT +{ + name = KSC Monolith + celestialName = Kerbin + latitude = 0.102329810251359 + longitude = -74.568421012228896 + navigationId = c1dbd986-6335-4cdb-91f3-557efeb9815b + icon = custom + altitude = 0.65132247610021921 + index = 160 + seed = 358 +} +WAYPOINT +{ + name = Nye Island Tracking Station + celestialName = Kerbin + latitude = 5.3599316110916302 + longitude = 108.54992089948 + navigationId = 29502e94-2f35-4163-aa39-6a4fcef970a7 + icon = dish + altitude = -9.8039397293468937 + index = 3 + seed = 597 +} +WAYPOINT +{ + name = Prime Meridian + celestialName = Kerbin + latitude = 0 + longitude = 0 + navigationId = 5263820b-44c1-4c08-bf86-9f2ff465ba06 + icon = thermometer + altitude = 0 + index = 161 + seed = 651 +} +WAYPOINT +{ + name = Northern Sinkhole + celestialName = Moho + latitude = 90 + longitude = 0 + navigationId = 0614db8a-7fab-48e6-874f-dc2c7d8e900d + icon = pressure + altitude = -4600.0887722168118 + index = 162 + seed = 1197 +} diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.KSCBiomes.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.KSCBiomes.cfg new file mode 100644 index 0000000..fc977dd --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.KSCBiomes.cfg @@ -0,0 +1,367 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints. + +WAYPOINT +{ + name = LaunchPad + celestialName = Kerbin + icon = report + latitude = -0.0972077857261656 + longitude = 285.442324681089 + altitude = 7.80529459452723 + index = 0 + seed = 23 +} +WAYPOINT +{ + name = Crawlerway + celestialName = Kerbin + icon = report + latitude = -0.0969710502693591 + longitude = 285.409727973352 + altitude = 2.91531068265904 + index = 1 + seed = 23 +} +WAYPOINT +{ + name = VAB + celestialName = Kerbin + icon = report + latitude = -0.0968013001866814 + longitude = 285.386470412674 + altitude = 2.83937782328579 + index = 2 + seed = 23 +} +WAYPOINT +{ + name = VAB Tanks + celestialName = Kerbin + icon = report + latitude = -0.0896971055778852 + longitude = 285.390571920405 + altitude = 8.91468261205593 + index = 3 + seed = 23 +} +WAYPOINT +{ + name = VAB Round Tank + celestialName = Kerbin + icon = report + latitude = -0.0898618194449739 + longitude = 285.372632499253 + altitude = 20.7504445161903 + index = 4 + seed = 23 +} +WAYPOINT +{ + name = VAB Pod Memorial + celestialName = Kerbin + icon = report + latitude = -0.0917807043991433 + longitude = 285.370348812514 + altitude = 6.88039516063877 + index = 5 + seed = 23 +} +WAYPOINT +{ + name = VAB Main Building + celestialName = Kerbin + icon = report + latitude = -0.0967742925533835 + longitude = 285.379939331976 + altitude = 110.858032149263 + index = 6 + seed = 23 +} +WAYPOINT +{ + name = Mission Control + celestialName = Kerbin + icon = report + latitude = -0.0748398372878634 + longitude = 285.385550813502 + altitude = 22.9042111868039 + index = 7 + seed = 23 +} +WAYPOINT +{ + name = SPH + celestialName = Kerbin + icon = report + latitude = -0.0683145607579508 + longitude = 285.372625434565 + altitude = 3.00410695991009 + index = 8 + seed = 23 +} +WAYPOINT +{ + name = SPH Round Tank + celestialName = Kerbin + icon = report + latitude = -0.0705769293011629 + longitude = 285.356021463242 + altitude = 20.9372527650557 + index = 9 + seed = 23 +} +WAYPOINT +{ + name = SPH Water Tower + celestialName = Kerbin + icon = report + latitude = -0.0580216254833359 + longitude = 285.358572676534 + altitude = 29.3508595637977 + index = 10 + seed = 23 +} +WAYPOINT +{ + name = SPH Tanks + celestialName = Kerbin + icon = report + latitude = -0.0561402926270447 + longitude = 285.360066251694 + altitude = 9.23774899286222 + index = 11 + seed = 23 +} +WAYPOINT +{ + name = SPH Main Building + celestialName = Kerbin + icon = report + latitude = -0.0627749159443328 + longitude = 285.366765732156 + altitude = 81.8519569579509 + index = 12 + seed = 23 +} +WAYPOINT +{ + name = Runway + celestialName = Kerbin + icon = report + latitude = -0.0485519156600059 + longitude = 285.273541622916 + altitude = 4.52002578240354 + index = 13 + seed = 23 +} +WAYPOINT +{ + name = Administration + celestialName = Kerbin + icon = report + latitude = -0.0925810259495615 + longitude = 285.336892064678 + altitude = 17.0944288818864 + index = 14 + seed = 23 +} +WAYPOINT +{ + name = Flag Pole + celestialName = Kerbin + icon = report + latitude = -0.094144984707098 + longitude = 285.346477141112 + altitude = 48.8890077632385 + index = 15 + seed = 23 +} +WAYPOINT +{ + name = Astronaut Complex + celestialName = Kerbin + icon = report + latitude = -0.089909523836995 + longitude = 285.353940720249 + altitude = 25.070338910562 + index = 16 + seed = 23 +} +WAYPOINT +{ + name = Tracking Station Hub + celestialName = Kerbin + icon = report + latitude = -0.12719847030462 + longitude = 285.394624042111 + altitude = 16.8013761916664 + index = 17 + seed = 23 +} +WAYPOINT +{ + name = Tracking Station Dish North + celestialName = Kerbin + icon = report + latitude = -0.11823770130627 + longitude = 285.38962938277 + altitude = 24.2813593107275 + index = 18 + seed = 23 +} +WAYPOINT +{ + name = Tracking Station Dish South + celestialName = Kerbin + icon = report + latitude = -0.135893544356768 + longitude = 285.38949332033 + altitude = 24.3153691842454 + index = 19 + seed = 23 +} +WAYPOINT +{ + name = Tracking Station Dish East + celestialName = Kerbin + icon = report + latitude = -0.127317560917737 + longitude = 285.404782995262 + altitude = 24.281390124117 + index = 20 + seed = 23 +} +WAYPOINT +{ + name = Tracking Station + celestialName = Kerbin + icon = report + latitude = -0.124433319203018 + longitude = 285.396238866704 + altitude = 4.36220922588836 + index = 21 + seed = 23 +} +WAYPOINT +{ + name = R&D Small Lab + celestialName = Kerbin + icon = report + latitude = -0.103547802214868 + longitude = 285.355025695145 + altitude = 9.5331524281064 + index = 22 + seed = 23 +} +WAYPOINT +{ + name = R&D Side Lab + celestialName = Kerbin + icon = report + latitude = -0.11053661135989 + longitude = 285.344477586482 + altitude = 22.6413397555007 + index = 23 + seed = 23 +} +WAYPOINT +{ + name = R&D Central Building + celestialName = Kerbin + icon = report + latitude = -0.109071838317709 + longitude = 285.352970668154 + altitude = 34.3098316163523 + index = 24 + seed = 23 +} +WAYPOINT +{ + name = R&D Main Building + celestialName = Kerbin + icon = report + latitude = -0.108483248340833 + longitude = 285.36248063933 + altitude = 28.7347393970704 + index = 25 + seed = 23 +} +WAYPOINT +{ + name = R&D Corner Lab + celestialName = Kerbin + icon = report + latitude = -0.118624032947731 + longitude = 285.366529153474 + altitude = 34.7846556284931 + index = 26 + seed = 23 +} +WAYPOINT +{ + name = R&D Wind Tunnel + celestialName = Kerbin + icon = report + latitude = -0.123517638824824 + longitude = 285.360777245132 + altitude = 29.7992018720834 + index = 27 + seed = 23 +} +WAYPOINT +{ + name = R&D Tanks + celestialName = Kerbin + icon = report + latitude = -0.121378685450542 + longitude = 285.353747781144 + altitude = 9.17987499572334 + index = 28 + seed = 23 +} +WAYPOINT +{ + name = R&D Observatory + celestialName = Kerbin + icon = report + latitude = -0.122488061527529 + longitude = 285.347702897479 + altitude = 35.593318588915 + index = 29 + seed = 23 +} +WAYPOINT +{ + name = R&D + celestialName = Kerbin + icon = report + latitude = -0.108849333707832 + longitude = 285.358611235723 + altitude = 3.01313023851257 + index = 30 + seed = 23 +} +WAYPOINT +{ + name = KSC + celestialName = Kerbin + icon = report + latitude = -0.079292882337452 + longitude = 285.404103231382 + altitude = -1.09118695906368 + index = 31 + seed = 23 +} +WAYPOINT +{ + name = VAB South Complex + celestialName = Kerbin + icon = report + latitude = -0.106497259621255 + longitude = 285.380791209351 + altitude = 8.68534060101956 + index = 32 + seed = 23 +} diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Kerbin.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Kerbin.cfg new file mode 100644 index 0000000..ac37d30 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Kerbin.cfg @@ -0,0 +1,820 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints. + +WAYPOINT +{ + name = North Station One Tracking Station + celestialName = Kerbin + latitude = 63.095084361794797 + longitude = -90.079893279056407 + navigationId = 80698255-4e2f-4c14-88d5-7a0faeca3ab9 + icon = dish + altitude = 2.7284841053187847E-12 + index = 0 + seed = 51 +} +WAYPOINT +{ + name = Harvester Massif Tracking Station + celestialName = Kerbin + latitude = -11.9501036949728 + longitude = 33.740039782730598 + navigationId = 60053bff-d21f-4570-b8b3-e73cfea1bf26 + icon = dish + altitude = 4.3078600020335216 + index = 1 + seed = 358 +} +WAYPOINT +{ + name = Crater Rim Tracking Station + celestialName = Kerbin + latitude = 9.4500575394183706 + longitude = -172.11006586553799 + navigationId = d2f734ce-52f3-4dff-9d04-3b51940fb877 + icon = dish + altitude = -2.7284841053187847E-12 + index = 5 + seed = 808 +} +WAYPOINT +{ + name = Baikerbanur Tracking Station + celestialName = Kerbin + latitude = 20.681019179238699 + longitude = -146.50146247265101 + navigationId = ec0d87b9-4371-42d1-8bc1-0031b17fcf4e + icon = dish + altitude = 11.482591688283833 + index = 6 + seed = 241 +} +WAYPOINT +{ + name = Mesa South Tracking Station + celestialName = Kerbin + latitude = -59.590011134603699 + longitude = -25.869794095014601 + navigationId = e3b35deb-8fe5-4864-8d27-1698097b98f3 + icon = dish + altitude = 4.3227068297583173 + index = 7 + seed = 583 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Kerbin + latitude = 61.578400000000002 + longitude = 46.3733 + navigationId = d782c960-172d-4d5a-8743-9548c8a55e86 + icon = pressure + altitude = 3.637978807091713E-12 + index = 8 + seed = 651 +} +WAYPOINT +{ + name = Eastern Monolith + celestialName = Kerbin + latitude = -28.808299999999999 + longitude = -13.440099999999999 + navigationId = 1d620c17-aa6f-4492-bdb7-b72d01adae00 + icon = custom + altitude = 4.5474735088646412E-12 + index = 9 + seed = 91 +} +WAYPOINT +{ + name = Hidden Valley Monolith + celestialName = Kerbin + latitude = 35.570510763646503 + longitude = -74.977286738143405 + navigationId = 4d433a4d-60e1-42d6-b92e-424005c34705 + icon = custom + altitude = 0.46431883214927439 + index = 10 + seed = 9 +} +WAYPOINT +{ + name = Western Monolith + celestialName = Kerbin + latitude = -0.64011062426790699 + longitude = -80.766738375291098 + navigationId = a6803f1b-ca9a-43e9-98bd-b6cb321f6ab6 + icon = custom + altitude = 15.919417221052754 + index = 11 + seed = 426 +} +WAYPOINT +{ + name = Deepest Depth + celestialName = Kerbin + latitude = -28.905000000000001 + longitude = -83.111599999999996 + navigationId = 78bfd3da-a544-40bd-aecd-d61c24dde4aa + icon = pressure + altitude = -1390.9353000000001 + index = 12 + seed = 248 +} +WAYPOINT +{ + name = Tut-Ur Jeb-Ahn + celestialName = Kerbin + latitude = -6.5056566716276301 + longitude = -141.68561514627001 + navigationId = 963243d9-2f0b-47c1-8f6a-e73efeea4436 + icon = eva + altitude = 64.3599999999999 + index = 13 + seed = 358 +} +WAYPOINT +{ + name = Crashed Saucer + celestialName = Kerbin + latitude = 81.955167431885798 + longitude = -128.517572697502 + navigationId = 1e8b1906-b7b6-484f-8775-ee92c0744be4 + icon = custom + altitude = 3.4355408039409099 + index = 15 + seed = 159 +} +WAYPOINT +{ + name = KSC VAB Helipad West + celestialName = Kerbin + latitude = -0.096774291835035595 + longitude = 285.379923596384 + navigationId = 7cfe6007-8dff-4dad-8078-dfe83f58a469 + icon = balloon + altitude = -1.4210854715202004E-14 + index = 67 + seed = 255 +} +WAYPOINT +{ + name = KSC VAB Helipad East + celestialName = Kerbin + latitude = -0.096789186370403402 + longitude = 285.38258125436499 + navigationId = 9e90fd65-8879-40f8-ad10-11991ef655c9 + icon = balloon + altitude = 1.4210854715202004E-14 + index = 68 + seed = 51 +} +WAYPOINT +{ + name = KSC Launchpad + celestialName = Kerbin + latitude = -0.0972059472729188 + longitude = -74.557678525428102 + navigationId = ec73f087-3cc8-49a7-ab26-6324f491f5e1 + icon = balloon + altitude = 8.0341943049570403 + index = 109 + seed = 330 +} +WAYPOINT +{ + name = KSC Launchpad Flagpole + celestialName = Kerbin + latitude = -0.090084646929245504 + longitude = -74.558323606357305 + navigationId = ca0ab3d5-8767-41de-bb33-e32c73429dae + icon = custom + altitude = 40.690020784153745 + index = 110 + seed = 1293 +} +WAYPOINT +{ + name = KSC Launchpad Tower + celestialName = Kerbin + latitude = -0.092162061050975796 + longitude = -74.552601310656698 + navigationId = b0202784-910b-4e43-8b5f-31e9eecdb006 + icon = custom + altitude = 4.0237118559889637 + index = 111 + seed = 876 +} +WAYPOINT +{ + name = KSC Launchpad Tanks + celestialName = Kerbin + latitude = -0.100159477059805 + longitude = -74.551233776036199 + navigationId = 7b0183f6-adfd-4de5-b0be-926d7b6c40cd + icon = custom + altitude = 7.8061098207253963 + index = 112 + seed = 98 +} +WAYPOINT +{ + name = KSC Launchpad Round Tank + celestialName = Kerbin + latitude = -0.10360694580957799 + longitude = -74.554894432730194 + navigationId = 069b60bc-f05a-4d46-8202-3c78ea7de05e + icon = custom + altitude = 12.866016028798228 + index = 113 + seed = 384 +} +WAYPOINT +{ + name = KSC Runway West + celestialName = Kerbin + latitude = -0.048551152501917001 + longitude = 285.27366496477202 + navigationId = 96e5530a-947b-4004-8ff2-e67d6db70073 + icon = balloon + altitude = 1.4210854715202004E-14 + index = 114 + seed = 1375 +} +WAYPOINT +{ + name = KSC Runway East + celestialName = Kerbin + latitude = -0.0502284824994308 + longitude = 285.50930442201098 + navigationId = 5318f57b-8736-44f7-b9af-2121e5babf53 + icon = balloon + altitude = -1.4210854715202004E-14 + index = 115 + seed = 904 +} +WAYPOINT +{ + name = Island Runway 09 + celestialName = Kerbin + latitude = -1.5182753759709999 + longitude = -71.968234330081401 + navigationId = feac6113-ff8d-48d7-8107-add22a80e3b1 + icon = balloon + altitude = 24.550378443705853 + index = 116 + seed = 173 +} +WAYPOINT +{ + name = Island Runway 27 + celestialName = Kerbin + latitude = -1.51552116418601 + longitude = -71.851643021159404 + navigationId = a4e75aa9-d428-4c05-8a6b-9fb62104c859 + icon = balloon + altitude = 37.808130879536861 + index = 117 + seed = 665 +} +WAYPOINT +{ + name = KSC Admin Helipad + celestialName = Kerbin + latitude = -0.092585741383718806 + longitude = 285.336888947055 + navigationId = 60c408f6-0c3f-4b9e-a390-33ceeef7501d + icon = balloon + altitude = 17.094428896438302 + index = 118 + seed = 665 +} +WAYPOINT +{ + name = KSC Crawlerway + celestialName = Kerbin + latitude = -0.096971050269359094 + longitude = 285.40972797335201 + navigationId = 6b427f70-e8a2-464b-a6de-30497113ed72 + icon = report + altitude = 4.2632564145606011E-14 + index = 119 + seed = 1375 +} +WAYPOINT +{ + name = KSC VAB + celestialName = Kerbin + latitude = -0.096801300186681399 + longitude = 285.38647041267399 + navigationId = becf54a9-a246-4200-be19-02ad3f15606c + icon = report + altitude = -1.4210854715202004E-14 + index = 120 + seed = 23 +} +WAYPOINT +{ + name = KSC SPH Tanks + celestialName = Kerbin + latitude = -0.056140292627044702 + longitude = 285.36006625169398 + navigationId = 18a36138-53dc-40a5-aeaa-6660dbadd395 + icon = report + altitude = 2.8421709430404007E-14 + index = 129 + seed = 77 +} +WAYPOINT +{ + name = KSC VAB Tanks + celestialName = Kerbin + latitude = -0.089697105577885197 + longitude = 285.39057192040502 + navigationId = f25a6bcf-4663-4b69-b216-32b7ddbc0c33 + icon = report + altitude = 8.9146826120559304 + index = 121 + seed = 316 +} +WAYPOINT +{ + name = KSC VAB Round Tank + celestialName = Kerbin + latitude = -0.089861819444973901 + longitude = 285.37263249925297 + navigationId = eb1eb621-9907-4b7d-9930-c0ce13bdebb4 + icon = report + altitude = 20.750444516190299 + index = 122 + seed = 358 +} +WAYPOINT +{ + name = KSC VAB Pod Memorial + celestialName = Kerbin + latitude = -0.091780704399143306 + longitude = 285.37034881251401 + navigationId = 53f0a2ae-c400-4ddc-b3e9-169fafab8383 + icon = report + altitude = 6.8803951606387699 + index = 123 + seed = 822 +} +WAYPOINT +{ + name = KSC VAB Main Building + celestialName = Kerbin + latitude = -0.096774292553383504 + longitude = 285.379939331976 + navigationId = d4113c8a-4320-4396-befd-90fba6bc7d14 + icon = report + altitude = 110.858032149263 + index = 124 + seed = 337 +} +WAYPOINT +{ + name = KSC Mission Control + celestialName = Kerbin + latitude = -0.074839837287863406 + longitude = 285.38555081350199 + navigationId = 07f588a2-8a26-42f3-86ca-51279c679f88 + icon = report + altitude = 22.904211186803899 + index = 125 + seed = 37 +} +WAYPOINT +{ + name = KSC SPH + celestialName = Kerbin + latitude = -0.068314560757950796 + longitude = 285.37262543456501 + navigationId = 953653f6-86b9-4ad1-8ef7-2935452d482d + icon = report + altitude = 3.0041069599100898 + index = 126 + seed = 358 +} +WAYPOINT +{ + name = KSC SPH Round Tank + celestialName = Kerbin + latitude = -0.070576929301162897 + longitude = 285.35602146324197 + navigationId = e753894e-314a-46cd-907e-bf96c3232cf1 + icon = report + altitude = 20.9372527650557 + index = 127 + seed = 747 +} +WAYPOINT +{ + name = KSC SPH Water Tower + celestialName = Kerbin + latitude = -0.058021625483335899 + longitude = 285.35857267653398 + navigationId = b52fe15b-9036-4cc7-a386-15636ba19d67 + icon = report + altitude = 29.350859563797702 + index = 128 + seed = 269 +} +WAYPOINT +{ + name = KSC SPH Main Building + celestialName = Kerbin + latitude = -0.062774915944332793 + longitude = 285.36676573215601 + navigationId = 927dd6c3-344d-4a2b-a37b-45cbe2128254 + icon = report + altitude = 81.851956957950904 + index = 130 + seed = 1115 +} +WAYPOINT +{ + name = KSC Administration + celestialName = Kerbin + latitude = -0.092581025949561496 + longitude = 285.33689206467801 + navigationId = 255007c2-88e2-4207-8d85-10fca7601687 + icon = report + altitude = 17.094428881886401 + index = 132 + seed = 255 +} +WAYPOINT +{ + name = KSC Flag Pole + celestialName = Kerbin + latitude = -0.094144984707098006 + longitude = 285.34647714111202 + navigationId = 5fb4c97d-0f78-45a9-b1c0-11e3b8c25730 + icon = custom + altitude = 48.889007763238503 + index = 133 + seed = 105 +} +WAYPOINT +{ + name = KSC Astronaut Complex + celestialName = Kerbin + latitude = -0.089909523836995006 + longitude = 285.353940720249 + navigationId = a7c33410-1fce-4ba3-ba48-b750f05919f7 + icon = report + altitude = 25.070338910562 + index = 134 + seed = 398 +} +WAYPOINT +{ + name = KSC Tracking Station Hub + celestialName = Kerbin + latitude = -0.12719847030462 + longitude = 285.39462404211099 + navigationId = b58ce3bb-8e37-465e-a6d4-aeebeb01587a + icon = report + altitude = 16.8013761916664 + index = 135 + seed = 358 +} +WAYPOINT +{ + name = KSC Tracking Station Dish North + celestialName = Kerbin + latitude = -0.11823770130627 + longitude = 285.38962938277001 + navigationId = 060ec8fb-fe4e-4238-9f75-17443832bacb + icon = dish + altitude = 24.281359310727499 + index = 136 + seed = 16 +} +WAYPOINT +{ + name = KSC Tracking Station Dish South + celestialName = Kerbin + latitude = -0.13589354435676801 + longitude = 285.38949332033002 + navigationId = be2e0352-66ed-47a7-ba92-e35e9a4cc049 + icon = dish + altitude = 24.315369184245402 + index = 137 + seed = 337 +} +WAYPOINT +{ + name = KSC Tracking Station Dish East + celestialName = Kerbin + latitude = -0.12731756091773699 + longitude = 285.404782995262 + navigationId = 9ebc63c1-7a97-4108-8668-564d1884de5c + icon = dish + altitude = 24.281390124116999 + index = 138 + seed = 276 +} +WAYPOINT +{ + name = KSC Tracking Station + celestialName = Kerbin + latitude = -0.12443331920301801 + longitude = 285.39623886670398 + navigationId = a7c5d8a6-1028-4c73-af63-c406d3e6cbf6 + icon = report + altitude = 4.3622092258883596 + index = 139 + seed = 890 +} +WAYPOINT +{ + name = KSC R&D Small Lab + celestialName = Kerbin + latitude = -0.10354780221486801 + longitude = 285.355025695145 + navigationId = 89dec67e-1c11-4b47-b536-1a6dadd6885b + icon = report + altitude = 9.5331524281063995 + index = 140 + seed = 597 +} +WAYPOINT +{ + name = KSC R&D Side Lab + celestialName = Kerbin + latitude = -0.11053661135989 + longitude = 285.34447758648201 + navigationId = 05c8ab58-ea3b-4fa0-9d2b-4a63072a502d + icon = report + altitude = 22.641339755500699 + index = 141 + seed = 77 +} +WAYPOINT +{ + name = KSC R&D Central Building + celestialName = Kerbin + latitude = -0.109071838317709 + longitude = 285.352970668154 + navigationId = 91195f2c-90b9-4727-9e4d-6a3335b250d0 + icon = report + altitude = 34.309831616352298 + index = 142 + seed = 597 +} +WAYPOINT +{ + name = KSC R&D Main Building + celestialName = Kerbin + latitude = -0.10848324834083301 + longitude = 285.36248063932999 + navigationId = afaac97f-e05d-4197-a944-bef8ffed32c3 + icon = report + altitude = 28.734739397070399 + index = 143 + seed = 98 +} +WAYPOINT +{ + name = KSC R&D Corner Lab + celestialName = Kerbin + latitude = -0.118624032947731 + longitude = 285.366529153474 + navigationId = f8f3a000-c977-4c93-87dc-d6e2cd34360a + icon = report + altitude = 34.784655628493098 + index = 144 + seed = 501 +} +WAYPOINT +{ + name = KSC R&D Wind Tunnel + celestialName = Kerbin + latitude = -0.123517638824824 + longitude = 285.360777245132 + navigationId = d1d95275-9a34-4730-8d8a-eac89ddb8e44 + icon = report + altitude = 0 + index = 145 + seed = 808 +} +WAYPOINT +{ + name = KSC R&D Tanks + celestialName = Kerbin + latitude = -0.12137868545054201 + longitude = 285.35374778114402 + navigationId = 41be0955-16bb-4e87-b4b0-0f693719cd83 + icon = report + altitude = 9.1798749957233401 + index = 146 + seed = 37 +} +WAYPOINT +{ + name = KSC R&D Observatory + celestialName = Kerbin + latitude = -0.122488061527529 + longitude = 285.347702897479 + navigationId = 3dfc5ddb-b42b-4fc2-ad7d-cd788718c530 + icon = report + altitude = 35.593318588914997 + index = 147 + seed = 822 +} +WAYPOINT +{ + name = KSC R&D + celestialName = Kerbin + latitude = -0.10884933370783199 + longitude = 285.358611235723 + navigationId = 6bf4e0b5-ae96-4e83-8082-a8d7169cf142 + icon = report + altitude = 3.01313023851257 + index = 148 + seed = 180 +} +WAYPOINT +{ + name = KSC + celestialName = Kerbin + latitude = -0.079292882337452006 + longitude = 285.40410323138201 + navigationId = 7d8b0263-e4ab-40f6-af63-3f74f5a8f15e + icon = report + altitude = -1.09118695906368 + index = 149 + seed = 583 +} +WAYPOINT +{ + name = KSC VAB South Complex + celestialName = Kerbin + latitude = -0.106497259621255 + longitude = 285.380791209351 + navigationId = 2f7d2497-291a-4fe5-817d-84a543833398 + icon = report + altitude = 8.6853406010195595 + index = 150 + seed = 316 +} +WAYPOINT +{ + name = Island Launchsite + celestialName = Kerbin + latitude = -1.5292755201464101 + longitude = -71.885305541255093 + navigationId = bb4d2e1e-1fb0-4d93-b1fc-ff2831454093 + icon = balloon + altitude = 18.343590766541126 + index = 151 + seed = 119 +} +WAYPOINT +{ + name = Woomerang Launchpad + celestialName = Kerbin + latitude = 45.290008610357802 + longitude = 136.11000269884599 + navigationId = 48148dd2-e673-4285-aac5-a055b6f411e2 + icon = balloon + altitude = 5.5465857695093064 + index = 152 + seed = 876 +} +WAYPOINT +{ + name = Woomerang Tracking Station + celestialName = Kerbin + latitude = 44.720015892778001 + longitude = 137.029843878425 + navigationId = 5049d71c-6976-4bea-bb6b-7b2049a63845 + icon = dish + altitude = 1.7446588787679502 + index = 153 + seed = 876 +} +WAYPOINT +{ + name = KSC Runway 09 + celestialName = Kerbin + latitude = -0.048600385045034701 + longitude = -74.724409241422194 + navigationId = 96e5530a-947b-4004-8ff2-e67d6db70073 + icon = balloon + altitude = 4.5361671554856429 + index = 114 + seed = 1375 +} +WAYPOINT +{ + name = K2 Summit + celestialName = Kerbin + latitude = 0.062761120686451302 + longitude = -79.349539300638199 + navigationId = 04c0866a-8a74-40eb-a248-764e551e6a8a + icon = pressure + altitude = 0.038140040009238874 + index = 154 + seed = 384 +} +WAYPOINT +{ + name = Island Airfield Tower + celestialName = Kerbin + latitude = -1.52331871899049 + longitude = -71.911111810017005 + navigationId = 73caeafd-cfa1-49cc-9669-ab415133bce0 + icon = custom + altitude = 66.558396332664415 + index = 155 + seed = 426 +} +WAYPOINT +{ + name = Smiley Face + celestialName = Kerbin + latitude = -30 + longitude = -80 + navigationId = 66652944-f478-430f-87a3-48b1fd658d19 + icon = gravity + altitude = 0 + index = 156 + seed = 276 +} +WAYPOINT +{ + name = Baikerbanur Monolith + celestialName = Kerbin + latitude = 20.6708947559456 + longitude = -146.49685403868901 + navigationId = 5ce4f5b1-e46e-4538-ab9a-32c4f82fc413 + icon = custom + altitude = -1.323019093834148 + index = 157 + seed = 651 +} +WAYPOINT +{ + name = Baikerbanur VAB + celestialName = Kerbin + latitude = 20.635392812880202 + longitude = -146.430052175329 + navigationId = 5974e347-7e88-46e8-a6a8-921bfc061f16 + icon = custom + altitude = 57.133920537540462 + index = 158 + seed = 412 +} +WAYPOINT +{ + name = Baikerbanur Launchpad + celestialName = Kerbin + latitude = 20.663490720665202 + longitude = -146.42099044111399 + navigationId = 4651d52b-6a9a-4eee-b08c-1ef3bb56e91e + icon = balloon + altitude = 4.0092718037774944 + index = 159 + seed = 679 +} +WAYPOINT +{ + name = KSC Monolith + celestialName = Kerbin + latitude = 0.102329810251359 + longitude = -74.568421012228896 + navigationId = c1dbd986-6335-4cdb-91f3-557efeb9815b + icon = custom + altitude = 0.65132247610021921 + index = 160 + seed = 358 +} +WAYPOINT +{ + name = Nye Island Tracking Station + celestialName = Kerbin + latitude = 5.3599316110916302 + longitude = 108.54992089948 + navigationId = 29502e94-2f35-4163-aa39-6a4fcef970a7 + icon = dish + altitude = -9.8039397293468937 + index = 3 + seed = 597 +} +WAYPOINT +{ + name = Prime Meridian + celestialName = Kerbin + latitude = 0 + longitude = 0 + navigationId = 5263820b-44c1-4c08-bf86-9f2ff465ba06 + icon = thermometer + altitude = 0 + index = 161 + seed = 651 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.LandingSites.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.LandingSites.cfg new file mode 100644 index 0000000..898f4d5 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.LandingSites.cfg @@ -0,0 +1,92 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints. + +WAYPOINT +{ + name = LaunchPad + celestialName = Kerbin + icon = balloon + latitude = -0.0972077872620665 + longitude = 285.44232116398 + altitude = 7.81325398734771 + index = 0 + seed = 344 +} +WAYPOINT +{ + name = KSC Runway West + celestialName = Kerbin + icon = balloon + latitude = -0.048551152501917 + longitude = 285.273664964772 + altitude = 4.55218112771401 + index = 0 + seed = 344 +} +WAYPOINT +{ + name = KSC Runway East + celestialName = Kerbin + icon = balloon + latitude = -0.0502284824994308 + longitude = 285.509304422011 + altitude = 9.3232208619593 + index = 1 + seed = 344 +} +WAYPOINT +{ + name = Island Runway West + celestialName = Kerbin + icon = balloon + latitude = -1.51815682425884 + longitude = 288.032887160133 + altitude = 23.2588613616535 + index = 2 + seed = 344 +} +WAYPOINT +{ + name = Island Runway East + celestialName = Kerbin + icon = balloon + latitude = -1.51557302720493 + longitude = 288.148166478254 + altitude = 37.3101546143885 + index = 3 + seed = 344 +} +WAYPOINT +{ + name = VAB Helipad East + celestialName = Kerbin + icon = balloon + latitude = -0.0967891863704034 + longitude = 285.382581254365 + altitude = 110.841032719705 + index = 4 + seed = 344 +} +WAYPOINT +{ + name = VAB Helipad West + celestialName = Kerbin + icon = balloon + latitude = -0.0967742918350356 + longitude = 285.379923596384 + altitude = 110.84978304978 + index = 5 + seed = 344 +} +WAYPOINT +{ + name = Administration Helipad + celestialName = Kerbin + icon = balloon + latitude = -0.0925857413837188 + longitude = 285.336888947055 + altitude = 17.1359844910912 + index = 6 + seed = 344 +} diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Laythe.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Laythe.cfg new file mode 100644 index 0000000..38b83a2 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Laythe.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Highest Elevation + celestialName = Laythe + latitude = -17.589099999999998 + longitude = 172.58420000000001 + navigationId = b658c0e4-a5b3-4264-99dd-7432eee05018 + icon = pressure + altitude = -1.3642420526593924E-12 + index = 47 + seed = 344 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Laythe + latitude = 29.4543 + longitude = 7.3498999999999999 + navigationId = c76bb712-b752-4c4a-86fd-0cf2a4bbfed9 + icon = pressure + altitude = -2799.8879000000002 + index = 48 + seed = 384 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Minmus.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Minmus.cfg new file mode 100644 index 0000000..3e2fd9f --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Minmus.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Monolith + celestialName = Minmus + latitude = 23.776800000000001 + longitude = 60.046199999999999 + navigationId = fbf3d06b-3376-4af3-a102-d95f4534096c + icon = custom + altitude = -2.7284841053187847E-12 + index = 29 + seed = 248 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Minmus + latitude = -62.929699999999997 + longitude = 74.728999999999999 + navigationId = d3e788c7-3a91-4d51-b35b-501cdc1c7a74 + icon = pressure + altitude = -2.7284841053187799E-12 + index = 30 + seed = 16 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Moho.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Moho.cfg new file mode 100644 index 0000000..8a2f5b2 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Moho.cfg @@ -0,0 +1,39 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Lowest Elevation + celestialName = Moho + latitude = -19.654499999999999 + longitude = -166.23410000000001 + navigationId = 362860d0-ebc4-4c49-b32b-e8ef4d2a3eef + icon = pressure + altitude = 1.7763568394002501E-14 + index = 31 + seed = 98 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Moho + latitude = 54.679000000000002 + longitude = 153.49000000000001 + navigationId = 3531bbc3-f488-457b-9ea4-406a919ffeb8 + icon = pressure + altitude = -5.0022208597511053E-12 + index = 32 + seed = 241 +} +WAYPOINT +{ + name = Northern Sinkhole + celestialName = Moho + latitude = 90 + longitude = 0 + navigationId = 0614db8a-7fab-48e6-874f-dc2c7d8e900d + icon = pressure + altitude = -4600.0887722168118 + index = 162 + seed = 1197 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Mun.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Mun.cfg new file mode 100644 index 0000000..c5ed271 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Mun.cfg @@ -0,0 +1,147 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Highest Elevation + celestialName = Mun + latitude = -82.518299999999996 + longitude = -152.3254 + navigationId = 82927aae-3d08-4419-874b-544e45d547af + icon = pressure + altitude = 2.7284841053187847E-12 + index = 16 + seed = 23 +} +WAYPOINT +{ + name = Northwest Crater Arch + celestialName = Mun + latitude = 12.443199999999999 + longitude = 39.177999999999997 + navigationId = dce9943e-f7cf-4774-ab16-d156b2b0da87 + icon = seismic + altitude = 3.4106051316484809E-12 + index = 17 + seed = 330 +} +WAYPOINT +{ + name = Armstrong Monument + celestialName = Mun + latitude = 0.70269999999999999 + longitude = 22.747 + navigationId = 85b49f1e-7576-4c77-bb90-85b3ac62c91c + icon = custom + altitude = 2.2737367544323206E-13 + index = 18 + seed = 1197 +} +WAYPOINT +{ + name = Nearside Monolith + celestialName = Mun + latitude = -9.8314000000000004 + longitude = 25.917000000000002 + navigationId = 6f063b5f-02a9-4e98-9422-ff2f679cb8d8 + icon = custom + altitude = -2.1600499167107046E-12 + index = 19 + seed = 426 +} +WAYPOINT +{ + name = South Polar Monolith + celestialName = Mun + latitude = -82.206299999999999 + longitude = 102.93049999999999 + navigationId = 0a319114-cc2d-4e6d-9902-7f64b8e68830 + icon = custom + altitude = 0 + index = 21 + seed = 248 +} +WAYPOINT +{ + name = Crashed Saucer + celestialName = Mun + latitude = -70.955600000000004 + longitude = -68.137799999999999 + navigationId = abe0c9a8-650f-4679-b875-d1fd19f68caf + icon = custom + altitude = -4.5474735088646404E-12 + index = 22 + seed = 501 +} +WAYPOINT +{ + name = East Crater Arch + celestialName = Mun + latitude = 2.4695 + longitude = 81.513300000000001 + navigationId = d99b0e30-60ba-4bfb-ab4f-5fc2c66c8926 + icon = seismic + altitude = -4.5474735088646412E-13 + index = 23 + seed = 501 +} +WAYPOINT +{ + name = Northern Monolith + celestialName = Mun + latitude = 57.660400000000003 + longitude = 9.1422000000000008 + navigationId = 507bb506-4456-49c1-9579-cd1790bc463b + icon = custom + altitude = 4.5474735088646404E-12 + index = 24 + seed = 269 +} +WAYPOINT +{ + name = Lowest Elevation + celestialName = Mun + latitude = 35.320999999999998 + longitude = -76.629599999999996 + navigationId = 14ae4a01-9d7a-494e-9d9b-e6dd8e721148 + icon = pressure + altitude = -3.637978807091713E-12 + index = 25 + seed = 972 +} +WAYPOINT +{ + name = East Farside Arch + celestialName = Mun + latitude = -12.443099999999999 + longitude = -140.822 + navigationId = aa547350-8932-4053-a8d6-900f5638869d + icon = seismic + altitude = 0 + index = 26 + seed = 119 +} +WAYPOINT +{ + name = Kerbin Zenith + celestialName = Mun + latitude = 0 + longitude = 47 + navigationId = 61c70b61-5047-4fa8-b4ca-83877b886233 + icon = dish + altitude = 4.0927261579781771E-12 + index = 27 + seed = 747 +} +WAYPOINT +{ + name = Kerbin Nadir + celestialName = Mun + latitude = 0 + longitude = -133 + navigationId = aea94a99-3943-4693-875b-888350a2eb26 + icon = dish + altitude = -2.7284841053187847E-12 + index = 28 + seed = 23 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Pol.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Pol.cfg new file mode 100644 index 0000000..0a2e8ad --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Pol.cfg @@ -0,0 +1,27 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Lowest Elevation + celestialName = Pol + latitude = -25.125699999999998 + longitude = 173.77080000000001 + navigationId = cf7e900b-4995-4ffe-b801-64dc9e8bbcfc + icon = pressure + altitude = -4.2632564145605999E-14 + index = 58 + seed = 337 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Pol + latitude = -62.830800000000004 + longitude = 164.58619999999999 + navigationId = e6fbae07-f2ba-4ab8-bd60-44b7b6398c39 + icon = pressure + altitude = -4.5474735088646404E-12 + index = 59 + seed = 1197 +} diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Tylo.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Tylo.cfg new file mode 100644 index 0000000..33117f4 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Tylo.cfg @@ -0,0 +1,15 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Cave + celestialName = Tylo + latitude = 40.267099999999999 + longitude = 174.04669999999999 + navigationId = 12910cef-d4a3-466e-b96f-90d190566dd2 + icon = report + altitude = 2.5579538487363607E-12 + index = 54 + seed = 187 +} diff --git a/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Vall.cfg b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Vall.cfg new file mode 100644 index 0000000..5a747e5 --- /dev/null +++ b/GameData/WaypointManager/PluginData/CustomWaypoints/CustomWaypoints.Vall.cfg @@ -0,0 +1,39 @@ +// Waypoint Manager Custom Waypoints File +// +// This file contains an extract of Waypoint Manager custom waypoints +WAYPOINT +{ + name = Lowest Elevation + celestialName = Vall + latitude = 11.634499999999999 + longitude = 145.49189999999999 + navigationId = cf72209a-2994-42af-a970-49182ecae345 + icon = pressure + altitude = -394.33319999999998 + index = 49 + seed = 316 +} +WAYPOINT +{ + name = Highest Elevation + celestialName = Vall + latitude = -57.491500000000002 + longitude = -144.45920000000001 + navigationId = 21dfc4a1-43ed-4612-92df-eb181282f1c1 + icon = pressure + altitude = 4.6895820560166612E-12 + index = 50 + seed = 1375 +} +WAYPOINT +{ + name = Vallhenge + celestialName = Vall + latitude = -60.328899999999997 + longitude = 84.057900000000004 + navigationId = e125af95-0f29-4a2d-8b30-3b774771a5e2 + icon = custom + altitude = 9.0949470177292824E-13 + index = 51 + seed = 384 +} \ No newline at end of file diff --git a/GameData/WaypointManager/PluginData/empty.txt b/GameData/WaypointManager/PluginData/empty.txt deleted file mode 100644 index e69de29..0000000 diff --git a/GameData/WaypointManager/icons/CelestialBodies/Bop.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Bop.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Bop.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Bop.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Dres.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Dres.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Dres.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Dres.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Duna.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Duna.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Duna.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Duna.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Eeloo.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Eeloo.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Eeloo.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Eeloo.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Eve.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Eve.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Eve.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Eve.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Gilly.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Gilly.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Gilly.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Gilly.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Ike.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Ike.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Ike.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Ike.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Jool.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Jool.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Jool.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Jool.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Kerbin.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Kerbin.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Kerbin.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Kerbin.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Laythe.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Laythe.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Laythe.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Laythe.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Minmus.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Minmus.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Minmus.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Minmus.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Moho.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Moho.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Moho.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Moho.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Mun.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Mun.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Mun.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Mun.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Pol.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Pol.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Pol.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Pol.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Tylo.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Tylo.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Tylo.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Tylo.png diff --git a/GameData/WaypointManager/icons/CelestialBodies/Vall.png b/GameData/WaypointManager/PluginData/icons/CelestialBodies/Vall.png similarity index 100% rename from GameData/WaypointManager/icons/CelestialBodies/Vall.png rename to GameData/WaypointManager/PluginData/icons/CelestialBodies/Vall.png diff --git a/GameData/WaypointManager/icons/Special/nyan.png b/GameData/WaypointManager/PluginData/icons/Special/nyan.png similarity index 100% rename from GameData/WaypointManager/icons/Special/nyan.png rename to GameData/WaypointManager/PluginData/icons/Special/nyan.png diff --git a/GameData/WaypointManager/icons/addWaypoint.png b/GameData/WaypointManager/PluginData/icons/addWaypoint.png similarity index 100% rename from GameData/WaypointManager/icons/addWaypoint.png rename to GameData/WaypointManager/PluginData/icons/addWaypoint.png diff --git a/GameData/WaypointManager/icons/close.png b/GameData/WaypointManager/PluginData/icons/close.png similarity index 100% rename from GameData/WaypointManager/icons/close.png rename to GameData/WaypointManager/PluginData/icons/close.png diff --git a/GameData/WaypointManager/icons/deleteWaypoint.png b/GameData/WaypointManager/PluginData/icons/deleteWaypoint.png similarity index 100% rename from GameData/WaypointManager/icons/deleteWaypoint.png rename to GameData/WaypointManager/PluginData/icons/deleteWaypoint.png diff --git a/GameData/WaypointManager/icons/editWaypoint.png b/GameData/WaypointManager/PluginData/icons/editWaypoint.png similarity index 100% rename from GameData/WaypointManager/icons/editWaypoint.png rename to GameData/WaypointManager/PluginData/icons/editWaypoint.png diff --git a/GameData/WaypointManager/icons/settings.png b/GameData/WaypointManager/PluginData/icons/settings.png similarity index 100% rename from GameData/WaypointManager/icons/settings.png rename to GameData/WaypointManager/PluginData/icons/settings.png diff --git a/GameData/WaypointManager/icons/toolbar.png b/GameData/WaypointManager/PluginData/icons/toolbar.png similarity index 100% rename from GameData/WaypointManager/icons/toolbar.png rename to GameData/WaypointManager/PluginData/icons/toolbar.png diff --git a/GameData/WaypointManager/icons/toolbarSmall.png b/GameData/WaypointManager/PluginData/icons/toolbarSmall.png similarity index 100% rename from GameData/WaypointManager/icons/toolbarSmall.png rename to GameData/WaypointManager/PluginData/icons/toolbarSmall.png diff --git a/GameData/WaypointManager/Plugins/WaypointManager.dll b/GameData/WaypointManager/Plugins/WaypointManager.dll new file mode 100644 index 0000000..fe93aa7 Binary files /dev/null and b/GameData/WaypointManager/Plugins/WaypointManager.dll differ diff --git a/GameData/WaypointManager/WaypointManager.dll b/GameData/WaypointManager/WaypointManager.dll deleted file mode 100644 index 8b7ed67..0000000 Binary files a/GameData/WaypointManager/WaypointManager.dll and /dev/null differ diff --git a/GameData/WaypointManager/WaypointManager.version b/GameData/WaypointManager/WaypointManager.version index 25fcdcd..dc54f3f 100644 --- a/GameData/WaypointManager/WaypointManager.version +++ b/GameData/WaypointManager/WaypointManager.version @@ -1,32 +1,31 @@ { - "NAME":"Waypoint Manager", - "URL":"https://raw.githubusercontent.com/jrossignol/WaypointManager/master/GameData/WaypointManager/WaypointManager.version", - "DOWNLOAD":"https://github.com/jrossignol/WaypointManager/releases", - "CHANGE_LOG_URL":"https://raw.githubusercontent.com/jrossignol/WaypointManager/2.8.1/CHANGES.txt", - "GITHUB":{ - "USERNAME":"jrossignol", - "REPOSITORY":"WaypointManager", - "ALLOW_PRE_RELEASE":false - }, - "VERSION":{ - "MAJOR":2, - "MINOR":8, - "PATCH":1, - "BUILD":0 - }, - "KSP_VERSION":{ - "MAJOR":1, - "MINOR":8, - "PATCH":0 - }, - "KSP_VERSION_MIN":{ - "MAJOR":1, - "MINOR":8, - "PATCH":0 - }, - "KSP_VERSION_MAX":{ - "MAJOR":1, - "MINOR":99, - "PATCH":99 - } - } + "NAME": "Waypoint Manager", + "URL": "https://raw.githubusercontent.com/linuxgurugamer/WaypointManager/refs/heads/master/WaypointManager.version", + "DOWNLOAD": "https://github.com/linuxgurugamer/WaypointManager/releases", + "GITHUB": { + "USERNAME": "jrossignol", + "REPOSITORY": "WaypointManager", + "ALLOW_PRE_RELEASE": false + }, + "VERSION": { + "MAJOR": 2, + "MINOR": 8, + "PATCH": 4, + "BUILD": 7 + }, + "KSP_VERSION": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 4 + }, + "KSP_VERSION_MIN": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 0 + }, + "KSP_VERSION_MAX": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 99 + } +} diff --git a/source/WaypointManager.sln b/WaypointManager.sln similarity index 59% rename from source/WaypointManager.sln rename to WaypointManager.sln index 95353a9..3afefc8 100644 --- a/source/WaypointManager.sln +++ b/WaypointManager.sln @@ -1,10 +1,22 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35312.102 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WaypointManager", "WaypointManager\WaypointManager.csproj", "{C2C97615-1B94-4A31-9A68-042F6457403E}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{E9463310-6814-47F6-8FBE-881501C4309C}" + ProjectSection(SolutionItems) = preProject + BUGS.txt = BUGS.txt + buildRelease.bat = buildRelease.bat + Changelog.txt = Changelog.txt + CHANGES.txt = CHANGES.txt + deploy.bat = deploy.bat + jenkins.txt = jenkins.txt + LICENSE.txt = LICENSE.txt + WaypointManager.version = WaypointManager.version + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -19,4 +31,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3FC12887-93E0-4A1E-AEFE-F05FEAE376CA} + EndGlobalSection EndGlobal diff --git a/WaypointManager.version b/WaypointManager.version new file mode 100644 index 0000000..dc54f3f --- /dev/null +++ b/WaypointManager.version @@ -0,0 +1,31 @@ +{ + "NAME": "Waypoint Manager", + "URL": "https://raw.githubusercontent.com/linuxgurugamer/WaypointManager/refs/heads/master/WaypointManager.version", + "DOWNLOAD": "https://github.com/linuxgurugamer/WaypointManager/releases", + "GITHUB": { + "USERNAME": "jrossignol", + "REPOSITORY": "WaypointManager", + "ALLOW_PRE_RELEASE": false + }, + "VERSION": { + "MAJOR": 2, + "MINOR": 8, + "PATCH": 4, + "BUILD": 7 + }, + "KSP_VERSION": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 4 + }, + "KSP_VERSION_MIN": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 0 + }, + "KSP_VERSION_MAX": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 99 + } +} diff --git a/WaypointManager/AssemblyVersion.cs b/WaypointManager/AssemblyVersion.cs new file mode 100644 index 0000000..ab03550 --- /dev/null +++ b/WaypointManager/AssemblyVersion.cs @@ -0,0 +1,10 @@ + + // This code was generated by a tool. Any changes made manually will be lost + // the next time this code is regenerated. + // + + using System.Reflection; + + [assembly: AssemblyFileVersion("2.8.4.7")] + [assembly: AssemblyVersion("2.8.4.7")] + [assembly: KSPAssembly("WaypointManager", 2, 8, 4)] diff --git a/WaypointManager/AssemblyVersion.tt b/WaypointManager/AssemblyVersion.tt new file mode 100644 index 0000000..84dd1a5 --- /dev/null +++ b/WaypointManager/AssemblyVersion.tt @@ -0,0 +1,102 @@ +<#@ template debug="false" hostspecific="true" language="C#" #> +<#@ import namespace="System.IO" #> +<#@ output extension=".cs" #> + +<#@ assembly name="EnvDTE" #><# /* This assembly provides access to Visual Studio project properties. */ #> +<# + + // Instructions + // 1. Add a new Text Template to the project + // 2. Copy this file into the new template + // 3. Update the string: versionfile with the complete path to the .version file + // 4. Remove the following line from the file AssemblyInfo.cs (usually located in the "Property" folder inside your C# project): + // [assembly: AssemblyVersion("1.0.0.0")] + // 5. Add the following to the PreBuild steps: + // + // set textTemplatingPath="%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\texttransform.exe" + // %textTemplatingPath% "$(ProjectDir)AssemblyVersion.tt" + + + int major = 0; + int minor = 0; + int build = 0; + int patch = 0; + bool versionSection = false; + + int i = 0; + int i2 = 0; + string s; + + // For Visual Studio / MSBuild Build-Time Template Resolution + string RootDirectory = System.IO.Path.GetDirectoryName(Host.TemplateFile) + @"\..\"; + + // + // Update the following with the name of the .version file which is in the root directory + // + string versionfile = RootDirectory + "WaypointManager.version"; + + + if (!File.Exists(versionfile)) + { + Write("File: " + versionfile + " missing\n"); + } + + try + { + foreach (var line in File.ReadAllLines(versionfile)) + { + if (line != null) + { + if (!versionSection) + { + if (line.Contains("\"VERSION\"")) + versionSection = true; + } + else + { + if (line.Contains("}")) + versionSection = false; + i = line.IndexOf(":"); + i2 = line.IndexOf(","); + if (i2 == -1) + i2 = line.Length; + if (i >= 0 && i2 >= 0) + { + s = line.Substring(i + 1, i2 - i - 1); + + if (line.Contains("MAJOR")) + Int32.TryParse(s, out major); + + if (line.Contains("MINOR")) + Int32.TryParse(s, out minor); + + if (line.Contains("PATCH")) + Int32.TryParse(s, out patch); + + if (line.Contains("BUILD")) + Int32.TryParse(s, out build); + } + } + } + } + + } + catch + { + major = 1; + minor = 0; + patch = 0; + build = 0; + } + //Write("File done"); + + #> + // This code was generated by a tool. Any changes made manually will be lost + // the next time this code is regenerated. + // + + using System.Reflection; + + [assembly: AssemblyFileVersion("<#= major #>.<#= minor #>.<#= patch #>.<#= build #>")] + [assembly: AssemblyVersion("<#= major #>.<#= minor #>.<#= patch #>.<#= build #>")] + [assembly: KSPAssembly("WaypointManager", <#= major #>, <#= minor #>, <#= patch #>)] diff --git a/source/WaypointManager/Config.cs b/WaypointManager/Config.cs similarity index 76% rename from source/WaypointManager/Config.cs rename to WaypointManager/Config.cs index 24fd56d..4eddd62 100644 --- a/source/WaypointManager/Config.cs +++ b/WaypointManager/Config.cs @@ -59,17 +59,24 @@ public enum WaypointDisplay public static bool hudTime = true; public static bool hudHeading = false; public static bool hudAngle = false; - - public static bool useStockToolbar = true; + public static bool hudCoordinates = false; public static float opacity = 1.0f; + public static float scaling = 1.0f; + + public static float displayOpacity = 0.0f; + public static float backgroundGrey = 0.5f; + public static Texture2D toolbarIcon; public static Texture2D addWaypointIcon; public static Texture2D editWaypointIcon; public static Texture2D deleteWaypointIcon; public static Texture2D settingsIcon; public static Texture2D closeIcon; + public static Rect displayBox = new Rect(0,0,0,0); + internal static float boxTop = -1; + internal static float boxLeft = -1; /// /// Saves the configuration to the default configuration file. @@ -88,8 +95,16 @@ public static void Save() configNode.AddValue("hudHeading", hudHeading); configNode.AddValue("hudAngle", hudAngle); configNode.AddValue("displayDecimal", displayDecimal); - configNode.AddValue("useStockToolbar", useStockToolbar); configNode.AddValue("opacity", opacity); + configNode.AddValue("hudCoordinates", hudCoordinates); + configNode.AddValue("scaling", scaling); + + configNode.AddValue("boxTop", boxTop); + configNode.AddValue("boxLeft", boxLeft); + configNode.AddValue("displayOpacity", displayOpacity); + configNode.AddValue("backgroundGrey", backgroundGrey); + + configNode.Save(ConfigFileName, "Waypoint Manager Configuration File\r\n" + @@ -125,19 +140,30 @@ public static void Load() hudDistance = Convert.ToBoolean(configNode.GetValue("hudDistance")); hudTime = Convert.ToBoolean(configNode.GetValue("hudTime")); hudHeading = Convert.ToBoolean(configNode.GetValue("hudHeading")); + hudCoordinates = Convert.ToBoolean(configNode.GetValue("hudCoordinates")); hudAngle = configNode.HasValue("hudAngle") ? Convert.ToBoolean(configNode.GetValue("hudAngle")) : false; opacity = configNode.HasValue("opacity") ? (float)Convert.ToDouble(configNode.GetValue("opacity")) : 1.0f; displayDecimal = configNode.HasValue("displayDecimal") ? Convert.ToBoolean(configNode.GetValue("displayDecimal")) : false; - if (configNode.HasValue("useStockToolbar")) + + scaling = configNode.HasValue("scaling") ? (float)Convert.ToDouble(configNode.GetValue("scaling")) : 1.0f; + + if (configNode.HasValue("boxTop")) + { + boxLeft = (float)Convert.ToDouble(configNode.GetValue("boxLeft")); + boxTop = (float)Convert.ToDouble(configNode.GetValue("boxTop")); + } + + if (configNode.HasValue("displayOpacity")) { - useStockToolbar = Convert.ToBoolean(configNode.GetValue("useStockToolbar")); + displayOpacity = configNode.HasValue("displayOpacity") ? (float)Convert.ToDouble(configNode.GetValue("displayOpacity")) : 0.0f; } - // If toolbar isn't installed, always use stock toolbar - if (!ToolbarManager.ToolbarAvailable) + if (configNode.HasValue("backgroundGrey")) { - useStockToolbar = true; + backgroundGrey = configNode.HasValue("backgroundGrey") ? (float)Convert.ToDouble(configNode.GetValue("backgroundGrey")) : 0.0f; } + WaypointFlightRenderer.SetupStyles(true); + } private static T GetEnumValue(this ConfigNode configNode, string name) diff --git a/source/WaypointManager/CustomWaypointGUI.cs b/WaypointManager/CustomWaypointGUI.cs similarity index 93% rename from source/WaypointManager/CustomWaypointGUI.cs rename to WaypointManager/CustomWaypointGUI.cs index 2f148bb..ba53d05 100644 --- a/source/WaypointManager/CustomWaypointGUI.cs +++ b/WaypointManager/CustomWaypointGUI.cs @@ -1,10 +1,14 @@ using System; +using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; using FinePrint; using FinePrint.Utilities; +using ClickThroughFix; +using ToolbarControl_NS; +using static WaypointManager.RegisterToolbar; namespace WaypointManager { @@ -17,15 +21,23 @@ public static class CustomWaypointGUI public static List customIcons = new List(); - private const float ICON_PICKER_WIDTH = 302; + internal const float ICON_PICKER_WIDTH = 302; private enum WindowMode { None, Add, Edit, + Edit_Stock, Delete } - + private static string[] windowModeStr = { + "None", + "Add", + "Edit", + "Edit Stock", + "Delete" + }; + // So, what is this random list of numbers? It's a side effect from the awesome // design decision in KSP/FinePrint to make stuff based on a random seed. There // is no way to externally provide a color for the waypoint, so instead we provide @@ -85,7 +97,7 @@ public static MapObject MapObject private static GUIContent[] colors = null; private static bool showExportDialog = false; - + private static bool mapLocationMode = false; private static int selectedIcon = 0; @@ -114,7 +126,7 @@ public static void AddWaypoint() AddWaypoint(0.0, 0.0, 0.0); } } - + /// /// Interface for showing the add waypoint dialog. /// @@ -157,14 +169,17 @@ public static void AddWaypoint(double latitude, double longitude, double altitud /// /// Interface for showing the edit waypoint dialog. /// - public static void EditWaypoint(Waypoint waypoint) + public static void EditWaypoint(Waypoint waypoint, bool stock = false) { if (windowMode == WindowMode.None) { wpWindowPos = new Rect((Screen.width - wpWindowPos.width) / 2.0f, (Screen.height - wpWindowPos.height) / 2.0f - 100f, wpWindowPos.width, wpWindowPos.height); } - windowMode = WindowMode.Edit; + if (stock) + windowMode = WindowMode.Edit_Stock; + else + windowMode = WindowMode.Edit; selectedWaypoint = waypoint; template.name = waypoint.name; @@ -220,9 +235,14 @@ public static void OnGUI() foreach (ConfigNode configNode in iconConfig) { string dir = configNode.GetValue("url"); - foreach (GameDatabase.TextureInfo texInfo in GameDatabase.Instance.databaseTexture.Where(t => t.name.StartsWith(dir))) + if (Directory.Exists(KSPUtil.ApplicationRootPath+"GameData/" + dir)) { - content.Add(new GUIContent(texInfo.texture, texInfo.name)); + foreach (var str in Directory.GetFiles(KSPUtil.ApplicationRootPath+"GameData/" + dir)) + { + var icon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref icon, str); + content.Add(new GUIContent(icon, str)); + } } } @@ -280,15 +300,16 @@ public static void OnGUI() disabledText.normal.textColor = Color.gray; } - if (WaypointManager.Instance != null && WaypointManager.Instance.visible) + + if (WaypointManager.Instance != null && WaypointManager.Instance.visible && !ImportExport.helpDialogVisible) { if (windowMode != WindowMode.None && windowMode != WindowMode.Delete) { - wpWindowPos = GUILayout.Window( + wpWindowPos = ClickThruBlocker.GUILayoutWindow( typeof(WaypointManager).FullName.GetHashCode() + 2, wpWindowPos, WindowGUI, - windowMode.ToString() + " Waypoint", + windowModeStr[(int)windowMode] + " Waypoint", GUILayout.Height(1), GUILayout.ExpandHeight(true)); // Add the close icon @@ -305,7 +326,7 @@ public static void OnGUI() iconPickerPosition = new Rect((Screen.width - ICON_PICKER_WIDTH) / 2.0f, wpWindowPos.yMax, ICON_PICKER_WIDTH, 1); } - iconPickerPosition = GUILayout.Window( + iconPickerPosition = ClickThruBlocker.GUILayoutWindow( typeof(WaypointManager).FullName.GetHashCode() + 3, iconPickerPosition, IconPickerGUI, @@ -326,7 +347,7 @@ public static void OnGUI() } else if (windowMode == WindowMode.Delete) { - rmWindowPos = GUILayout.Window( + rmWindowPos = ClickThruBlocker.GUILayoutWindow( typeof(WaypointManager).FullName.GetHashCode() + 2, rmWindowPos, DeleteGUI, @@ -341,7 +362,7 @@ public static void OnGUI() if (showExportDialog) { - expWindowPos = GUILayout.Window( + expWindowPos = ClickThruBlocker.GUILayoutWindow( typeof(WaypointManager).FullName.GetHashCode() + 3, expWindowPos, ExportGUI, @@ -370,7 +391,7 @@ public static void OnGUI() private static void DeleteGUI(int windowID) { GUILayout.BeginVertical(); - GUILayout.Label("Delete custom waypoint '" + selectedWaypoint.name + "'?"); + GUILayout.Label("Delete waypoint '" + selectedWaypoint.name + "'?"); GUILayout.BeginHorizontal(); if (GUILayout.Button("Yes")) { @@ -442,7 +463,8 @@ private static void WindowGUI(int windowID) GUILayout.Space(4); GUILayout.BeginVertical(); - if (GUILayout.Button(Util.GetContractIcon(template.id, template.seed))) + + if (GUILayout.Button(Util.GetContractIcon(template.id, template.seed), GUILayout.Width(40), GUILayout.Height(40))) { showIconPicker = !showIconPicker; @@ -599,6 +621,7 @@ private static void IconPickerGUI(int windowID) /// public static void DrawMarker() { + //Log.Info("DrawMarker, template.id: " + template.id); // Only handle on repaint events if (windowMode == WindowMode.Add && Event.current.type == EventType.Repaint) { diff --git a/source/WaypointManager/CustomWaypoints.cs b/WaypointManager/CustomWaypoints.cs similarity index 83% rename from source/WaypointManager/CustomWaypoints.cs rename to WaypointManager/CustomWaypoints.cs index aff073c..b3618a1 100644 --- a/source/WaypointManager/CustomWaypoints.cs +++ b/WaypointManager/CustomWaypoints.cs @@ -15,11 +15,19 @@ namespace WaypointManager [KSPAddon(KSPAddon.Startup.MainMenu, true)] public class CustomWaypoints : MonoBehaviour { + public static string CustomWaypointsDirectory + { + get + { + return string.Join(Path.DirectorySeparatorChar.ToString(), new string[] { KSPUtil.ApplicationRootPath, "GameData", "WaypointManager", "PluginData" }); + + } + } public static string CustomWaypointsFileName { get { - return string.Join(Path.DirectorySeparatorChar.ToString(), new string[] { KSPUtil.ApplicationRootPath, "GameData", "WaypointManager", "PluginData", "CustomWaypoints.cfg" }); + return string.Join(CustomWaypointsDirectory, "CustomWaypoints.cfg"); } } @@ -124,18 +132,42 @@ private string HexValue(Color color) return "#" + c.r.ToString("X2") + c.g.ToString("X2") + c.b.ToString("X2"); } + const string WAYPOINT_URL = "WAYPOINT"; + public static void Import() { - ConfigNode configNode = ConfigNode.Load(CustomWaypointsFileName); - if (configNode == null) + ConfigNode master = new ConfigNode("CUSTOM_WAYPOINTS"); + int fileCount = 0, preload = 0; + + ConfigNode configNode = null; ; + configNode = ConfigNode.Load(CustomWaypointsFileName); + fileCount = configNode.CountNodes; + + if (configNode != null) + { + AddWaypointsFromConfig(master, configNode); + } + + if (master.CountNodes == 0) { ScreenMessages.PostScreenMessage(string.Format("Couldn't load custom waypoint file {0}!", CustomWaypointsFileName), 6.0f, ScreenMessageStyle.UPPER_CENTER); return; } - ConfigNode master = new ConfigNode("CUSTOM_WAYPOINTS"); + ScenarioCustomWaypoints.Instance.OnLoad(master); + int count = master.nodes.Count; + if (fileCount > 0) + ScreenMessages.PostScreenMessage("Imported " + fileCount + " waypoint" + (fileCount != 1 ? "s" : "") + " from " + CustomWaypointsFileName, + 6.0f, ScreenMessageStyle.UPPER_CENTER); + if (preload > 0) + ScreenMessages.PostScreenMessage("Imported " + preload + " preload" + (preload != 1 ? "s" : "") + " from pre-loaded configs", + 6.0f, ScreenMessageStyle.UPPER_CENTER); + } + + internal static void AddWaypointsFromConfig(ConfigNode master, ConfigNode configNode) + { // Add the non-dupes into a new list foreach (ConfigNode child in configNode.GetNodes("WAYPOINT")) { @@ -165,14 +197,7 @@ public static void Import() master.AddNode(child); } } - - ScenarioCustomWaypoints.Instance.OnLoad(master); - - int count = master.nodes.Count; - ScreenMessages.PostScreenMessage("Imported " + count + " waypoint" + (count != 1 ? "s" : "") + " from " + CustomWaypointsFileName, - 6.0f, ScreenMessageStyle.UPPER_CENTER); } - public static void Export() { if (File.Exists(CustomWaypointsFileName)) diff --git a/source/WaypointManager/GameEvents.cs b/WaypointManager/GameEvents.cs similarity index 95% rename from source/WaypointManager/GameEvents.cs rename to WaypointManager/GameEvents.cs index 9fb4be0..2968a1a 100644 --- a/source/WaypointManager/GameEvents.cs +++ b/WaypointManager/GameEvents.cs @@ -22,6 +22,7 @@ void WaypointIconAdded(string name) void Awake() { onWaypointIconAdded.Add(new EventData.OnEvent(WaypointIconAdded)); + DontDestroyOnLoad(this); } } } diff --git a/WaypointManager/ImportExport.cs b/WaypointManager/ImportExport.cs new file mode 100644 index 0000000..bf7a10b --- /dev/null +++ b/WaypointManager/ImportExport.cs @@ -0,0 +1,152 @@ +using ClickThroughFix; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Policy; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using static WaypointManager.RegisterToolbar; + +namespace WaypointManager +{ + + public class ImportExport : MonoBehaviour + { + List waypointFiles = new List(); + string path = ""; + bool visible = true; + Rect windowPos = new Rect(500, 500, WaypointManager.SETTINGS_WIDTH, 200); + + static internal bool helpDialogVisible = false; + bool exitCustomImport = false; + + + void Awake() + { + path = string.Join(Path.DirectorySeparatorChar.ToString(), CustomWaypoints.CustomWaypointsDirectory, "CustomWaypoints"); + } + + void Start() + { + foreach (var str in Directory.GetFiles(path)) + { + waypointFiles.Add(Path.GetFileName(str)); + } + windowPos = new Rect( + WaypointManager.Instance.settingsPosition.xMax + WaypointManager.SETTINGS_WIDTH + 4 > Screen.width ? WaypointManager.Instance.settingsPosition.xMin - WaypointManager.SETTINGS_WIDTH - 4 : WaypointManager.Instance.settingsPosition.xMax, + WaypointManager.Instance.settingsPosition.yMin, WaypointManager.SETTINGS_WIDTH, 200); + + } + + // OnGUI has all the GUI stuff + void OnGUI() + { + if (visible && !ImportExport.helpDialogVisible) + { + + windowPos = ClickThruBlocker.GUILayoutWindow(typeof(WaypointManager).FullName.GetHashCode() + 20, + windowPos, WindowGUI, "Custom Waypoint Selection"); + + // Add the close icon + if (GUI.Button(new Rect(windowPos.xMax - 18, windowPos.yMin + 2, 16, 16), Config.closeIcon, GUI.skin.label)) + { + Destroy(this); + } + + } + } + + + int selected = -1; + Vector2 scrollListPos = new Vector2(); + void WindowGUI(int id) + { + GUILayout.BeginHorizontal(); + scrollListPos = GUILayout.BeginScrollView(scrollListPos); + int cnt = -1; + foreach (var wayPointFile in waypointFiles) + { + cnt++; + GUILayout.BeginHorizontal(); + string str = wayPointFile.Replace("CustomWaypoints.", ""); + str = str.Replace(".cfg", ""); + if (selected == cnt) + str = "--> " + str + " <--"; + if (GUILayout.Button(str)) + { + selected = cnt; + } + GUILayout.EndHorizontal(); + } + GUILayout.EndScrollView(); + GUILayout.EndHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.BeginHorizontal(); + GUI.enabled = (selected >= 0); + if (GUILayout.Button("Import")) + { + ImportSelectedFile(selected); + } + GUI.enabled = true; + if (GUILayout.Button("OK") || exitCustomImport) + { + visible = false; + Destroy(this); + } + GUILayout.EndHorizontal(); + GUILayout.BeginHorizontal(); + if (!ImportExport.helpDialogVisible && GUILayout.Button("Custom WP Help")) + { + helpDialogVisible = true; + DialogGUIBase[] options = new DialogGUIBase[2]; + + options[0] = new DialogGUIButton("Ok", () => + { + helpDialogVisible = false; + }); + options[1] = new DialogGUIButton("Close", () => + { + exitCustomImport = true; + helpDialogVisible = false; + }); + + var multidialog = new MultiOptionDialog("waypointManager", + "If you have custom waypoints in a file, you can add it to the directory for loading.\n\n" + + "Put your custom file in the following directory:\n\nGameData/WaypointManager/PluginData/CustomWayPoints\n\n", "Custom File Help", + UI.StyleCache.Skin, + /*HighLogic.UISkin,*/ 450, options); + + var _activePopup = PopupDialog.SpawnPopupDialog(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), multidialog, false, HighLogic.UISkin, true); + } + GUILayout.EndHorizontal(); + GUI.DragWindow(); + } + + void ImportSelectedFile(int cnt) + { + var wayPointFile = waypointFiles[cnt]; + var fullpath = string.Join(Path.DirectorySeparatorChar.ToString(), path, wayPointFile); + ConfigNode master = new ConfigNode(); + var configNode = ConfigNode.Load(fullpath); + CustomWaypoints.AddWaypointsFromConfig(master, configNode); + ScenarioCustomWaypoints.Instance.OnLoad(master); + + int count = master.nodes.Count; + if (count > 0) + { + Log.Info("[WM] Imported " + count + " waypoint" + (count != 1 ? "s" : "") + " from " + wayPointFile); + ScreenMessages.PostScreenMessage("Imported " + count + " waypoint" + (count != 1 ? "s" : "") + " from " + wayPointFile, + 6.0f, ScreenMessageStyle.UPPER_CENTER); + } + else + { + Log.Info("[WM] No new waypoints found to import"); + ScreenMessages.PostScreenMessage("No new waypoints found to import", 6f); + } + + } + + } +} diff --git a/WaypointManager/InstallChecker.cs b/WaypointManager/InstallChecker.cs new file mode 100644 index 0000000..92f53c5 --- /dev/null +++ b/WaypointManager/InstallChecker.cs @@ -0,0 +1,99 @@ +/** + * Based on the InstallChecker from the Kethane mod for Kerbal Space Program. + * https://github.com/Majiir/Kethane/blob/b93b1171ec42b4be6c44b257ad31c7efd7ea1702/Plugin/InstallChecker.cs + * + * Original is (C) Copyright Majiir. + * CC0 Public Domain (http://creativecommons.org/publicdomain/zero/1.0/) + * http://forum.kerbalspaceprogram.com/threads/65395-CompatibilityChecker-Discussion-Thread?p=899895&viewfull=1#post899895 + * + * This file has been modified extensively and is released under the same license. + */ +using System; +using System.IO; +using System.Linq; +using System.Reflection; +using UnityEngine; + +namespace WaypointManager +{ + [KSPAddon(KSPAddon.Startup.Instantly, true)] + internal class Startup : MonoBehaviour + { + private void Start() + { + string v = "n/a"; + AssemblyTitleAttribute attributes = (AssemblyTitleAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute), false); + string title = attributes?.Title; + if (title == null) + { + title = "TitleNotAvailable"; + } + v = Assembly.GetExecutingAssembly().FullName; + if (v == null) + { + v = "VersionNotAvailable"; + } + Debug.Log("[" + title + "] Version " + v); + } + } + + [KSPAddon(KSPAddon.Startup.MainMenu, true)] + internal class InstallChecker : MonoBehaviour + { + private const string MODNAME = "WaypointManager"; + private const string FOLDERNAME = "WaypointManager"; + private const string EXPECTEDPATH = FOLDERNAME + "/Plugins"; + + protected void Start() + { + // Search for this mod's DLL existing in the wrong location. This will also detect duplicate copies because only one can be in the right place. + var assemblies = AssemblyLoader.loadedAssemblies.Where(a => a.assembly.GetName().Name == Assembly.GetExecutingAssembly().GetName().Name).Where(a => a.url != EXPECTEDPATH); + if (assemblies.Any()) + { + var badPaths = assemblies.Select(a => a.path).Select(p => Uri.UnescapeDataString(new Uri(Path.GetFullPath(KSPUtil.ApplicationRootPath)).MakeRelativeUri(new Uri(p)).ToString().Replace('/', Path.DirectorySeparatorChar))); + PopupDialog.SpawnPopupDialog + ( + new Vector2(0.5f, 0.5f), + new Vector2(0.5f, 0.5f), + "test", + "Incorrect " + MODNAME + " Installation", + MODNAME + " has been installed incorrectly and will not function properly. All files should be located in KSP/GameData/" + FOLDERNAME + ". Do not move any files from inside that folder.\n\nIncorrect path(s):\n" + String.Join("\n", badPaths.ToArray()), + "OK", + false, + HighLogic.UISkin + ); + Debug.Log("Incorrect " + MODNAME + " Installation: " + MODNAME + " has been installed incorrectly and will not function properly. All files should be located in KSP/GameData/" + EXPECTEDPATH + ". Do not move any files from inside that folder.\n\nIncorrect path(s):\n" + String.Join("\n", badPaths.ToArray()) + + ); + + } + + //// Check for Module Manager + //if (!AssemblyLoader.loadedAssemblies.Any(a => a.assembly.GetName().Name.StartsWith("ModuleManager") && a.url == "")) + //{ + // PopupDialog.SpawnPopupDialog("Missing Module Manager", + // modName + " requires the Module Manager mod in order to function properly.\n\nPlease download from http://forum.kerbalspaceprogram.com/threads/55219 and copy to the KSP/GameData/ directory.", + // "OK", false, HighLogic.Skin); + //} + + CleanupOldVersions(); + } + + /* + * Tries to fix the install if it was installed over the top of a previous version + */ + void CleanupOldVersions() + { + try + { + } + catch (Exception ex) + { + Debug.LogError("-ERROR- " + this.GetType().FullName + "[" + this.GetInstanceID().ToString("X") + "][" + Time.time.ToString("0.00") + "]: " + + "Exception caught while cleaning up old files.\n" + ex.Message + "\n" + ex.StackTrace ); + + } + } + } +} + diff --git a/source/WaypointManager/Properties/AssemblyInfo.cs b/WaypointManager/Properties/AssemblyInfo.cs similarity index 91% rename from source/WaypointManager/Properties/AssemblyInfo.cs rename to WaypointManager/Properties/AssemblyInfo.cs index d36d4a1..a5f5f45 100644 --- a/source/WaypointManager/Properties/AssemblyInfo.cs +++ b/WaypointManager/Properties/AssemblyInfo.cs @@ -32,7 +32,8 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0")] -[assembly: AssemblyFileVersion("2.8.1")] +//[assembly: AssemblyVersion("1.0")] +//[assembly: AssemblyFileVersion("2.8.1")] + [assembly: AssemblyInformationalVersion("2.8.1")] -[assembly: KSPAssembly("WaypointManager", 1, 0)] +//[assembly: KSPAssembly("WaypointManager", 1, 0)] diff --git a/WaypointManager/RegisterToolbar.cs b/WaypointManager/RegisterToolbar.cs new file mode 100644 index 0000000..f87750f --- /dev/null +++ b/WaypointManager/RegisterToolbar.cs @@ -0,0 +1,37 @@ +using UnityEngine; +using ToolbarControl_NS; +using KSP_Log; + +namespace WaypointManager +{ + [KSPAddon(KSPAddon.Startup.MainMenu, true)] + public class RegisterToolbar : MonoBehaviour + { + public static Log Log; + + void Start() + { + ToolbarControl.RegisterMod(WaypointManager.MODID, WaypointManager.MODNAME); +#if DEBUG + Log = new Log("WaypointManager", Log.LEVEL.INFO); +#else + Log = new Log("WaypointManager", Log.LEVEL.ERROR); +#endif + } + + bool initted = false; + int cnt = 0; + void OnGUI() + { + if (!initted) + { + if (cnt++ == 3) + { + WaypointFlightRenderer.SetupStyles(); + initted = true; + } + + } + } + } +} diff --git a/WaypointManager/Stolld/StyleCache.cs b/WaypointManager/Stolld/StyleCache.cs new file mode 100644 index 0000000..c1cfbc1 --- /dev/null +++ b/WaypointManager/Stolld/StyleCache.cs @@ -0,0 +1,23 @@ + +using UnityEngine; + +namespace UI +{ + /// + /// The unity default style can only be accessed inside of an OnGUI method + /// + [KSPAddon(KSPAddon.Startup.Instantly, true)] + public class StyleCache : MonoBehaviour + { + public static UISkinDef Skin { get; set; } + + void OnGUI() + { + if (Skin == null) + { + Skin = StyleConverter.Convert(GUI.skin); + Destroy(this); + } + } + } +} diff --git a/WaypointManager/Stolld/StyleConverter.cs b/WaypointManager/Stolld/StyleConverter.cs new file mode 100644 index 0000000..8213513 --- /dev/null +++ b/WaypointManager/Stolld/StyleConverter.cs @@ -0,0 +1,88 @@ +using UnityEngine; + +namespace UI +{ + public static class StyleConverter + { + public static UISkinDef Convert(GUISkin skin) + { + UISkinDef def = new UISkinDef(); + if (skin != null) + { + def.box = ConvertStyle(skin.box); + def.button = ConvertStyle(skin.button); + def.font = skin.font; + def.horizontalScrollbar = ConvertStyle(skin.horizontalScrollbar); + def.horizontalScrollbarLeftButton = ConvertStyle(skin.horizontalScrollbarLeftButton); + def.horizontalScrollbarRightButton = ConvertStyle(skin.horizontalScrollbarRightButton); + def.horizontalScrollbarThumb = ConvertStyle(skin.horizontalScrollbarThumb); + def.horizontalSlider = ConvertStyle(skin.horizontalSlider); + def.horizontalSliderThumb = ConvertStyle(skin.horizontalSliderThumb); + def.label = ConvertStyle(skin.label); + def.name = skin.name; + def.scrollView = ConvertStyle(skin.scrollView); + def.textArea = ConvertStyle(skin.textArea); + def.textField = ConvertStyle(skin.textField); + def.toggle = ConvertStyle(skin.toggle); + def.verticalScrollbar = ConvertStyle(skin.verticalScrollbar); + def.verticalScrollbarDownButton = ConvertStyle(skin.verticalScrollbarDownButton); + def.verticalScrollbarThumb = ConvertStyle(skin.verticalScrollbarThumb); + def.verticalScrollbarUpButton = ConvertStyle(skin.verticalScrollbarUpButton); + def.verticalSlider = ConvertStyle(skin.verticalSlider); + def.verticalSliderThumb = ConvertStyle(skin.verticalSliderThumb); + def.window = ConvertStyle(skin.window); + } + + return def; + } + + private static UIStyle ConvertStyle(GUIStyle guiStyle) + { + UIStyle style = new UIStyle(); + if (guiStyle != null) + { + style.active = ConvertStyleState(guiStyle.active); + style.alignment = guiStyle.alignment; + style.disabled = ConvertStyleState(guiStyle.active); + style.clipping = guiStyle.clipping; + style.fixedHeight = guiStyle.fixedHeight; + style.fixedWidth = guiStyle.fixedWidth; + style.font = guiStyle.font; + style.fontSize = guiStyle.fontSize; + style.fontStyle = guiStyle.fontStyle; + style.highlight = ConvertStyleState(guiStyle.focused); + style.lineHeight = guiStyle.lineHeight; + style.name = guiStyle.name; + style.normal = ConvertStyleState(guiStyle.normal); + style.richText = guiStyle.richText; + style.stretchHeight = guiStyle.stretchHeight; + style.stretchWidth = guiStyle.stretchWidth; + style.wordWrap = guiStyle.wordWrap; + } + + return style; + } + + private static UIStyleState ConvertStyleState(GUIStyleState guiStyleState) + { + UIStyleState state = new UIStyleState(); + if (guiStyleState != null) + { + if (guiStyleState.background != null) + { + state.background = Sprite.Create(guiStyleState.background, + new Rect(0, 0, guiStyleState.background.width, guiStyleState.background.height), + new Vector2(0.5f, 0.5f), 100, 1, SpriteMeshType.Tight, Vector4.one * 5); + + // That border value was just a wild guess, but it works out quite nice so far. + // I could calculate the border automatically, but that looks messed up with DialogGUI, + // especially for window titles. + } + + state.textColor = guiStyleState.textColor; + } + + return state; + } + } +} \ No newline at end of file diff --git a/source/WaypointManager/Util.cs b/WaypointManager/Util.cs similarity index 67% rename from source/WaypointManager/Util.cs rename to WaypointManager/Util.cs index d9f3200..17f8d96 100644 --- a/source/WaypointManager/Util.cs +++ b/WaypointManager/Util.cs @@ -7,6 +7,8 @@ using FinePrint; using FinePrint.Utilities; using DDSHeaders; +using ToolbarControl_NS; +using static WaypointManager.RegisterToolbar; namespace WaypointManager { @@ -38,7 +40,7 @@ public static double GetLateralDistance(WaypointData wpd) return 2 * (celestialBody.Radius + wpd.waypoint.height + wpd.waypoint.altitude) * Math.Asin(Math.Sqrt(sin1 * sin1 + cos1 * cos2 * sin2 * sin2)); } - + /// /// Gets the distance in meters from the active vessel to the given waypoint. /// @@ -136,7 +138,7 @@ public static string FormatCoordinate(double coord, bool islatitude) /// The CelestialBody object public static CelestialBody GetBody(string name) { - CelestialBody body = FlightGlobals.Bodies.Where(b => b.name == name).FirstOrDefault(); + CelestialBody body = FlightGlobals.Bodies.Where(b => b.bodyName == name).FirstOrDefault(); if (body == null) { Debug.LogWarning("Couldn't find celestial body with name '" + name + "'."); @@ -166,70 +168,118 @@ public static bool IsNavPoint(Waypoint waypoint) /// URL of the icon /// Seed to use for generating the color /// The texture + /// public static Texture2D GetContractIcon(string url, int seed) { + string key = url; + // Check cache for texture Texture2D texture; Color color = SystemUtilities.RandomColor(seed, 1.0f, 1.0f, 1.0f); - if (!contractIcons.ContainsKey(url)) + if (!contractIcons.ContainsKey(key)) { - contractIcons[url] = new Dictionary(); + contractIcons[key] = new Dictionary(); } - if (!contractIcons[url].ContainsKey(color)) + + if (!contractIcons[key].ContainsKey(color)) { + + if (url.EndsWith(".png")) + url = url.Substring(0, url.Length - 4); + if (url.StartsWith("GameData")) + url = url.Substring(9); + Texture2D baseTexture = ContractDefs.sprites[url].texture; + url = url.Replace('\\', '/'); + string url2 = url; + + string tmp = url; + if (!tmp.Contains("PluginData")) + { + if (!url.StartsWith("GameData")) + tmp = "/" + url; + + for (int i = 0; i < GameDatabase.Instance.databaseTexture.Count; i++) + { + if (GameDatabase.Instance.databaseTexture[i].file != null) + { + if (GameDatabase.Instance.databaseTexture[i].name.EndsWith(tmp) || + GameDatabase.Instance.databaseTexture[i].name == url) + { + url2 = GameDatabase.Instance.databaseTexture[i].file.fullPath; + } + } + } + } + else + { + if (!url2.StartsWith("GameData")) + url2 = KSPUtil.ApplicationRootPath + "GameData/" + url2; + } + + string path = url2; + + if (path.EndsWith(".png") || path.EndsWith(".dds")) + path = path.Substring(0, path.Length - 4); + try { Texture2D loadedTexture = null; - string path = (url.Contains('/') ? "GameData/" : "GameData/Squad/Contracts/Icons/") + url; + // PNG loading if (File.Exists(path + ".png")) { path += ".png"; loadedTexture = new Texture2D(baseTexture.width, baseTexture.height, TextureFormat.RGBA32, false); - loadedTexture.LoadImage(File.ReadAllBytes(path.Replace('/', Path.DirectorySeparatorChar))); + loadedTexture.LoadImage(File.ReadAllBytes(path.Replace('/', Path.DirectorySeparatorChar))); } // DDS loading - else if (File.Exists(path + ".dds")) + else { - path += ".dds"; - BinaryReader br = new BinaryReader(new MemoryStream(File.ReadAllBytes(path))); - - if (br.ReadUInt32() != DDSValues.uintMagic) - { - throw new Exception("Format issue with DDS texture '" + path + "'!"); - } - DDSHeader ddsHeader = new DDSHeader(br); - if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDX10) - { - DDSHeaderDX10 ddsHeaderDx10 = new DDSHeaderDX10(br); - } - - TextureFormat texFormat; - if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDXT1) + if (File.Exists(path + ".dds")) { - texFormat = UnityEngine.TextureFormat.DXT1; - } - else if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDXT3) - { - texFormat = UnityEngine.TextureFormat.DXT1 | UnityEngine.TextureFormat.Alpha8; - } - else if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDXT5) - { - texFormat = UnityEngine.TextureFormat.DXT5; + path += ".dds"; + BinaryReader br = new BinaryReader(new MemoryStream(File.ReadAllBytes(path))); + + if (br.ReadUInt32() != DDSValues.uintMagic) + { + throw new Exception("Format issue with DDS texture '" + path + "'!"); + } + DDSHeader ddsHeader = new DDSHeader(br); + if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDX10) + { + DDSHeaderDX10 ddsHeaderDx10 = new DDSHeaderDX10(br); + } + + TextureFormat texFormat; + if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDXT1) + { + texFormat = UnityEngine.TextureFormat.DXT1; + } +#if false +// Not using DXT3 anymore + else if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDXT3) + { + texFormat = UnityEngine.TextureFormat.DXT1 | UnityEngine.TextureFormat.Alpha8; + } +#endif + else if (ddsHeader.ddspf.dwFourCC == DDSValues.uintDXT5) + { + texFormat = UnityEngine.TextureFormat.DXT5; + } + else + { + throw new Exception("Unhandled DDS format!"); + } + + loadedTexture = new Texture2D((int)ddsHeader.dwWidth, (int)ddsHeader.dwHeight, texFormat, false); + loadedTexture.LoadRawTextureData(br.ReadBytes((int)(br.BaseStream.Length - br.BaseStream.Position))); } else { - throw new Exception("Unhandled DDS format!"); + throw new Exception("Couldn't find file for icon '" + url + "'"); } - - loadedTexture = new Texture2D((int)ddsHeader.dwWidth, (int)ddsHeader.dwHeight, texFormat, false); - loadedTexture.LoadRawTextureData(br.ReadBytes((int)(br.BaseStream.Length - br.BaseStream.Position))); - } - else - { - throw new Exception("Couldn't find file for icon '" + url + "'"); } Color[] pixels = loadedTexture.GetPixels(); @@ -237,22 +287,26 @@ public static Texture2D GetContractIcon(string url, int seed) { pixels[i] *= color; } - texture = new Texture2D(baseTexture.width, baseTexture.height, TextureFormat.RGBA32, false); + //texture = new Texture2D(baseTexture.width, baseTexture.height, TextureFormat.RGBA32, false); + texture = new Texture2D(loadedTexture.width, loadedTexture.height, TextureFormat.RGBA32, false); texture.SetPixels(pixels); texture.Apply(false, false); - contractIcons[url][color] = texture; + contractIcons[key][color] = texture; + UnityEngine.Object.Destroy(loadedTexture); } catch (Exception e) { - Debug.LogError("WaypointManager: Couldn't create texture for '" + url + "'!"); + Log.Error("WaypointManager: Couldn't create texture for '" + url + "'!"); + Log.Error("key: " + key); + Log.Error("path: " + path); Debug.LogException(e); - texture = contractIcons[url][color] = baseTexture; + texture = contractIcons[key][color] = baseTexture; } } else { - texture = contractIcons[url][color]; + texture = contractIcons[key][color]; } return texture; @@ -323,8 +377,26 @@ public static void DrawWaypoint(CelestialBody targetBody, double latitude, doubl Graphics.DrawTexture(markerRect, GameDatabase.Instance.GetTexture("Squad/Contracts/Icons/marker", false), new Rect(0.0f, 0.0f, 1f, 1f), 0, 0, 0, 0, new Color(0.5f, 0.5f, 0.5f, 0.5f * (alpha - 0.3f) / 0.7f)); // Draw the icon - Graphics.DrawTexture(iconRect, ContractDefs.sprites[id].texture, new Rect(0.0f, 0.0f, 1f, 1f), 0, 0, 0, 0, SystemUtilities.RandomColor(seed, alpha)); + Graphics.DrawTexture(iconRect, /* ContractDefs.sprites[id].texture */ + GetContractIcon(id, seed), new Rect(0.0f, 0.0f, 1f, 1f), 0, 0, 0, 0, SystemUtilities.RandomColor(seed, alpha)); + } + /// + /// Converts decimal degrees to a string of DMS formatted degrees with N/S, E/W prefix + /// + /// + /// boolean to determin latitude or longitude for compass prefix + /// + public static string DecimalDegreesToDMS(double decimalDegrees, bool latitude) + { + string dms = string.Empty; + string direction = latitude ? (decimalDegrees >= 0 ? "N" : "S") : (decimalDegrees >= 0 ? "E" : "W"); + decimalDegrees = Math.Abs(decimalDegrees); + int d = (int)(decimalDegrees); + double decimalpart = decimalDegrees - d; + int m = (int)(decimalpart * 60); + double s = (decimalpart - m / 60f) * 3600; + dms = string.Format("{3} {0}\x00B0 {1}\' {2:F1}\"", d, m, s, direction); + return dms; } - } } diff --git a/source/WaypointManager/WaypointData.cs b/WaypointManager/WaypointData.cs similarity index 91% rename from source/WaypointManager/WaypointData.cs rename to WaypointManager/WaypointData.cs index 5fd93dd..a512f6c 100644 --- a/source/WaypointManager/WaypointData.cs +++ b/WaypointManager/WaypointData.cs @@ -5,6 +5,7 @@ using UnityEngine; using Contracts; using FinePrint; +using static WaypointManager.RegisterToolbar; namespace WaypointManager { @@ -17,6 +18,7 @@ public class ContractContainer { public Contract contract; public bool hidden = false; + public bool stockHidden = false; public List waypointByContract = new List(); public string title; @@ -82,25 +84,37 @@ public static void CacheWaypointData() { if (lastCacheUpdate == UnityEngine.Time.fixedTime || FinePrint.WaypointManager.Instance() == null) { + if (lastCacheUpdate == UnityEngine.Time.fixedTime || FinePrint.WaypointManager.Instance() == null) return; } + lastCacheUpdate = UnityEngine.Time.fixedTime; bool changed = false; - + //int cnt = 0; // Add new waypoints foreach (Waypoint w in FinePrint.WaypointManager.Instance().Waypoints) { + //cnt++; + +#if true // These used to dump info needed to debug City2 issue with Kopernicus + Log.Info("WorldPosition: " + w.worldPosition); + Log.Info("orbitPosition: " + w.orbitPosition); + Log.Info("name: " + w.name + ", latitude: " + w.latitude + ", longitude: " + w.longitude + ", Altitude: " + w.altitude); +#endif + // Following added to bypass a Kopernicus error where it puts invalid waypoints into the system + if (w.celestialBody.bodyName == "Sun") + continue; if (w != null && w.isNavigatable) { + //Log.Info("cnt: " + cnt + ", name: " + w.name + ", w.isClustered: " + w.isClustered + ", w.isCustom: " + w.isCustom + ", isMission: " + w.isMission); WaypointData wpd; - // Update values that are only cached once if (!waypointData.ContainsKey(w)) { wpd = new WaypointData(); wpd.waypoint = w; - wpd.celestialBody = Util.GetBody(w.celestialName); + wpd.celestialBody = Util.GetBody(w.celestialBody.bodyName); // Small stock bug - the Dessert Airfield has the wrong icon. Fix it for Squad. if (w.name == "Dessert Airfield" && w.id == "launchsite") @@ -160,6 +174,7 @@ public static void CacheWaypointData() if (changed || customWaypoints.waypointByContract.Count + siteWaypoints.waypointByContract.Count != FinePrint.WaypointManager.Instance().Waypoints.Count()) { + // Clear the by contract list foreach (ContractContainer cc in contractMap.Values) { diff --git a/source/WaypointManager/WaypointFlightRenderer.cs b/WaypointManager/WaypointFlightRenderer.cs similarity index 70% rename from source/WaypointManager/WaypointFlightRenderer.cs rename to WaypointManager/WaypointFlightRenderer.cs index b8431bc..70d2e9b 100644 --- a/source/WaypointManager/WaypointFlightRenderer.cs +++ b/WaypointManager/WaypointFlightRenderer.cs @@ -8,15 +8,18 @@ using Contracts; using FinePrint; using FinePrint.Utilities; +using ClickThroughFix; +using static WaypointManager.RegisterToolbar; +using static FinePrint.ContractDefs; namespace WaypointManager { [KSPAddon(KSPAddon.Startup.SpaceCentre, true)] class WaypointFlightRenderer : MonoBehaviour { - private GUIStyle nameStyle = null; - private GUIStyle valueStyle = null; - private GUIStyle hintTextStyle = null; + private static GUIStyle nameStyle = null; + private static GUIStyle valueStyle = null; + private static GUIStyle hintTextStyle = null; private bool visible = true; private Waypoint selectedWaypoint = null; @@ -68,9 +71,55 @@ public void OnShowUI() visible = true; } + + bool drag = false; + float offset_x; + float offset_y; + + void OnMouseDown() + { + if (!drag) + { + offset_x = Input.mousePosition.x - Config.displayBox.x; + offset_y = (Screen.height - Input.mousePosition.y) - Config.displayBox.y; + } + } + + void OnMouseUp() + { + Config.Save(); + } + + void Update() + { + if (drag) + { + Config.boxLeft = Math.Max(0, Input.mousePosition.x - offset_x); + Config.boxLeft = Math.Min(Config.boxLeft, Screen.width - boxWidth); + + Config.boxTop = Math.Max(0, (Screen.height - Input.mousePosition.y) - offset_y); + Config.boxTop = Math.Min(Config.boxTop, Screen.height - fullBoxHeight); + } + if (drag || Config.displayBox.Contains(new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y))) + { + bool b = Input.GetMouseButton(0) && (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)); + + if (!drag && b) + { + OnMouseDown(); + } + else + if (drag && !b) + OnMouseUp(); + drag = b; + + } + else drag = false; + } + public void OnGUI() { - if (visible) + if (visible && !ImportExport.helpDialogVisible) { if (Event.current.type == EventType.MouseUp && Event.current.button == 0) { @@ -85,8 +134,6 @@ public void OnGUI() if (HighLogic.LoadedSceneIsFlight && !MapView.MapIsEnabled) { - SetupStyles(); - WaypointData.CacheWaypointData(); foreach (WaypointData wpd in WaypointData.Waypoints) @@ -94,6 +141,7 @@ public void OnGUI() DrawWaypoint(wpd); } } + else cnt = 0; if (HighLogic.LoadedSceneIsFlight && (!MapView.MapIsEnabled || ContractSystem.Instance == null)) { @@ -102,44 +150,85 @@ public void OnGUI() } } + static float OldUIScale = 0; + static float oldScaling = 0; + static float finalScaling; + + static float boxHeight; + + private static Texture2D MakeTex(int width, int height, Color col) + { + Color[] pix = new Color[width * height]; + + for (int i = 0; i < pix.Length; i++) + pix[i] = col; + + Texture2D result = new Texture2D(width, height); + result.SetPixels(pix); + result.Apply(); + + return result; + } + + // cnt is needed becuase KSP/Unity is stupid and loses the background texture between scenes + // This makes sure that at least 2 cycles are done before it stops recreationg the texture + static int cnt = 0; + // Styles taken directly from Kerbal Engineer Redux - because they look great and this will // make our display consistent with that - protected void SetupStyles() + internal static void SetupStyles(bool forceUpdate = false) { - if (nameStyle != null) + if (OldUIScale == GameSettings.UI_SCALE && oldScaling == Config.scaling && !forceUpdate) { - return; + if (cnt++ >1) + return; } + OldUIScale = GameSettings.UI_SCALE; + oldScaling = Config.scaling; + finalScaling = GameSettings.UI_SCALE * Config.scaling; + boxHeight = 20f * finalScaling; + Texture2D backgroundTexture = MakeTex(2, 2, new Color(Config.backgroundGrey, Config.backgroundGrey, Config.backgroundGrey, Config.displayOpacity)); nameStyle = new GUIStyle(HighLogic.Skin.label) { normal = { - textColor = Color.white + textColor = Color.white, + background = backgroundTexture }, margin = new RectOffset(), padding = new RectOffset(5, 0, 0, 0), - alignment = TextAnchor.MiddleRight, - fontSize = 11, + alignment = TextAnchor.MiddleLeft, + fontSize = (int)(11f * finalScaling), fontStyle = FontStyle.Bold, - fixedHeight = 20.0f + fixedHeight = 20.0f * finalScaling }; valueStyle = new GUIStyle(HighLogic.Skin.label) { + normal = + { + textColor = Color.green, + background = backgroundTexture + }, margin = new RectOffset(), padding = new RectOffset(0, 5, 0, 0), - alignment = TextAnchor.MiddleLeft, - fontSize = 11, + alignment = TextAnchor.MiddleRight, + fontSize = (int)(11f * finalScaling), fontStyle = FontStyle.Normal, - fixedHeight = 20.0f + fixedHeight = 20.0f * finalScaling }; hintTextStyle = new GUIStyle(HighLogic.Skin.box) { + normal = + { + textColor = Color.white, + background = backgroundTexture + }, padding = new RectOffset(4, 4, 7, 4), font = HighLogic.Skin.box.font, - fontSize = 13, + fontSize = (int)(13 * finalScaling), fontStyle = FontStyle.Normal, fixedWidth = 0, fixedHeight = 0, @@ -148,6 +237,7 @@ protected void SetupStyles() }; } + protected void DrawWaypoint(WaypointData wpd) { // Not our planet @@ -204,35 +294,23 @@ protected void DrawWaypoint(WaypointData wpd) asbRectTransform = asb.GetComponent(); } - float ybase = (Screen.height / 2.0f) - asbRectTransform.position.y + asbRectTransform.sizeDelta.y * GameSettings.UI_SCALE * 0.5f + 4; - if (ybase < 0) - { - ybase = 0; - } + fullBoxHeight = 0; + boxWidth = 0; string timeToWP = GetTimeToWaypoint(wpd); if (Config.hudDistance) { - GUI.Label(new Rect((float)Screen.width / 2.0f - 188f, ybase, 240f, 20f), "Distance to " + label + ":", nameStyle); - GUI.Label(new Rect((float)Screen.width / 2.0f + 60f, ybase, 120f, 20f), - v.state != Vessel.State.DEAD ? Util.PrintDistance(wpd) : "N/A", valueStyle); - ybase += 18f; + ShowText("Distance to " + label + ":", v.state != Vessel.State.DEAD ? Util.PrintDistance(wpd) : "N/A"); } if (timeToWP != null && Config.hudTime) { - GUI.Label(new Rect((float)Screen.width / 2.0f - 188f, ybase, 240f, 20f), "ETA to " + label + ":", nameStyle); - GUI.Label(new Rect((float)Screen.width / 2.0f + 60f, ybase, 120f, 20f), - v.state != Vessel.State.DEAD ? timeToWP : "N/A", valueStyle); - ybase += 18f; + ShowText("ETA to " + label + ":", v.state != Vessel.State.DEAD ? timeToWP : "N/A"); } if (Config.hudHeading) { - GUI.Label(new Rect((float)Screen.width / 2.0f - 188f, ybase, 240f, 20f), "Heading to " + label + ":", nameStyle); - GUI.Label(new Rect((float)Screen.width / 2.0f + 60f, ybase, 120f, 20f), - v.state != Vessel.State.DEAD ? wpd.heading.ToString("N1") : "N/A", valueStyle); - ybase += 18f; + ShowText("Heading to " + label + ":", v.state != Vessel.State.DEAD ? wpd.heading.ToString("N1") : "N/A"); } if (Config.hudAngle && v.mainBody == wpd.celestialBody) @@ -241,21 +319,21 @@ protected void DrawWaypoint(WaypointData wpd) double heightDist = wpd.waypoint.altitude + wpd.waypoint.height - v.altitude; double angle = Math.Atan2(heightDist, distance) * 180.0 / Math.PI; - GUI.Label(new Rect((float)Screen.width / 2.0f - 188f, ybase, 240f, 20f), "Angle to " + label + ":", nameStyle); - GUI.Label(new Rect((float)Screen.width / 2.0f + 60f, ybase, 120f, 20f), - v.state != Vessel.State.DEAD ? angle.ToString("N2") : "N/A", valueStyle); - ybase += 18f; + ShowText("Angle to " + label + ":", v.state != Vessel.State.DEAD ? angle.ToString("N2") : "N/A"); if (v.srfSpeed >= 0.1) { double velAngle = 90 - Math.Acos(Vector3d.Dot(v.srf_velocity.normalized, v.upAxis)) * 180.0 / Math.PI; - GUI.Label(new Rect((float)Screen.width / 2.0f - 188f, ybase, 240f, 20f), "Velocity pitch angle:", nameStyle); - GUI.Label(new Rect((float)Screen.width / 2.0f + 60f, ybase, 120f, 20f), - v.state != Vessel.State.DEAD ? velAngle.ToString("N2") : "N/A", valueStyle); - ybase += 18f; + ShowText("Velocity pitch angle:", v.state != Vessel.State.DEAD ? velAngle.ToString("N2") : "N/A"); } } + if (Config.hudCoordinates && v.mainBody == wpd.celestialBody) + { + ShowText("Coordinates of " + label + ":", v.state != Vessel.State.DEAD ? string.Format("{0}\r\n{1}", Util.DecimalDegreesToDMS(wpd.waypoint.latitude, true), Util.DecimalDegreesToDMS(wpd.waypoint.longitude, false)) : "N/A"); + } + + Config.displayBox = new Rect(Config.boxLeft, Config.boxTop, boxWidth, fullBoxHeight); } } } @@ -316,7 +394,8 @@ protected void DrawWaypoint(WaypointData wpd) // Draw the icon, but support blinking if (!Util.IsNavPoint(wpd.waypoint) || !NavWaypoint.fetch.IsBlinking || (int)((Time.fixedTime - (int)Time.fixedTime) * 4) % 2 == 0) { - Graphics.DrawTexture(iconRect, ContractDefs.sprites[wpd.waypoint.id].texture, new Rect(0.0f, 0.0f, 1f, 1f), 0, 0, 0, 0, SystemUtilities.RandomColor(wpd.waypoint.seed, wpd.currentAlpha)); + Graphics.DrawTexture(iconRect, /*ContractDefs.sprites[wpd.waypoint.id].texture */ + Util.GetContractIcon(wpd.waypoint.id, wpd.waypoint.seed), new Rect(0.0f, 0.0f, 1f, 1f), 0, 0, 0, 0, SystemUtilities.RandomColor(wpd.waypoint.seed, wpd.currentAlpha)); } // Hint text! @@ -330,17 +409,47 @@ protected void DrawWaypoint(WaypointData wpd) float width = 240f; float height = hintTextStyle.CalcHeight(new GUIContent(label), width); float yoffset = height + 48.0f; - GUI.Box(new Rect(screenPos.x - width/2.0f, (float)Screen.height - screenPos.y - yoffset, width, height), label, hintTextStyle); + GUI.Box(new Rect(screenPos.x - width / 2.0f, (float)Screen.height - screenPos.y - yoffset, width, height), label, hintTextStyle); } } } + + float boxWidth = 0; + float fullBoxHeight = 0; + + + private void ShowText(string leftText, string rightText) + { + GUIContent leftTmp = new GUIContent(leftText); + GUIContent rightTmp = new GUIContent(rightText); + + Vector2 leftLabelBoxSize = nameStyle.CalcSize(leftTmp); + Vector2 rightLabelBoxSize = valueStyle.CalcSize(rightTmp); + + if (Config.boxLeft < 0) + { + //Config.boxLeft = (Screen.width - leftLabelBoxSize.x - rightLabelBoxSize.x - 5) / 2; + Config.boxLeft = (Screen.width - leftLabelBoxSize.x - rightLabelBoxSize.x - 5) * 0.5f; + } + if (Config.boxTop < 0) + { + Config.boxTop = Math.Max(0, Screen.height / 2.0f - asbRectTransform.position.y + asbRectTransform.sizeDelta.y * 0.5f + 20); + } + + GUI.Label(new Rect(Config.boxLeft, Config.boxTop + fullBoxHeight, leftLabelBoxSize.x + 5f, boxHeight), leftText, nameStyle); + GUI.Label(new Rect(Config.boxLeft + leftLabelBoxSize.x + 5, Config.boxTop + fullBoxHeight, rightLabelBoxSize.x, boxHeight), rightText, valueStyle); + + fullBoxHeight += boxHeight; // - 2; + boxWidth = Math.Max(boxWidth, leftLabelBoxSize.x + 5 + rightLabelBoxSize.x); + } + private void ShowNavigationWindow() { if (selectedWaypoint != null) { GUI.skin = HighLogic.Skin; - windowPos = GUILayout.Window(10, windowPos, NavigationWindow, waypointName, GUILayout.MinWidth(224)); + windowPos = ClickThruBlocker.GUILayoutWindow(10, windowPos, NavigationWindow, waypointName, GUILayout.MinWidth(224)); } } @@ -403,19 +512,10 @@ protected string GetTimeToWaypoint(WaypointData wpd) double time = (wpd.distanceToActive / v.horizontalSrfSpeed); - // Earthtime - uint SecondsPerYear = 31536000; // = 365d - uint SecondsPerDay = 86400; // = 24h - uint SecondsPerHour = 3600; // = 60m - uint SecondsPerMinute = 60; // = 60s - - if (GameSettings.KERBIN_TIME == true) - { - SecondsPerYear = 9201600; // = 426d - SecondsPerDay = 21600; // = 6h - SecondsPerHour = 3600; // = 60m - SecondsPerMinute = 60; // = 60s - } + uint SecondsPerYear = (uint)KSPUtil.dateTimeFormatter.Year; + uint SecondsPerDay = (uint)KSPUtil.dateTimeFormatter.Day; + uint SecondsPerHour = (uint)KSPUtil.dateTimeFormatter.Hour; + uint SecondsPerMinute = (uint)KSPUtil.dateTimeFormatter.Minute; int years = (int)(time / SecondsPerYear); time -= years * SecondsPerYear; diff --git a/source/WaypointManager/WaypointManager.cs b/WaypointManager/WaypointManager.cs similarity index 54% rename from source/WaypointManager/WaypointManager.cs rename to WaypointManager/WaypointManager.cs index 1b0f222..1f8b120 100644 --- a/source/WaypointManager/WaypointManager.cs +++ b/WaypointManager/WaypointManager.cs @@ -11,6 +11,10 @@ using FinePrint; using FinePrint.Utilities; +using ToolbarControl_NS; +using ClickThroughFix; +using static WaypointManager.RegisterToolbar; + namespace WaypointManager { [KSPAddon(KSPAddon.Startup.SpaceCentre, true)] @@ -19,12 +23,11 @@ class WaypointManager : MonoBehaviour static List uniqueWaypoints = new List(); private const float GUI_WIDTH = 380; - private const float SETTINGS_WIDTH = 280; + internal const float SETTINGS_WIDTH = 280; public static WaypointManager Instance; - private ApplicationLauncherButton launcherButton = null; - private IButton toolbarButton; + ToolbarControl toolbarControl; private static bool initialized = false; public bool showGUI = false; @@ -38,7 +41,7 @@ class WaypointManager : MonoBehaviour private GUIStyle tipStyle; private Vector2 scrollPosition; - private Rect settingsPosition; + internal Rect settingsPosition; private Rect tooltipPosition; private List toolTip = new List(); @@ -55,14 +58,12 @@ void Start() { // Log version info var ainfoV = Attribute.GetCustomAttribute(typeof(WaypointManager).Assembly, typeof(AssemblyInformationalVersionAttribute)) as AssemblyInformationalVersionAttribute; - Debug.Log("WaypointManager " + ainfoV.InformationalVersion + " loading..."); + Log.Info("WaypointManager " + ainfoV.InformationalVersion + " loading..."); LoadTextures(); LoadConfiguration(); - LoadToolbar(); - - GameEvents.onGUIApplicationLauncherReady.Add(new EventVoid.OnEvent(SetupToolbar)); - GameEvents.onGUIApplicationLauncherUnreadifying.Add(new EventData.OnEvent(TeardownToolbar)); + // LoadToolbar(); + SetupToolbar(); GameEvents.onGameSceneLoadRequested.Add(new EventData.OnEvent(OnGameSceneLoad)); GameEvents.onHideUI.Add(new EventVoid.OnEvent(OnHideUI)); GameEvents.onShowUI.Add(new EventVoid.OnEvent(OnShowUI)); @@ -70,7 +71,7 @@ void Start() Config.Load(); - Debug.Log("WaypointManager " + ainfoV.InformationalVersion + " loaded."); + Log.Info("WaypointManager " + ainfoV.InformationalVersion + " loaded."); Instance = this; initialized = true; @@ -83,70 +84,62 @@ void Start() void OnDestroy() { - GameEvents.onGUIApplicationLauncherReady.Remove(new EventVoid.OnEvent(SetupToolbar)); - GameEvents.onGUIApplicationLauncherUnreadifying.Remove(new EventData.OnEvent(TeardownToolbar)); GameEvents.onHideUI.Remove(OnHideUI); GameEvents.onShowUI.Remove(OnShowUI); GameEvents.onPlanetariumTargetChanged.Remove(new EventData.OnEvent(PlanetariumTargetChanged)); - UnloadToolbar(); - + // + //UnloadToolbar(); + TeardownToolbar(); Config.Save(); } private void LoadTextures() { - Config.toolbarIcon = GameDatabase.Instance.GetTexture("WaypointManager/icons/toolbar", false); - Config.addWaypointIcon = GameDatabase.Instance.GetTexture("WaypointManager/icons/addWaypoint", false); - Config.editWaypointIcon = GameDatabase.Instance.GetTexture("WaypointManager/icons/editWaypoint", false); - Config.deleteWaypointIcon = GameDatabase.Instance.GetTexture("WaypointManager/icons/deleteWaypoint", false); - Config.settingsIcon = GameDatabase.Instance.GetTexture("WaypointManager/icons/settings", false); - Config.closeIcon = GameDatabase.Instance.GetTexture("WaypointManager/icons/close", false); + Config.toolbarIcon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref Config.toolbarIcon, KSPUtil.ApplicationRootPath + "GameData/WaypointManager/PluginData/icons/toolbar"); + + Config.addWaypointIcon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref Config.addWaypointIcon, KSPUtil.ApplicationRootPath + "GameData/WaypointManager/PluginData/icons/addWaypoint"); + Config.editWaypointIcon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref Config.editWaypointIcon, KSPUtil.ApplicationRootPath + "GameData/WaypointManager/PluginData/icons/editWaypoint"); + Config.deleteWaypointIcon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref Config.deleteWaypointIcon, KSPUtil.ApplicationRootPath + "GameData/WaypointManager/PluginData/icons/deleteWaypoint"); + Config.settingsIcon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref Config.settingsIcon, KSPUtil.ApplicationRootPath + "GameData/WaypointManager/PluginData/icons/settings"); + Config.closeIcon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref Config.closeIcon, KSPUtil.ApplicationRootPath + "GameData/WaypointManager/PluginData/icons/close"); } + internal const string MODID = "WaypointManager"; + internal const string MODNAME = "Waypoint Manager"; + private void SetupToolbar() { - if (launcherButton == null && Config.useStockToolbar) - { - ApplicationLauncher.AppScenes visibleScenes = ApplicationLauncher.AppScenes.FLIGHT | - ApplicationLauncher.AppScenes.MAPVIEW | - ApplicationLauncher.AppScenes.TRACKSTATION; - launcherButton = ApplicationLauncher.Instance.AddModApplication(ToggleWindow, ToggleWindow, null, null, null, null, - visibleScenes, Config.toolbarIcon); - } + toolbarControl = gameObject.AddComponent(); + toolbarControl.AddToAllToolbars(ToggleWindow, ToggleWindow, + ApplicationLauncher.AppScenes.FLIGHT | + ApplicationLauncher.AppScenes.MAPVIEW | + ApplicationLauncher.AppScenes.TRACKSTATION | + ~ApplicationLauncher.AppScenes.MAINMENU, + MODID, + "waypointMgr", + "WaypointManager/PluginData/icons/toolbar", + "WaypointManager/PluginData/icons/toolbarSmall", + MODNAME + ); } - private void TeardownToolbar(GameScenes scene) - { - if (launcherButton != null) - { - ApplicationLauncher.Instance.RemoveModApplication(launcherButton); - launcherButton = null; - } - } - private void LoadToolbar() - { - if (ToolbarManager.ToolbarAvailable) - { - toolbarButton = ToolbarManager.Instance.add("WaypointManager", "button"); - toolbarButton.TexturePath = "WaypointManager/icons/toolbarSmall"; - toolbarButton.ToolTip = "Waypoint Manager"; - toolbarButton.Visibility = new GameScenesVisibility(GameScenes.FLIGHT, GameScenes.TRACKSTATION); - toolbarButton.OnClick += (e) => - { - ToggleWindow(); - }; - } - } - private void UnloadToolbar() + private void TeardownToolbar() { - if (toolbarButton != null) + if (toolbarControl != null) { - toolbarButton.Destroy(); - toolbarButton = null; + toolbarControl.OnDestroy(); + Destroy(toolbarControl); } + } private void OnGameSceneLoad(GameScenes scene) @@ -178,17 +171,23 @@ void LoadConfiguration() { string config = configNode.GetValue("name"); - Debug.Log("WaypointManager: Loading " + config +" icons."); + Log.Info("WaypointManager: Loading " + config + " icons."); string url = configNode.GetValue("url"); if (url.Last() != '/') { url += '/'; } - foreach (GameDatabase.TextureInfo icon in GameDatabase.Instance.GetAllTexturesInFolder(url)) + if (Directory.Exists(KSPUtil.ApplicationRootPath + "GameData/" + url)) { - string name = icon.name.Substring(icon.name.LastIndexOf('/') + 1); - bodyIcons[name] = icon.texture; - Debug.Log("WaypointManager: Loaded icon for " + name + "."); + + foreach (var str in Directory.GetFiles(KSPUtil.ApplicationRootPath + "GameData/" + url)) + { + var icon = new Texture2D(2, 2); + ToolbarControl.LoadImageFromFile(ref icon, str); + //string name = icon.name.Substring(icon.name.LastIndexOf('/') + 1); + string name = Path.GetFileNameWithoutExtension(str); + bodyIcons[name] = icon; + } } } catch (Exception e) @@ -212,7 +211,7 @@ void LoadConfiguration() } } } - + private void ToggleWindow() { showGUI = !showGUI; @@ -266,10 +265,10 @@ void OnGUI() GUI.depth = 0; - if (showGUI && visible) + if (showGUI && visible && !ImportExport.helpDialogVisible) { var ainfoV = Attribute.GetCustomAttribute(GetType().Assembly, typeof(AssemblyInformationalVersionAttribute)) as AssemblyInformationalVersionAttribute; - Config.mainWindowPos = GUILayout.Window( + Config.mainWindowPos = ClickThruBlocker.GUILayoutWindow( GetType().FullName.GetHashCode(), Config.mainWindowPos, WindowGUI, @@ -288,10 +287,10 @@ void OnGUI() if (settingsPosition.xMin == settingsPosition.xMax) { settingsPosition = new Rect(Config.mainWindowPos.xMax + SETTINGS_WIDTH + 4 > Screen.width ? - Config.mainWindowPos.xMin - SETTINGS_WIDTH - 4: Config.mainWindowPos.xMax, Config.mainWindowPos.yMin, SETTINGS_WIDTH + 4, 1); + Config.mainWindowPos.xMin - SETTINGS_WIDTH - 4 : Config.mainWindowPos.xMax, Config.mainWindowPos.yMin, SETTINGS_WIDTH + 4, 1); } - settingsPosition = GUILayout.Window( + settingsPosition = ClickThruBlocker.GUILayoutWindow( GetType().FullName.GetHashCode() + 1, settingsPosition, SettingsGUI, @@ -312,7 +311,8 @@ void OnGUI() } // Display custom waypoint gui windows - CustomWaypointGUI.OnGUI(); + if (!ImportExport.helpDialogVisible) + CustomWaypointGUI.OnGUI(); // Draw any tooltips DrawToolTip(); @@ -353,6 +353,8 @@ protected void WindowGUI(int windowID) CustomWaypointGUI.AddWaypoint(); } GUILayout.Space(4); + + if (GUILayout.Button(new GUIContent(Config.settingsIcon, "Settings"), GUI.skin.label)) { showSettings = !showSettings; @@ -389,7 +391,7 @@ protected void WindowGUI(int windowID) { CelestialBody b = pair.Key; bool hidden = hiddenBodies.ContainsKey(b) && hiddenBodies[b]; - if (GUILayout.Button(b.name, headerButtonStyle, GUILayout.MaxWidth(GUI_WIDTH - 24.0f))) + if (GUILayout.Button(b.bodyName, headerButtonStyle, GUILayout.MaxWidth(GUI_WIDTH - 24.0f))) { hidden = !hidden; hiddenBodies[b] = hidden; @@ -424,53 +426,72 @@ protected void WaypointLineGUI(WaypointData wpd) // Contract icon GUILayout.Label(ContractIcon(wpd), GUILayout.ExpandWidth(false), GUILayout.Height(38), GUILayout.Width(38)); GUILayout.Space(2); - + // Celestial body icon GUILayout.Label(CelestialBodyIcon(wpd.celestialBody.name), GUILayout.ExpandWidth(false)); GUILayout.Space(2); - GUILayout.BeginVertical(); - - // Waypoint name, distance - GUILayout.BeginHorizontal(); - string name = wpd.waypoint.name; - if (wpd.waypoint.isClustered) + using (new GUILayout.VerticalScope()) { - name += " " + StringUtilities.IntegerToGreek(wpd.waypoint.index); - } - GUILayout.Label(name, labelStyle, GUILayout.Height(16), GUILayout.Width(GUI_WIDTH - 240), GUILayout.ExpandWidth(false)); - if (FlightGlobals.currentMainBody == wpd.celestialBody) - { - GUILayout.Label("Dist: " + Util.PrintDistance(wpd), labelStyle, GUILayout.Height(16), GUILayout.ExpandWidth(false)); - } - GUILayout.EndHorizontal(); - // Waypoint location - GUILayout.BeginHorizontal(); - GUILayout.Label("Lat: " + Util.FormatCoordinate(wpd.waypoint.latitude, true), labelStyle, GUILayout.Height(16), GUILayout.Width(GUI_WIDTH / 2.0f - 72.0f), GUILayout.ExpandWidth(false)); - GUILayout.Label("Lon: " + Util.FormatCoordinate(wpd.waypoint.longitude, false), labelStyle, GUILayout.Height(16), GUILayout.ExpandWidth(false)); - GUILayout.EndHorizontal(); + // Waypoint name, distance + using (new GUILayout.HorizontalScope()) + { + string name = wpd.waypoint.name; + if (wpd.waypoint.isClustered) + { + name += " " + StringUtilities.IntegerToGreek(wpd.waypoint.index); + } + GUILayout.Label(name, labelStyle, GUILayout.Height(16), GUILayout.Width(GUI_WIDTH - 240), GUILayout.ExpandWidth(false)); + if (FlightGlobals.currentMainBody == wpd.celestialBody) + { + GUILayout.Label("Dist: " + Util.PrintDistance(wpd), labelStyle, GUILayout.Height(16), GUILayout.ExpandWidth(false)); + } + } - GUILayout.EndVertical(); + // Waypoint location + using (new GUILayout.HorizontalScope()) + { + GUILayout.Label("Lat: " + Util.FormatCoordinate(wpd.waypoint.latitude, true), labelStyle, GUILayout.Height(16), GUILayout.Width(GUI_WIDTH / 2.0f - 72.0f), GUILayout.ExpandWidth(false)); + GUILayout.Label("Lon: " + Util.FormatCoordinate(wpd.waypoint.longitude, false), labelStyle, GUILayout.Height(16), GUILayout.ExpandWidth(false)); + } + + } GUILayout.FlexibleSpace(); if (CustomWaypoints.Instance.IsCustom(wpd.waypoint)) { - GUILayout.BeginVertical(); - GUILayout.Space(8); - GUILayout.BeginHorizontal(); + using (new GUILayout.VerticalScope()) + { + GUILayout.Space(8); + using (new GUILayout.HorizontalScope()) + { + + if (GUILayout.Button(new GUIContent(Config.editWaypointIcon, "Edit Waypoint"), GUI.skin.label)) + { + CustomWaypointGUI.EditWaypoint(wpd.waypoint); + } + if (GUILayout.Button(new GUIContent(Config.deleteWaypointIcon, "Delete Waypoint"), GUI.skin.label)) + { + CustomWaypointGUI.DeleteWaypoint(wpd.waypoint); + } - if (GUILayout.Button(new GUIContent(Config.editWaypointIcon, "Edit Waypoint"), GUI.skin.label)) + } + } + } + else + { +#if false + if (GUILayout.Button(new GUIContent(Config.editWaypointIcon, "Edit Stock Waypoint"), GUI.skin.label)) { - CustomWaypointGUI.EditWaypoint(wpd.waypoint); + CustomWaypointGUI.EditWaypoint(wpd.waypoint, true); } - if (GUILayout.Button(new GUIContent(Config.deleteWaypointIcon, "Delete Waypoint"), GUI.skin.label)) +#endif + if (GUILayout.Button(new GUIContent(Config.deleteWaypointIcon, "Hide Stock Waypoint"), GUI.skin.label)) { CustomWaypointGUI.DeleteWaypoint(wpd.waypoint); } - GUILayout.EndHorizontal(); - GUILayout.EndVertical(); } // Active waypoint toggle @@ -517,113 +538,151 @@ protected GUIContent ContractIcon(WaypointData wpd) 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)) + using (new GUILayout.VerticalScope()) { - Config.waypointDisplay = Config.WaypointDisplay.NONE; - } + // 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; + } - // 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; - } + // 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; + } - // 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; - } + // 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; + } + if (GUILayout.Toggle(Config.hudCoordinates, "Coordinates of target") != Config.hudCoordinates) + { + Config.hudCoordinates = !Config.hudCoordinates; + } + // 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) + // Opacity + GUILayout.Label("Waypoint Opacity", headingStyle); + using (new GUILayout.HorizontalScope()) { - Config.useStockToolbar = !Config.useStockToolbar; - if (Config.useStockToolbar) - { - SetupToolbar(); - } - else + Config.opacity = GUILayout.HorizontalSlider(Config.opacity, 0.3f, 1.0f); + GUILayout.Space(5); + if (GUILayout.Button("Reset", GUILayout.Width(50))) + Config.opacity = 1.0f; + } + 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"))) { - TeardownToolbar(GameScenes.FLIGHT); + if (importExportWindow == null) + importExportWindow = gameObject.AddComponent(); + //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); + } - // Opacity - GUILayout.Label("Waypoint Opacity", headingStyle); - Config.opacity = GUILayout.HorizontalSlider(Config.opacity, 0.3f, 1.0f); + GUILayout.Label("UI Scaling (" + (Config.scaling * 100).ToString("F0") + "%)", headingStyle); + using (new GUILayout.HorizontalScope()) + { + 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.Label("Background Display Opacity"); + var oldOpacity = Config.displayOpacity; + var oldBackground = Config.backgroundGrey; + Config.displayOpacity = GUILayout.HorizontalSlider(Config.displayOpacity, 0.0f, 1f); + GUILayout.Label("Background Display (grey scale)"); + Config.backgroundGrey = GUILayout.HorizontalSlider(Config.backgroundGrey, 0.0f, 1f); + GUILayout.Label("Nav Window position can be dragged by holding Control + mouse left/right and dragging"); + + +#if false + GUILayout.Space(5); + if (GUILayout.Button("Reset", GUILayout.Width(50))) + Config.displayOpacity = 0.0f; +#endif + if (oldOpacity != Config.displayOpacity || oldBackground != Config.backgroundGrey) + { + WaypointFlightRenderer.SetupStyles(true); + } - 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(); + using (new GUILayout.HorizontalScope()) + { + if (GUILayout.Button("Reset Display Position")) + { + Config.boxLeft = Config.boxTop = -1; + Config.Save(); + } + } + } GUI.DragWindow(); SetToolTip(1); } + internal static MonoBehaviour importExportWindow = null; + /// /// Set the current tooltip /// diff --git a/source/WaypointManager/WaypointManager.csproj b/WaypointManager/WaypointManager.csproj similarity index 50% rename from source/WaypointManager/WaypointManager.csproj rename to WaypointManager/WaypointManager.csproj index 8a7c101..73c43e8 100644 --- a/source/WaypointManager/WaypointManager.csproj +++ b/WaypointManager/WaypointManager.csproj @@ -9,7 +9,7 @@ Properties WaypointManager WaypointManager - v4.0 + v4.8 512 @@ -21,55 +21,55 @@ DEBUG;TRACE prompt 4 + false pdbonly true bin\Release\ - TRACE + + prompt 4 + false - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\Assembly-CSharp.dll + + False - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\Assembly-CSharp-firstpass.dll + + False - - - - - - - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.dll - - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.AnimationModule.dll - - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.CoreModule.dll + + False + $(KSPDIR)\GameData\000_ClickThroughBlocker\Plugins\ClickThroughBlocker.dll - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.ImageConversionModule.dll + + $(KSPDIR)\GameData\SpaceTuxLibrary\Plugins\KSP_Log.dll - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.IMGUIModule.dll + + $(KSPDIR)\GameData\SpaceTuxLibrary\Plugins\SpaceTuxUtility.dll - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.InputLegacyModule.dll - - - ..\..\..\..\..\..\..\Program Files (x86)\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.TextRenderingModule.dll + + + False + $(KSPDIR)\GameData\001_ToolbarControl\Plugins\ToolbarControl.dll + + True + True + AssemblyVersion.tt + - + + + + + @@ -77,10 +77,41 @@ + + + TextTemplatingFileGenerator + AssemblyVersion.cs + + + + + - copy /y "$(TargetPath)" "$(SolutionDir)..\GameData\WaypointManager\" -copy /y "$(TargetPath)" "C:\Program Files (x86)\Kerbal Space Program\GameData\WaypointManager\" + set KSPDIR=$(KSPDIR) + +IF "%25KSPDIR%25"=="" ( + + ECHO Configuration error - KSPDIR not specified in project. + + ECHO Either set KSPDIR environment variable or edit BetterLoadSaveGame.Common.props + + PAUSE + + GOTO DONE + +) + +start /D $(SolutionDir) /WAIT deploy.bat $(TargetDir) $(TargetFileName) $(TargetName) + +if $(ConfigurationName) == Release ( + + start /D $(SolutionDir) /WAIT buildRelease.bat $(TargetDir) $(TargetFileName) $(TargetName) + +) + + + "$(DevEnvDir)\texttransform.exe" "$(ProjectDir)AssemblyVersion.tt"