Jump to content


  • Posts

  • Joined

  • Last visited


1,607 Excellent

Profile Information

  • About me
    Senior Rocket Scientist
  • Location
    Seattle, WA

Recent Profile Visitors

17,969 profile views
  1. Indeed. I freely admit my original structure was NOT set up for all developers
  2. I did, thanks!. I'm reworking the distribution portion to fit my environment, but I have it merged and compiled. Looking into it now.
  3. There was / is code in place to prevent the transfer if the module is full. Technically, it should move one of the kerbals in the destination module back into the source module. I will take a look. I've merged micha's latest master into my dev branch. If I have some luck, I'll submit a PR.
  4. Hey Papa_Joe!

    Just saw that you were active again and I wanted to say, "Welcome back!"

    eightiesboi AKA Scott

  5. for those that would like, I have created a batch script that automates the update and distribution of a new game to my development environment. It makes the process very painless. The batch script is menu driven, so you can perform all actions, or only one at a time. Also it pauses between steps, so you can see what is going on. This script is specific to my environment, but it uses txt files for folder locations, so you should be able to adapt it for your needs and your environment. @echo off rem This file sets up a fresh Development mode install of KSP from a Steam installation rem This script assumes that an existing development copy exist somewhere on your system besides steam. rem The script uses text files containing locations of various components needed for the script to work. rem Change Log: rem v2.0 add support for unity 2019. cd %~dp0 set LCL_DIR=%~dp0 set VERSION="" set space = " " set /p GIT_DIR=<"%LCL_DIR%\git_dir.txt" set /p STEAM_DIR=<"%GIT_DIR%\_LocalDev\steam_dir.txt" set /p KSP_DIR=<"%GIT_DIR%\_LocalDev\ksp_dir.txt" @echo: @echo Path tokens: @echo - LCL_DIR: %LCL_DIR% @echo - STEAM_DIR: %STEAM_DIR% @echo - GIT_DIR: %GIT_DIR% @echo - KSP_DIR: %KSP_DIR% @echo: @echo Let's get the version of the existing game... rem get_versions set steamVer = "" for /F "usebackq skip=13 delims=" %%V in ("%STEAM_DIR%\readme.txt") do set "steamVer=%%V" & goto Steamvalue :Steamvalue set thisVer = "" for /F "usebackq skip=13 delims=" %%V in ("%KSP_DIR%\readme.txt") do set "thisVer=%%V" & goto Hasvalue :Hasvalue call set VERSION=%%thisVer:Version =%word%%% @echo - Steam Version found is: %steamVer% @echo - Dev Version found is: %thisVer% set /p quit= " - Do you wish to continue? (Y/N): " if /i "%quit%" == "N" ( @echo - Terminating batch operation without executing Dev Setup... goto end ) :menu @echo: @echo: @echo ==================================================== @echo Main Menu: @echo: @echo 1 - Perform all steps... @echo 2 - Backup existing game folder... @echo 3 - Remove existing game folder... @echo 4 - Create new game folder... @echo 5 - Copy Steam game folder... @echo 6 - Copy new KSP assemblies to Dev... @echo 7 - Copy Dev Debug files to Game folder... @echo 8 - Copy Game Save and Ships to Game folder... @echo 9 - Create linked folder... @echo X - Quit script (Do nothing!) @echo ==================================================== @echo: set /p optn= "---> Select option (1 - 9, X): " @echo: @echo Choice made: "%optn%" @echo: if "%optn%" == "1" ( goto backupGame ) if "%optn%" == "2" ( goto backupGame ) if "%optn%" == "3" ( goto removeGame ) if "%optn%" == "4" ( goto createFolder ) if "%optn%" == "5" ( goto copyGame ) if "%optn%" == "6" ( goto copyAssemblies ) if "%optn%" == "7" ( goto copyDebugFiles ) if "%optn%" == "8" ( goto copyGameSaves ) if "%optn%" == "9" ( goto createLinkedFolder ) if /I "%optn%" == "X" ( goto end ) goto end :backupGame @echo: @echo - Backup existing game folder... @echo: pause @echo: @echo - Backup in progress, please wait... xcopy /E /Y /Q "%KSP_DIR%\*.*" "%KSP_DIR%_%VERSION%_old\" @echo - Backup complete... @echo: if not "%optn%" == "1" ( goto end ) :removeGame @echo - Removing existing game folder... pause rmdir /s /q "%KSP_DIR%" @echo - Removal complete... @echo: if not "%optn%" == "1" ( goto end ) :createFolder @echo - Creating new game folder... pause if not exist "%KSP_DIR%" ( mkdir "%KSP_DIR%" @echo - Game folder created... ) else ( @echo - Game folder exists. Skipping... ) @echo: if not "%optn%" == "1" ( goto end ) :copyGame @echo - Ready to Copy Steam Game to local Game folder... @echo from: "%STEAM_DIR%" @echo to: "%KSP_DIR%" pause xcopy /E /Y "%STEAM_DIR%\*.*" "%KSP_DIR%\" @echo - Copy complete... @echo: if not "%optn%" == "1" ( goto end ) :copyAssemblies @echo - Ready to Copy KSP and unity assemblies @echo from: "%KSP_DIR%\KSP_x64_Data\Managed" @echo to: "%GIT_DIR%\_LocalDev\KSPRefs\" folder... pause xcopy /E /Y "%KSP_DIR%\KSP_x64_Data\Managed\Assembly-CSharp.dll" "%GIT_DIR%\_LocalDev\KSPRefs\" xcopy /E /Y "%KSP_DIR%\KSP_x64_Data\Managed\Assembly-CSharp-firstpass.dll" "%GIT_DIR%\_LocalDev\KSPRefs\" xcopy /E /Y "%KSP_DIR%\KSP_x64_Data\Managed\KSPAssets.dll" "%GIT_DIR%\_LocalDev\KSPRefs\" xcopy /E /Y "%KSP_DIR%\KSP_x64_Data\Managed\UnityEngine.dll" "%GIT_DIR%\_LocalDev\KSPRefs\" xcopy /E /Y "%KSP_DIR%\KSP_x64_Data\Managed\UnityEngine.*.dll" "%GIT_DIR%\_LocalDev\KSPRefs\" xcopy /Y "%KSP_DIR%\readme.txt" "%GIT_DIR%\_LocalDev\KSPRefs\" @echo - Copy complete... @echo: if not "%optn%" == "1" ( goto end ) :copyDebugFiles @echo - Ready to Copy unity debug files to game folder and set debug mode... pause @echo player-connection-debug=1 >> "%KSP_DIR%\KSP_x64_Data\boot.config copy /Y "%LCL_DIR%\WindowsPlayer.exe" "%KSP_DIR%\ksp_x64_dbg.exe" copy /Y "%LCL_DIR%\UnityPlayer.dll" "%KSP_DIR%" copy /Y "%LCL_DIR%\WinPixEventRuntime.dll" "%KSP_DIR%" @echo - Copy complete... @echo: if not "%optn%" == "1" ( goto end ) :copyGameSaves @echo - Ready to Copy ships, Saves and mods to the new game folder. pause xcopy /E /Y /D "%KSP_DIR%_%VERSION%_old\GameData\*.*" "%KSP_DIR%\GameData\" xcopy /E /Y /D "%KSP_DIR%_%VERSION%_old\ships\*.*" "%KSP_DIR%\Ships\" xcopy /E /Y /D "%KSP_DIR%_%VERSION%_old\saves\*.*" "%KSP_DIR%\saves\" @echo - Copy complete... @echo: if not "%optn%" == "1" ( goto end ) :createLinkedFolder @echo - Ready to create the linked folder for debugging... @echo: pause REM cd /d "%KSP_DIR%" REM @echo - Curr Dir: "%cd%" REM @echo - Game Directory: "%KSP_DIR%"... REM @echo: REM pause mklink /J "%KSP_DIR%"\KSP_x64_Dbg_Data "%KSP_DIR%"\KSP_x64_Data @echo - Linked folder created... @echo: :end cd %~dp0 @echo - %~dp0 @echo: @echo - script complete... @echo: pause The script performs the following actions: 1. checks to see if a new version of the game exists in Steam, compared to the latest copy of your development version of the game. It checks the readme.txt to get the version information. 2. Backs up the existing dev game folder for archival needs. 3. deletes the existing dev game folder 4. Copies all files from the steam installation into a new game folder. 5. copies all the KSP and unity assemblies needed for development into a location of your choice. I do this to ensure I have the latest assemblies, and they are not tied to my steam installation. Keeps them in sync. Makes multi developer easier, as the assemblies are in a common location for all KSP mods I supported. 6. Copies the debug files ( WIndowsPLayer.exe, UnityPlayer.dll and WinPixEventRuntime.dll into the dev game root folder It also sets the flag in Boot.config. 7 Copies any existing saves, ships, and mods from the previous dev game installation over to the new Dev Game installation. 8. Creates the linked Folder, and finally lets you know it is done. I hope this is helpful. The paths in the .txt files are one line only. This is assumed by the command reading from the file. It will only retrieve the first line. You could add all paths to a single file if you wish and simply read each line and assign to your vars using a different file handling technique. If you have any questions, let me know. This script has been tested, and I use it regularly. It should work both by executing the script as a .bat, or by running it in power shell.
  6. Thanks! I saw the pr pop up. I'll look at it this evening US Pacific time.
  7. Hey. I'll be updating apps in a day or two
  8. First, delete any BDArmory folders in your GameData folders. Then Go here. Then downlaod the zip file and unzip. then drop the BDArmory folder into your GameData Folder.
  9. The repository for BDAc contains the source code for bda. Go to the releases page for bda on GitHub and the download is there. You can go to the original post for BDAc on the forums and the link is located there as well. While it is true that there is a gamedata folder in the source code repository, the dlls needed for bda to work are either out of date or don't exist there. It is used only as a storage area for the pieces needed for the distribution process. During the build of the distribution file, the data in that folder is combined with the latest dlls to create a zip file. Finally, in the gamedata folder you should see a bdarmory folder. Before you install bda, be sure to delete this folder if it exists. Any other folders with bdarmory in the name should also be deleted if you downloaded the entire repository instead of the release zip earlier.
  10. Yes, I screwed up when updating BDAc. I do have an update for VM in the works. Some amazing code work by @DoctorDavinci. I'll talk more about it as I get it fully integrated and some additional features finished.
  11. It is a conundrum for sure. KSP provides little in the way of truly identifying vessels within vessels. There is a root part that when docked provides info on the other vessel it is docked to. However since the 2 vessels are docked, they become one vessel in the eyes of KSP. When they undock, the vessel id is then applied to the newly undocked vessel. this presents problems with properly identifying "unique" vessels within a larger structure. Compound that with the fact that there is a launch Id that is tied to each part. This cannot be used as a means to identify a vessel, as if, for example you build a space station, it is likely the product of multiple launches. So I've come up with an algorithm that tries to "discern" what is a unique vessel, based on docking nodes and command pods. This is not always perfect. I will be continuing to revisit the code, but I'm not sure there is or can be a perfect solution. Thanks for that! It is one of those mods that has a lot of features that are not really apparent. Most people think of it as a crew transfer mod, but it does a lot more than that.... It really is a "quality of game play" mod. Makes things a lot more convenient.
  12. Your empty button exists. In settings, under realism you will find settings for allowing fil and dump. these do exactly what they describe. However, it breaks realism as it is a "free" fill up" Dump just dumps the resource to space (or where ever) Flow priority is a bit ambiguous. You can transfer a single or group of tanks to another single or group of tanks. You can also transfer from parts to a vessel, or from a vessel to a vessel... so there is a lot of flexibility there... Height settings are something I have considered. It will take some refactoring to make it work, however because the transfer window is divided into 4 sections, do I expand all sections equally? or do I just expand the top where the list is? Also the window is used as a multifunction screen, so some sections do not need expansion if the window is resized. Think it over and give me suggestions.
  13. New Release. R17, 10 Sep, 2018 * New * Recompiled for KSP 1.4.5 * Renamed project to reflect Mod Name (generally accepted practice with KSP mods) * Reorganized code to follow current mod structure best practices. Split classes into separate files for improved visualization of the code. * Config files moved to PluginData to prevent ModuleManager from needlessly invalidating its part cache. * Added Build/deploy automation to reduce labor, testing and reduce deployment errors. * Added change log to distribution. * Fixes * Per forum post by MOARdV, added an OnPostRender event handler to prevent game objects from persisting through other cameras' render cycles. Problem noticed in MAS MFDs Enjoy. Let me know if you find issues.
  • Create New...