From a9f8dff65299018f014a39aeb023755ace5fe9a5 Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Tue, 25 Feb 2025 07:26:35 -0500 Subject: [PATCH 01/12] Added an option to invert the pitch controls --- FlyByWireSASMode.cs | 14 ++++++++++++++ GameData/FlyByWireSASMode/Settings.cfg | 3 ++- VesselState.cs | 8 +++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/FlyByWireSASMode.cs b/FlyByWireSASMode.cs index a890c1a..15c2505 100644 --- a/FlyByWireSASMode.cs +++ b/FlyByWireSASMode.cs @@ -32,6 +32,9 @@ internal class FlyByWireSASMode : MonoBehaviour // config private static AutopilotMode requiredSASMode = AutopilotMode.Maneuver; internal static float inputSensitivity = 1f; + internal static bool invertPitch = false; + internal static KeyBinding LOCAL_PITCH_DOWN; + internal static KeyBinding LOCAL_PITCH_UP; // internal state private bool started; @@ -85,6 +88,17 @@ private void Awake() default: requiredSASMode = AutopilotMode.Maneuver; break; } } + nodes[0].TryGetValue("InvertPitch", ref invertPitch); + if (invertPitch) + { + LOCAL_PITCH_DOWN = GameSettings.PITCH_UP; + LOCAL_PITCH_UP = GameSettings.PITCH_DOWN; + } + else + { + LOCAL_PITCH_DOWN = GameSettings.PITCH_DOWN; + LOCAL_PITCH_UP = GameSettings.PITCH_UP; + } } Texture2D tex = GameDatabase.Instance.GetTexture(TEX_PATH, false); diff --git a/GameData/FlyByWireSASMode/Settings.cfg b/GameData/FlyByWireSASMode/Settings.cfg index baedd5a..9827243 100644 --- a/GameData/FlyByWireSASMode/Settings.cfg +++ b/GameData/FlyByWireSASMode/Settings.cfg @@ -2,4 +2,5 @@ FLYBYWIRESASMODE { RequiredSASLevel = 3 // 0 to 3 InputSensitivity = 1.0 -} \ No newline at end of file + InvertPitch = false +} diff --git a/VesselState.cs b/VesselState.cs index bf2e46c..4bfeede 100644 --- a/VesselState.cs +++ b/VesselState.cs @@ -56,9 +56,11 @@ private void OnPreAutopilotUpdate(FlightCtrlState st) bool precisionMode = FlightInputHandler.fetch.precisionMode; double pitch = GameSettings.AXIS_PITCH.GetAxis(); - if (GameSettings.PITCH_DOWN.GetKey()) - pitch = precisionMode ? -0.25 : - 1.0; - else if (GameSettings.PITCH_UP.GetKey()) + //if (GameSettings.PITCH_DOWN.GetKey()) + if (FlyByWireSASMode.LOCAL_PITCH_DOWN.GetKey()) + pitch = precisionMode ? -0.25 : - 1.0; + //else if (GameSettings.PITCH_UP.GetKey()) + else if (FlyByWireSASMode.LOCAL_PITCH_UP.GetKey()) pitch = precisionMode ? 0.25 : 1.0; double yaw = GameSettings.AXIS_YAW.GetAxis(); From 21634fd0eb64eddb85768377d6e99982c9ec849f Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Tue, 25 Feb 2025 07:28:17 -0500 Subject: [PATCH 02/12] Removed commented lines which were replaced by new code --- VesselState.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/VesselState.cs b/VesselState.cs index 4bfeede..678b322 100644 --- a/VesselState.cs +++ b/VesselState.cs @@ -56,10 +56,8 @@ private void OnPreAutopilotUpdate(FlightCtrlState st) bool precisionMode = FlightInputHandler.fetch.precisionMode; double pitch = GameSettings.AXIS_PITCH.GetAxis(); - //if (GameSettings.PITCH_DOWN.GetKey()) if (FlyByWireSASMode.LOCAL_PITCH_DOWN.GetKey()) pitch = precisionMode ? -0.25 : - 1.0; - //else if (GameSettings.PITCH_UP.GetKey()) else if (FlyByWireSASMode.LOCAL_PITCH_UP.GetKey()) pitch = precisionMode ? 0.25 : 1.0; From ee8c1e37f924b40580adeadfa8357c253ae86efe Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Tue, 4 Mar 2025 17:25:37 -0500 Subject: [PATCH 03/12] Adds option added to invert the pitch controls Reorganized for LGG build process --- Changelog.txt | 5 + FlyByWireSASMode.sln | 11 +- FlyByWireSASMode.version | 26 ++++ .../FlyByWireSASMode/FlyByWireSASMode.dll | Bin 0 -> 16384 bytes .../FlyByWireSASMode/FlyByWireSASMode.version | 27 +++- GameData/FlyByWireSASMode/LICENSE.txt | 21 +++ .../Plugins/FlyByWireSASMode.dll | Bin 0 -> 15360 bytes .../Plugins/FlyByWireSASMode.version | 26 ++++ GameData/FlyByWireSASMode/README.md | 43 ++++++ Source/AssemblyVersion.cs | 9 ++ Source/AssemblyVersion.tt | 101 +++++++++++++ Source/FlyByWireSASMode-LGG.csproj | 139 ++++++++++++++++++ .../FlyByWireSASMode.cs | 0 .../FlyByWireSASMode.csproj | 0 Lib.cs => Source/Lib.cs | 0 .../Properties}/AssemblyInfo.cs | 4 +- VesselState.cs => Source/VesselState.cs | 0 buildRelease.bat | 74 ++++++++++ deploy.bat | 28 ++++ packages.config | 2 +- 20 files changed, 507 insertions(+), 9 deletions(-) create mode 100644 Changelog.txt create mode 100644 FlyByWireSASMode.version create mode 100644 GameData/FlyByWireSASMode/FlyByWireSASMode.dll create mode 100644 GameData/FlyByWireSASMode/LICENSE.txt create mode 100644 GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll create mode 100644 GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version create mode 100644 GameData/FlyByWireSASMode/README.md create mode 100644 Source/AssemblyVersion.cs create mode 100644 Source/AssemblyVersion.tt create mode 100644 Source/FlyByWireSASMode-LGG.csproj rename FlyByWireSASMode.cs => Source/FlyByWireSASMode.cs (100%) rename FlyByWireSASMode.csproj => Source/FlyByWireSASMode.csproj (100%) rename Lib.cs => Source/Lib.cs (100%) rename {Properties => Source/Properties}/AssemblyInfo.cs (93%) rename VesselState.cs => Source/VesselState.cs (100%) create mode 100644 buildRelease.bat create mode 100644 deploy.bat diff --git a/Changelog.txt b/Changelog.txt new file mode 100644 index 0000000..d96acaa --- /dev/null +++ b/Changelog.txt @@ -0,0 +1,5 @@ +Changelog + + Adds option added to invert the pitch controls + Reorganized for LGG build process + \ No newline at end of file diff --git a/FlyByWireSASMode.sln b/FlyByWireSASMode.sln index 93d68f8..e918480 100644 --- a/FlyByWireSASMode.sln +++ b/FlyByWireSASMode.sln @@ -3,15 +3,20 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.8.34322.80 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlyByWireSASMode", "FlyByWireSASMode.csproj", "{FCE5C5F0-F2E3-41BA-A33F-0A9888E486F8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlyByWireSASMode", "Source\FlyByWireSASMode.csproj", "{FCE5C5F0-F2E3-41BA-A33F-0A9888E486F8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{32A9AB6B-321D-43DE-9A81-8CFF164DBE7E}" ProjectSection(SolutionItems) = preProject + buildRelease.bat = buildRelease.bat + Changelog.txt = Changelog.txt + deploy.bat = deploy.bat GameData\FlyByWireSASMode\FlyByWireSASMode.version = GameData\FlyByWireSASMode\FlyByWireSASMode.version LICENSE.txt = LICENSE.txt README.md = README.md EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlyByWireSASMode-LGG", "Source\FlyByWireSASMode-LGG.csproj", "{9F83CB2E-FC26-4551-8A6A-DE18F316F556}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -22,6 +27,10 @@ Global {FCE5C5F0-F2E3-41BA-A33F-0A9888E486F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {FCE5C5F0-F2E3-41BA-A33F-0A9888E486F8}.Release|Any CPU.ActiveCfg = Release|Any CPU {FCE5C5F0-F2E3-41BA-A33F-0A9888E486F8}.Release|Any CPU.Build.0 = Release|Any CPU + {9F83CB2E-FC26-4551-8A6A-DE18F316F556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F83CB2E-FC26-4551-8A6A-DE18F316F556}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F83CB2E-FC26-4551-8A6A-DE18F316F556}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F83CB2E-FC26-4551-8A6A-DE18F316F556}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/FlyByWireSASMode.version b/FlyByWireSASMode.version new file mode 100644 index 0000000..f325377 --- /dev/null +++ b/FlyByWireSASMode.version @@ -0,0 +1,26 @@ +{ + "NAME": "FlyByWireSASMode", + "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", + "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", + "VERSION": { + "MAJOR": 1, + "MINOR": 2, + "PATCH": 0, + "BUILD": 1 + }, + "KSP_VERSION": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 5 + }, + "KSP_VERSION_MIN": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 3 + }, + "KSP_VERSION_MAX": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 5 + } +} \ No newline at end of file diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.dll b/GameData/FlyByWireSASMode/FlyByWireSASMode.dll new file mode 100644 index 0000000000000000000000000000000000000000..2b3baa51ba9b9c98a508f85d6b525685800bf781 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/FlyByWireSASMode.version index 16a2e89..f325377 100644 --- a/GameData/FlyByWireSASMode/FlyByWireSASMode.version +++ b/GameData/FlyByWireSASMode/FlyByWireSASMode.version @@ -2,8 +2,25 @@ "NAME": "FlyByWireSASMode", "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", - "VERSION": {"MAJOR": 1, "MINOR": 2, "PATCH": 0, "BUILD": 0}, - "KSP_VERSION": {"MAJOR": 1, "MINOR": 12, "PATCH": 5}, - "KSP_VERSION_MIN": {"MAJOR": 1, "MINOR": 12, "PATCH": 3}, - "KSP_VERSION_MAX": {"MAJOR": 1, "MINOR": 12, "PATCH": 5} -} + "VERSION": { + "MAJOR": 1, + "MINOR": 2, + "PATCH": 0, + "BUILD": 1 + }, + "KSP_VERSION": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 5 + }, + "KSP_VERSION_MIN": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 3 + }, + "KSP_VERSION_MAX": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 5 + } +} \ No newline at end of file diff --git a/GameData/FlyByWireSASMode/LICENSE.txt b/GameData/FlyByWireSASMode/LICENSE.txt new file mode 100644 index 0000000..889ef56 --- /dev/null +++ b/GameData/FlyByWireSASMode/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Gotmachine + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll b/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll new file mode 100644 index 0000000000000000000000000000000000000000..71462bdf282ce7fb56b3e8ff3006886f0020cb9b GIT binary patch literal 15360 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 N!Kbz3{{CNG{|6nPg?Rt~ literal 0 HcmV?d00001 diff --git a/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version new file mode 100644 index 0000000..f325377 --- /dev/null +++ b/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version @@ -0,0 +1,26 @@ +{ + "NAME": "FlyByWireSASMode", + "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", + "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", + "VERSION": { + "MAJOR": 1, + "MINOR": 2, + "PATCH": 0, + "BUILD": 1 + }, + "KSP_VERSION": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 5 + }, + "KSP_VERSION_MIN": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 3 + }, + "KSP_VERSION_MAX": { + "MAJOR": 1, + "MINOR": 12, + "PATCH": 5 + } +} \ No newline at end of file diff --git a/GameData/FlyByWireSASMode/README.md b/GameData/FlyByWireSASMode/README.md new file mode 100644 index 0000000..7322421 --- /dev/null +++ b/GameData/FlyByWireSASMode/README.md @@ -0,0 +1,43 @@ +# FlyByWire SAS Mode + +This Kerbal Space Program plugin adds four new SAS modes and a new more relaxing way to control your vessel, especially useful for managing your gravity turns on launch : + +![Navball](https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/ReadMeImages/NavballScreenshot.png) + +| **Modes** | | +|:---:|---| +|![](https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/ReadMeImages/FlyByWire.png) | **Fly by wire**
When enabled, pitch and yaw WASD inputs don't control the vessel directly anymore, but instead control the position of a custom navball direction marker that the SAS will follow automatically. You can switch to precision mode (`Caps lock` key) for finer control.| +|![](https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/ReadMeImages/FlyByWirePlane.png) | **Fly by wire (plane mode)**
Identical to the fly by wire mode, but the navball marker stays at a constant position relative to the horizon.| +|![](https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/ReadMeImages/ParallelNeg.png) | **AntiParallel**
Available when a target is selected, will keep the vessel control part in the opposite orientation as the target. Quite useful for docking !| +|![](https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/ReadMeImages/ParallelPos.png) | **Parallel**
Available when a target is selected, will keep the vessel control part in the same orientation as the target.| + +These new modes are available for pilots and probe cores at the same SAS level as the target and maneuver modes, but this is configurable in the ```settings.cfg``` file (doing that with a ModuleManager patch is recommended). + +### Download and installation + +Compatible with **KSP 1.12.3** to **1.12.5** - Available on CKAN + +**Installation** + +- Go to the **[GitHub release page](https://github.com/gotmachine/FlyByWireSASMode/releases)** and download the file named `FlyByWireSASMode_x.x.x.zip` +- Open the downloaded *.zip archive +- Open the `GameData` folder of your KSP installation +- Delete any existing `FlyByWireSASMode` folder in your `GameData` folder +- Copy the `FlyByWireSASMode` folder found in the archive into your `GameData` folder + +### License + +MIT + +### Changelog + +#### 1.2.0 - 01/05/2024 +- Added plane mode +- Fixed a bug where the SAS would keep going toward the fly by wire direction after switching back to the stock stability assist mode. +- Put all icons in a single texture atlas + +#### 1.1.0 - 28/04/2024 +- Added parallel / antiparallel modes + +#### 1.0.0 - 27/04/2024 +- Inital release diff --git a/Source/AssemblyVersion.cs b/Source/AssemblyVersion.cs new file mode 100644 index 0000000..bd41589 --- /dev/null +++ b/Source/AssemblyVersion.cs @@ -0,0 +1,9 @@ + + // 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: AssemblyVersion("1.2.0.1")] + [assembly: AssemblyFileVersion("1.2.0.1")] diff --git a/Source/AssemblyVersion.tt b/Source/AssemblyVersion.tt new file mode 100644 index 0000000..d0c397e --- /dev/null +++ b/Source/AssemblyVersion.tt @@ -0,0 +1,101 @@ +<#@ 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 + "FlyByWireSASMode.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: AssemblyVersion("<#= major #>.<#= minor #>.<#= patch #>.<#= build #>")] + [assembly: AssemblyFileVersion("<#= major #>.<#= minor #>.<#= patch #>.<#= build #>")] diff --git a/Source/FlyByWireSASMode-LGG.csproj b/Source/FlyByWireSASMode-LGG.csproj new file mode 100644 index 0000000..4bc9240 --- /dev/null +++ b/Source/FlyByWireSASMode-LGG.csproj @@ -0,0 +1,139 @@ + + + + + + Debug + AnyCPU + {9F83CB2E-FC26-4551-8A6A-DE18F316F556} + Library + Properties + FlyByWireSASMode + FlyByWireSASMode + v4.7.2 + 512 + true + x64 + + + + + true + portable + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + false + portable + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + KSP_x64.exe + KSP.app + KSP.x86_64 + KSP_x64_Data\Managed + KSP.app\Contents\Resources\Data\Managed + KSP_Data\Managed + $(ReferencePath)\$(ManagedRelativePath) + Program + $(ReferencePath)\$(KSPExecutable) + $(ReferencePath) + + + + + + + + + + False + + + False + + + + + + True + True + AssemblyVersion.tt + + + + + + + + + + + + TextTemplatingFileGenerator + AssemblyVersion.cs + + + + + + + + $(ProjectDir) + FlyByWireSASMode + false + false + FlyByWireSASMode.version + + + + + +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) + +) + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + "$(DevEnvDir)\texttransform.exe" "$(ProjectDir)AssemblyVersion.tt" + + + \ No newline at end of file diff --git a/FlyByWireSASMode.cs b/Source/FlyByWireSASMode.cs similarity index 100% rename from FlyByWireSASMode.cs rename to Source/FlyByWireSASMode.cs diff --git a/FlyByWireSASMode.csproj b/Source/FlyByWireSASMode.csproj similarity index 100% rename from FlyByWireSASMode.csproj rename to Source/FlyByWireSASMode.csproj diff --git a/Lib.cs b/Source/Lib.cs similarity index 100% rename from Lib.cs rename to Source/Lib.cs diff --git a/Properties/AssemblyInfo.cs b/Source/Properties/AssemblyInfo.cs similarity index 93% rename from Properties/AssemblyInfo.cs rename to Source/Properties/AssemblyInfo.cs index 97d0391..b4b83a7 100644 --- a/Properties/AssemblyInfo.cs +++ b/Source/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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.0.0")] -[assembly: AssemblyFileVersion("1.2.0.0")] +//[assembly: AssemblyVersion("1.0.0.0")] +//[assembly: AssemblyFileVersion("1.2.0.0")] diff --git a/VesselState.cs b/Source/VesselState.cs similarity index 100% rename from VesselState.cs rename to Source/VesselState.cs diff --git a/buildRelease.bat b/buildRelease.bat new file mode 100644 index 0000000..051a5ce --- /dev/null +++ b/buildRelease.bat @@ -0,0 +1,74 @@ + +@echo off + +rem Put the following text into the Post-build event command line: +rem without the "rem": + +rem start /D D:\Users\jbb\github\IFI-Life-Support /WAIT deploy.bat $(TargetDir) $(TargetFileName) +rem +rem if $(ConfigurationName) == Release ( +rem +rem start /D D:\Users\jbb\github\IFI-Life-Support /WAIT buildRelease.bat $(TargetDir) $(TargetFileName) +rem +rem ) + + +rem Set variables here + +rem H is the destination game folder +rem GAMEDIR is the name of the mod folder (usually the mod name) +rem GAMEDATA is the name of the local GameData +rem VERSIONFILE is the name of the version file, usually the same as GAMEDATA, +rem but not always +rem LICENSE is the license file +rem README is the readme file + +set GAMEDIR=FlyByWireSASMode +set GAMEDATA="GameData\" +set VERSIONFILE=%GAMEDIR%.version +set LICENSE=License.txt +set README=ReadMe.md + +set RELEASEDIR=d:\Users\jbb\release +set ZIP="c:\Program Files\7-zip\7z.exe" + +rem Copy files to GameData locations + +copy /Y "%1%2" "%GAMEDATA%\%GAMEDIR%\Plugins" +copy /Y %VERSIONFILE% %GAMEDATA%\%GAMEDIR%\Plugins + +if "%LICENSE%" NEQ "" copy /y %LICENSE% %GAMEDATA%\%GAMEDIR% +if "%README%" NEQ "" copy /Y %README% %GAMEDATA%\%GAMEDIR% + +rem Get Version info + +copy %VERSIONFILE% tmp.version +set VERSIONFILE=tmp.version +rem The following requires the JQ program, available here: https://stedolan.github.io/jq/download/ +c:\local\jq-win64 ".VERSION.MAJOR" %VERSIONFILE% >tmpfile +set /P major=tmpfile +set /P minor=tmpfile +set /P patch=tmpfile +set /P build= - + \ No newline at end of file From ec77d717a0048c36def14548447ca9994c0c8243 Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Wed, 20 Aug 2025 18:02:33 -0400 Subject: [PATCH 04/12] Added Jenkins.txt --- Changelog.txt | 1 + FlyByWireSASMode.sln | 1 + .../FlyByWireSASMode/FlyByWireSASMode.version | 2 +- jenkins.txt | 44 +++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 jenkins.txt diff --git a/Changelog.txt b/Changelog.txt index d96acaa..4924665 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,6 @@ Changelog +2.2.0.1 Adds option added to invert the pitch controls Reorganized for LGG build process \ No newline at end of file diff --git a/FlyByWireSASMode.sln b/FlyByWireSASMode.sln index e918480..2ab0ead 100644 --- a/FlyByWireSASMode.sln +++ b/FlyByWireSASMode.sln @@ -11,6 +11,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Changelog.txt = Changelog.txt deploy.bat = deploy.bat GameData\FlyByWireSASMode\FlyByWireSASMode.version = GameData\FlyByWireSASMode\FlyByWireSASMode.version + jenkins.txt = jenkins.txt LICENSE.txt = LICENSE.txt README.md = README.md EndProjectSection diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/FlyByWireSASMode.version index f325377..13d7d89 100644 --- a/GameData/FlyByWireSASMode/FlyByWireSASMode.version +++ b/GameData/FlyByWireSASMode/FlyByWireSASMode.version @@ -3,7 +3,7 @@ "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", "VERSION": { - "MAJOR": 1, + "MAJOR": 2, "MINOR": 2, "PATCH": 0, "BUILD": 1 diff --git a/jenkins.txt b/jenkins.txt new file mode 100644 index 0000000..372bef7 --- /dev/null +++ b/jenkins.txt @@ -0,0 +1,44 @@ +# +# This file contains several types of information: +# +# 0 KSP version, if not the current +# 1 Mod install directory, version file to use when building zip file +# 2 Project definitions +# 2c Compiler options and flags +# 3 Files to copy, source, dest +# 4 Directory to copy, sourcedir, destdir +# 5 Add ModuleManager to GameData +# 6 Spacedock.info mod id +# 7 Additional folders in the GameData to be included in the final zip +# 8 Additional mods to include, will copy into GameData and will be included in zip +# 9 Additional folders to include, at the same level as the GameData +# 10 Additional root top level directory +# 11 zip file name + +# Special case if files are in the GameData directory itself +# Special Case: 7:GameData + +# +# All paths are relative to the top git folder of the repo +# +# and must use forward slashes +# + +# 0:KSPVersion +# 0:1.3 + +# 1:GAMEDIR, VERSIONFILE [, GITHUBREPO ] +1:FlyByWireSASMode, DeepFreezeContinued.version + +# 2:PROJNAME, PROJFILE, VERSIONFILE, PLUGINSFOLDER +2:FlyByWireSASMode,FlyByWireSASMode/FlyByWireSASMode.csproj,FlyByWireSASMode.version,GameData/FlyByWireSASMode/Plugins + +# 3:SOURCEFILE, DESTDIR +3:FlyByWireSASMode.version,GameData/FlyByWireSASMode +3:LICENSE.txt,GameData/FlyByWireSASMode +3:README.md,GameData/FlyByWireSASMode + + +# +# End of file +# From 68d18aa3e12b705b8df0389f67dc42b6dd18ae4a Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Wed, 20 Aug 2025 18:05:09 -0400 Subject: [PATCH 05/12] jenkins --- jenkins.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkins.txt b/jenkins.txt index 372bef7..b8b54d8 100644 --- a/jenkins.txt +++ b/jenkins.txt @@ -28,7 +28,7 @@ # 0:1.3 # 1:GAMEDIR, VERSIONFILE [, GITHUBREPO ] -1:FlyByWireSASMode, DeepFreezeContinued.version +1:FlyByWireSASMode, FlyByWireSASMode.version # 2:PROJNAME, PROJFILE, VERSIONFILE, PLUGINSFOLDER 2:FlyByWireSASMode,FlyByWireSASMode/FlyByWireSASMode.csproj,FlyByWireSASMode.version,GameData/FlyByWireSASMode/Plugins From 3291bc069d35ea083bb8cd26e008e8e4bca9a964 Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Wed, 20 Aug 2025 18:06:23 -0400 Subject: [PATCH 06/12] Jenkins --- jenkins.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkins.txt b/jenkins.txt index b8b54d8..a466f80 100644 --- a/jenkins.txt +++ b/jenkins.txt @@ -31,7 +31,7 @@ 1:FlyByWireSASMode, FlyByWireSASMode.version # 2:PROJNAME, PROJFILE, VERSIONFILE, PLUGINSFOLDER -2:FlyByWireSASMode,FlyByWireSASMode/FlyByWireSASMode.csproj,FlyByWireSASMode.version,GameData/FlyByWireSASMode/Plugins +2:FlyByWireSASMode,Source/FlyByWireSASMode-LGG.csproj,FlyByWireSASMode.version,GameData/FlyByWireSASMode/Plugins # 3:SOURCEFILE, DESTDIR 3:FlyByWireSASMode.version,GameData/FlyByWireSASMode From 3d58441f34c36c7fcb91445de1470a90ef50273a Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Wed, 20 Aug 2025 18:14:33 -0400 Subject: [PATCH 07/12] test --- .../FlyByWireSASMode/FlyByWireSASMode.version | 2 +- .../Plugins/FlyByWireSASMode.dll | Bin 15360 -> 16384 bytes Source/VesselState.cs | 3 +++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/FlyByWireSASMode.version index 13d7d89..f325377 100644 --- a/GameData/FlyByWireSASMode/FlyByWireSASMode.version +++ b/GameData/FlyByWireSASMode/FlyByWireSASMode.version @@ -3,7 +3,7 @@ "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", "VERSION": { - "MAJOR": 2, + "MAJOR": 1, "MINOR": 2, "PATCH": 0, "BUILD": 1 diff --git a/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll b/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll index 71462bdf282ce7fb56b3e8ff3006886f0020cb9b..b1a4dccba0cc28e5a389e69ef4c7dad263a1e792 100644 GIT binary patch delta 7728 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 T>RXyV?Dd+&$UV`9KWqO7f=ddj delta 6495 zcmZ`;4RjP$mcH**byanBcO})GbP|5^L!i?6Ap{5nSV96KprHJdfCy-CqG-hg&P=vV zx-+7JI7p^e2ExFC&Wx~nTv@=C9S31qR@l|qVL2QfR~?zb^)Q}M8JyV}9c91wsuQB; zOw;wfd+)pVzW46C@77C`PP6oPc5I2){_NlnDf9W1iVH)$ny9vSUteIy5~3yE;reM_ zC(ARF6QNXyr`GFZ zL%NHu^3r4_WNsC}CoSC_D;U*95Y5uKJ5DrtZVj65@d73Qn!}|oB5xW-M=ct65(M{`n%?S4-sOJqF7;ECt>1IK-9L|UQ85oz&JDrykEwAU2wN>|42$DDgP?zpxY8Uda^{4ze_nXXziLI9A zHO16;^*;wI!oG6QU4RZ)ifkyYR7c0l14*&@a(goFakey5OAQ&YgDq=q%5dsnYK>|+=CQ?=TzM?LViLcX7-&lX3d|YOI0lEH|W@|DAj+kC$ zj;*;ezx)LUT)E(YSa2X-edZgfD3@4Jl`X{HTft#BRSfYpd>>!WQJ%Cg>;9Y+fs*EV zRoK=6E`P>m<}ETOq;#GXIVF#zt-H%b-1X!NGzjab4Yg&N{w7GK6rq^-d|oDogL2SM zNLMIUB1GTJRNunZZQW^xinCHcvo|_qnMTxbR)e(-uRfHQGBTbfOOc#X@ujMkM%ze= zGV}GO8LX%_nWlM#vj*HsXDzTf7R-pT7NQ9;J1B@5fC)40U{mu7CcQq>HRQLZzTT6osF>c z{uHU@iI=<@t1=L)R%x!c-dZ$HzI0yaNM>0u#PN2!pdIh(0rE`F;oKsyYW|F?%)4qi zsk(JYp>9moOg;iIyB`I*j{!D>x^Xg)w_Cte4ACk>{h@rdJeVPW@oK2Nv|GF}Giv#R z)aq}j)rY#b4)_gsKMvYAX!@&;!*IN9K(FGjIS%VL_AAR6pr=0JfrEF4=4?l&t$L4V;|i3C+eISpmF(fU z0TewE<75&#U86v8JK%ksUCPV5ykT~J81*G{XY1c<%{&sCUqwRG*mQ zZzor}N@1SRMA?s3o3sOy)#WA%Iks*LnvhnZX?ayc;|ZQC^}Q9*5z8umtvkrE@-DG7 z2RmOLHspOHq6g!BU83*=QNUtad66BkwLW>_(7)0U6|G|zW-jj=wwAX-)I&S4y|v~| z9j87vlUa`D=fQ&B2L{4F9syhQx+^+VcaSjNzr*Eim0>7jTO$d)c92iIU^C6(N~bnYy)lfl0e@Yctx*ck7r_(*Khv3Oak z&cKPrN2A$VQ%IvD5}m-9P!@G!2#wAMDuWu`F0o7#v?;Mq;(CcGiH}H~X@M#5LlXA~ zrs*1G1+B0~9|r_lf$A)i`mmL^(GrtVWYH>fmts*tNZ6k&2kgI%`YVOwnuB4?_zF}ZA3as$5|Tk)p9YZqcZp}OFS(H*c@CAL%h%g;4dtWgSJe$XV zOhXWU(Y+FVKck_9BMi+Ys^}{Mr$BQwWIv`-%B6+rHfYCa3?HG|G%ZrhY}%bti@|J` zcvj*|5~uJDJVx`gE>n!|*Nb5`nYDqw4an$AR?HX$%+V^N^Fe{HNW3QT5>TOWMgsD7 zvkG|G5~vzAzy)e8@VU?w;Q#8WVzw~-0W-O#?PQJWvh;raCg2H0U>6rSKP<2Sa*b@b z&}bjz8Z8LU&mQ6kM8?Irx7m5VeONZ23p~X?yMBg)3 zv#O^kN3y-t7hI$2^yf_H^D?(5l=!MoO3ux2pGfZSGu%bV{a1$jH_3gL;i`FunnjO~ z5?*>KtaPf`^t$AFC@Pjisgxr+AI-mR3ikVw>&*{@QrMQ~CAX8V7!QNnQYJKal4m}t z#wcIBex%(lHBQTXj_Oez@@aF1v$6#Dj^ui1xVm4>r=ykqc8m(>bV{<9*eA&BA#^sw zov^CF-CZqIF9k0~ri0tybL=ca?4b@3(kT_T3LWxZh z*Gg;!=F)?b?v%I{I0Vjx)7`*A3?_ytVAstt)Bx0IA>)`x5fd>DQ>|48`V+*kh}9x? zskKsRHygs|({8pUw3rw>udS50PGTz^U`uiA4zTIK-R!Kgkq)tV)~F#^(Rp?>{8Q*Rswe3REr`5?EQ!$qg@A=OFOz3dAA9UKWsFS|GR8RXZj%fMBr6}{}+ z!QauJ*)pA2FAH#moo8Z5#@|-6Az2xTvn%wjmP}pLuVH0;119uKnhM)X^rGIv zF43R(ee6NTvs_?xq?2t0{as9A1*TZXR%5zX$V}-~U@X3!)v<3|e+T4Q`+y^Y2Z5h! zsP2#)W#jlE>jbbVe1g^Sx$HFDJ#C(ayEl#Vn2^}%!xA5apUbS3&B*!~1CNe;2K;XL zbKvV-;}5dwrjT5-Owg;cQleR%W%5>pH^Lh*OfGPzA#iRu7efixS8;kv_*{P7bofHP zL#g6dNvyb6xFfN?DUdXw7B1u;YN9u3%>nMV=JQk33h62O310?$4TZgjb?TR?hrMrI zPEixTM{nazd9^`+pim~fIQvREd!@?Y%>SZmF53v&> zOCRI`{u_P;Va%pZe#-m^^cy%%SExZI(J|#yzLh^={2%Y-@0(xp-FzQYl|%gFkgXi% zZ<_haaYP7r92Ax^B|_h#Rf<7v)B@Z{_X58|F7P4R2uxF_GA2b2qoayK^qg9S_uEn6 zP~3v5sD$1DmeUpBc)AXpDsiU7Tcmt31p-yHQcCWUcpnXiq=Rk_%%p8}4(QQ^z#7^^ zPX$iXGZzW_Wbk(BX*DO3c`kZ7P&P49VoG+&(}}}VUfR^K^Nq9N=!N4ay-z1J+NQ1ykEVN~=|>Fwg%nM{;mw;kR=pTa zU-Y^r7G+(s(;t|+8r>A#6t>fQy~7hnH(b>U8H=WOb1fVwgvmLJYp8@})!;aWs5R2i%yDxooSP0*2u zS3hZ33R-(r4XP>@w^q@jYeCp8SOK?NvUHtCA_&DX%mm9*G`mIBqCJ%Y#;MTZa>k;& zpExF`4vF|m8bg3SE)~vz7Gdm}s26gqHD@okbsfJgMbl3WkKP~M1TeghCQW7^92qsa zfq8D-w2{JEI#6JZi3`(cr=9Hw_>}h_bz?cFBVXXJoSM3YBVQ#p|8|kFxQWu`C3x_Q zc>hPFD*i5}F?g0N#WTsPomyOY Date: Thu, 21 Aug 2025 08:50:37 -0400 Subject: [PATCH 08/12] Added Reflection code to allow compiling on Linux using Roslyn compiler --- Changelog.txt | 2 +- .../FlyByWireSASMode/FlyByWireSASMode.version | 2 +- .../Plugins/FlyByWireSASMode.dll | Bin 16384 -> 18432 bytes Source/FlyByWireSASMode-LGG.csproj | 1 + Source/VesselAutopilotAccess.cs | 106 ++++++++++++++++++ Source/VesselState.cs | 21 +++- deploy.bat | 2 +- 7 files changed, 128 insertions(+), 6 deletions(-) create mode 100644 Source/VesselAutopilotAccess.cs diff --git a/Changelog.txt b/Changelog.txt index 4924665..ccc615b 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -3,4 +3,4 @@ Changelog 2.2.0.1 Adds option added to invert the pitch controls Reorganized for LGG build process - \ No newline at end of file + Added Reflection code to allow compiling on Linux using Roslyn compiler \ No newline at end of file diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/FlyByWireSASMode.version index f325377..13d7d89 100644 --- a/GameData/FlyByWireSASMode/FlyByWireSASMode.version +++ b/GameData/FlyByWireSASMode/FlyByWireSASMode.version @@ -3,7 +3,7 @@ "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", "VERSION": { - "MAJOR": 1, + "MAJOR": 2, "MINOR": 2, "PATCH": 0, "BUILD": 1 diff --git a/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll b/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll index b1a4dccba0cc28e5a389e69ef4c7dad263a1e792..7c022732c0d696f826f180f2505f8ae41e81d635 100644 GIT binary patch literal 18432 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 literal 16384 zcmb_@dw3kxmFKD3)zuGmx76Kw_=(#XL)(%X$u=N?W4raREwE+TEx%+K(UMAX$E~h* zb+>F;NN$l3;$B#m^=m&NN{EXL-K7B!m!`4Wb?&g0%6F`gnVHLvkaS^ z1+%|%tNJ0E*B?_>oqNx@=bn4+x#ymHs=B;$=ugN&L@Mrg-z9n+C0|=4{9sT-b6~}H z1N5lp*_DqgJDy!RcsP}dWKCnjOio5dlbMW>kBsOMvyh3TGLfELiO8ferpNq#?8%yx(<@Xz=~oJ_#Z6YZ zWU*C-R(Pz6r&O`Vo#1gHK{ZzJxN}?$yMykQMKl)yrC0;P+)A$bP^0EXvM@=P9Fk7f zL{CCoqj53VYh3kFOv)Sf1U)T5GQWkEDD3T}jv^FwfrqFBie0D`yG~+CYE(e8O1s@; zwL33tr*1U4xxc&Xq-#ODq%LU3rm^L(eS!i`;Sk1ZsB}a<7*G#718VM4U=T%{CCFU{ zG#Uliz4q$HTmuwaEoMPf*HXAmrGEvdkn2CQ22757jkPGeS`_QuT;np(*6ef7w1Q~F z0LZEbT*l=RQw{8SP#cYQSvDE#xSU%LI0ygq4*A{26(~KP+?6Pds{lwdI=GH~;|;4J z^(F)j@9O@5>KQt)59l=(>SWaF9aIf$7%#aDcx1D4_G3U?Qb?n*33UTzZw_e27K@3c z3puP2my|}Mi%WOd*-SwvrWkH>&{oVH;^6x;O)yCPIR|`unT<8g!hWjNV!$_H_vSE( zXgB0E<$@s0awif^Q8=7NA4TS(50JU2TIQk!GGVt1^$b|5EtVpigO*~8D?-HLk1S)! z0vSuHWGtzYA*khiJrvkWG%vM{6lODsdTAEXX!m40f1%XR(Rhx#bil;5u$}EQVg}*8 zg21#D1comm)ZAtFb0GFu?q+p$EUMt#+p)NUvjE4E5)J|NQlj(*F@x;@@e+~iC#a{S ztEi8n?rqs1W)Q->EiJ-;zj#|O5ym#gmk9%L*t??6=wsAB$1zJpuLXj*=xru#ZMe-z zdpRChKIZ4a&MAHmqH7#9G1CZ&bSODgSPiP3k70b<%VxRRvTfK|vg^zu5RL0FN?2>& z4jGIGHDd=TGl+5MAf?Kt6<)*bFl4 z!Oi3dPNSb$A&b3!b*p-5W3zLHw}`dSrP&~+YF? zjAq&0TEc}CUc`kIUdC#QJ>1MLD8d{a7B#^dxwV<>vSO5& zVW~D^Thg+uuX$6+vOa0qus`UR){XM~cvgX60Ow24Z&+S$8Odjq?CE2B`q-Ye!P?eu zT2`w^zq()@mcL8z^0OtS2^YuesxWwKv(n_VY}n#nopxOpNn6P>0QCb89tvD7DGV!n6itZ1JN6S9f~Fahr&%Z8HOM_r-l~?7q^6i zO^j{<*w7tpIyiIyY)#P-bO9`<|3zKjYTlyxW}32r2m6{NI`JsIieHj;MK6seEoj&IVUd< zf>4VudKgV%XU9*_P-b}Y9LI0Y+ggSwngWN2ew_JSAy@PWDz+rdSdsacKbo#$3c6+{ zfuhJ*g;Culmj#B?`A}IM?LbN1mZ9iTwAPfHT!(y6pU3ulq)_*eM@r?A#kz-FHuJAG z50ymAgP(KWdwEvU2CF*n+jIZcm*zJQ@wB2Qy82M&ShAz45rI@T!a6S58g{Bx&4`(@ z*^83<)&!l(L98r zbj+^gl~(0>?N~ii09l;Vu#>dh6zb7q0C}88%B*aPBETUt`7VcT?r9uHyD`n2Cje$) zBh_x2nPI{u(or}syw)0;0|WPbkFjn-hpMrx0cJt8dd$qBY9N{R8byFh<(!Lu(G&{w|a!IT2hQ?eJH5fTJk2t zZsZt_r<2alv3bs4WHAF~)e6}h6A|rBZ$8Ke@*Ky7p|E!jwpA;UKl;bu3fG8WP4sru zJVCFXhI`7QJZ==(nijnS?O@}=9_BNsS{`+i9QIFuOQo=MDpoV>3;J3PLP>Tq+eg^x zqO~mVPSnEw3!G5|{nfMJgQv=M7Yx(^l}k3bATQwa+J2bBfs7OQ9_F>R*afMDi?C~2 zLsb;xvmiISf`RiljPz3+(()`{0wFwI+dRL2QXZ4i4yE;A7dP$#Xq^31Kzo(S)T;S4 z8dyif@J;rP$A(`G*=v7`>@UhztDjwC71<HCsiCRkT{gdXLSv?dFe3+o-DEF z#0*R0=XYeMO)<5Z|1E1=D;gv(H8(-zrQEwo5}Haab9b}$=ad>(>o3L3W#EY73~8PX zGj9~3wAoTm%&?a7LDEuG@(L!XjrY!SUcyFabXF?cI2%K~`C1SqKEvp}vvLMA4CRBT zHRL%BPOIgxa9-=#6Us_PA$v6)kg_bq5_d;x-GgAVB(v6*ek(lYj}^+A{|Erz{1um#%{6%EH``5R{{+F zMXAA4bLdnS;94kv(^gBiCEy}+9}8emB>!K z%}Uo2Gh7%rDZOSEgG4{iP14<@4D%ikbAQG}&f{#sT$M7#46|C|<6y#8kRvmL`8dnF z4^#sWhVqf3+-6_~&9l;-XBf&wF}7F|n9yi^v4TXu#6s@32o)I}AmkI+&ag~`->O8q z#)~I6>}a!1T?=0~idizux8%q@G`? zjK1(8RBFy0%V{lBnr8h>T6>Y0;Vrp#N$x=iI8j2o64!Pq_M1N+V%gM&SX*p;+xqrS zAjt62fH&0;t->+<8KMhUS5W%-<^MYx#{HjyRd zuq@6&Wyx*WV`UzqZ@ZbsQh%WRtVW|Y7sIbOAE>FNw=ffp`nA9EX!NX;;e)b%tAtH1 zro1BSZ%Zg7JmdThB+N>~uAoEJ?ff_G83r;T` zgz+>|JwJ7O>6b8EfFd5&^LK7;9R|fqo8S-u+6t`#^rDO5c9r2uN!biJ0s8N#hv-i4 zJM_Ql?-7_WQMwvEpmu5VD0~l-RsdM{9t61>Ofm(fo5@Ptj65;xOlPDz~i!<^bnsK>G@< zrUu$we2r?9Fg+l)sX;p9Z&!lU=)4YfMZ#VQ*Gu>valZ)DPikMss{Gc~j$V%`$58)! zK!r|-c159^y}ML}`X%g?Fe~970Xpa#?gUz2_wENw)-s%T9|C+v9R`g0Mgd3N?aJ=r zh-ed<78Xa;eZ}SO4B#~?!~YNrf8t|!w<`n7+yMz1Ep>4H8IK_py2s1#E%gYbJsB`T zzs|P}b%hE%3O$9|HsaAoB)o}Ep#Et||1;uVU#4B^_6Uqb^K_#F)+hJHjNM6>I!~g# zLt^t3sl8ow(RRD7$$J;Do>f-AHHwCnxW~qP68oKvr6tyOiN(1`VtE^jOYCbl_I2@~ zT1y93Tce+Hd`+#Rzm(WKeFifN5y{DN}<0+-h>(dgR0$c*wEb}yA1Y=37DmT?!MsYxmb}J{L$4Y5YAAKv( ziFz6qT&a8umP<*VFDd_34APerr*DW9rQbCoVM@X*J*4~(?9YdkzXAM`(yPwUBg$R1 zpP)0!M9uB=lybBGv-C9N+)d8`eu2)=U#kz$8s)pbr|7KG?*Ae9pH!crSLqr5&*>~I z`wG3G{0=9^|5aAk{06NmeDW;4rZxaR?P$PQXX$mo2b9+#;Vt*SQKyuAS{Zlz0dkmf zTKN~xyP#(gO*)mcfTxu=J%1oYJnyPePAfNyfO1yh5tGV(=TcC9?q8|AN<*#&@`yd| z7UdD;&oPTPD2KT72DFZ$e%itC1>XiGD4ua&t*jKEbH|l>`fcE|R8P;i^QbTKE2tad z1bS`p7nL>QRp@gTze>jFWomWbqP$E6$8E~AaQ{F(1XrBnP+c?Hr|)cgk0 z20d>;A7150B%FpEuQ;lFueM%HD_{060esgN0qk?M0RD}aDcRaKz_Sv*0C*I(T`%Go z*N8sQHCW?bb(iQ9H`NS^-NLU9i8qMndm7T-C7#_lC_h8Q+%3jj-1>(= z9av;q0c{=xxBeNYiel&(n{cKfq~pm*b1#dBDGukQ`i( zNVr8pH)7OZIJ)SY6jl0^KPX$or^Q=>&n=?Y{J%h?Y!3WF6^P{yM7br1m>Pb?!qYEy zO)Fp<@>Y%3A)0Blf%T?IMJ;kHM7WevP$1i|a#XJK)#qsC=JT$vA|juEy@t42kz=*K zBMbaeM*Hb`I!G_#b}A>SLAhK}9G5GaW3$qr9Hb4hFKtW~@HeE41+)jPH znZl%QCi8}QV>|6g-!ul>iSGE0UWy;+OAHV64R&v*!QKPI z1M$J_bX{T~wzrS=W>Wd--poWQqca*G&8MayVQYH2YkGgm)CbbZjK0-0Cf}>kruXQ{ zQn!VS14$FJ*37@57Ic4-bZ<3pJgX-&{Q&A z(1(X92Mgy?C-fdYoln9KMrblOYM5zMwwcN7;nXN4rgM3HGS+QiqObzoBDPJ>=q8%1 zKNd`Pb?x?vlIRU3CfY8UzP4Q#NBf2ythEApvxGi4G zKJ0-OtxpaXpGv0E$q}2UFNaa`Cafz-eLbmM*2tBcQyF+WyiXE%wH6Ti29qX~l8p&G zmP2N>zjqs^j)`C|N$oP&x72M+j$kiT^U>B+W^C8U$FaP-#s{af7I&U2Wt;O7+MCes zI;CgwT}k|Sv<+f=l2C#X+gqxp5wm6lV`Zjv6D&Kh{q| zeS#~NkK|Kam-|q+y*WPjY9u*&gp5pgI)yTkN4UhEoYoQ7az`vJ^LZKHwoOms zz-RU0w5S-cU@C(O2SRJ&)>fp{!pOEOv!KFdzV!|gr&cafQ49RQ|Da_g+Hfm&t z6NM3|X}4Nu?H+yHK5H>Sgqa>3gBHVBxyI2)9ybU`DJhyKjHAOsxVen<8~H>bn>F|> z?ma%L%gu$8AUh4)cFA0i_V&rpF=$NS6tQUwi z%N*0qk^}8Tm;+{=57PIyCo^LR(pBr-!zt2h0|cpY-p#RJG@8FKp2pI9B+e$ z+#uGf^HyP}Kt^Pkk~Au7JB*25(*&t1xuzKB&VaJmrsuaF8?&+k+G%8rF8y$lO#pe; z%J-y@TNt@~YBX0Om3Dt0X97kxp_@~wQT>AE(h*c{x8gT~1*bAOnSzzmnVg*+#|ACC z^P!)k3?ezKJXL+Zq9f*y+2$cBhje|z@Ngbqd$T-_TDE<+;VpkMos;V|X@`p(#Rn2c zQt5PgE0vWl9TTz2IZwl#Yb#05$k}l?o=%q*6CF(> zm#fZqV!fQZlzHbg11*)UDf zbn;j!;>5B0kMYrrN0;Q-G%pqob6(M%h*GI+dKwWchg@IMdXE;69pq)bFN0?t3$qud zv_s^SQb@pXB2U91aD*rLT*5YG0zSdPwQ?)%z#D)r-217I_E0Y+D2{t4evj$_Ml1U$ zgSRpTypu_gj(Uz#sHZRiE~mk<2lS)hNRf%!m@Q!k>QlJW_>!MxaNR_Y0oiYq4&#fG zt!SOb=+hY8>RlS$fE*p~NAiHj0Si(#emtBHAHt{8AKdK*iqKvRnZ!>GX$XiwfB`sx zdLHFv_#q-mlfZgV=5b&Cp)xO2B?hx(AoDUQzgo=}P$nVuh#Wg-E6-XSmXs{CDxhZy z{Ud-m3E8x)OIqqYX45LYOmI#>0?%L^^GQn+;fNq5e4$0C$)ZJIgK6|QW*eB6U&uQE zSxM-k6Scp0FE4(;VXZALo}INoYw%&m0H|hJZ!GuXIApPlT+nh^KlrAw;MOenVZ>2z z8t9J@jUH2|=ZRKasN+sK3R@K4$vOAJS!qR=v}}f|<;2l$LJB@cdykn`wKfdnzvJ)< zNB}G{VnQm7^ReZRd7~SXdlOuEkScAp?6)e6QaA~0e z{!RLV#rr~&s;LZO1IPEjtRi|`eW5-K>`6uSzJQ1Rcb37i%hWJ0@V8ApF04AEm= z5gK&GET45VUVMZN5W2zY_^iXF2)yzPO$!Z{q0qbs4I()2cR~B09-3a|S}OPo)x!d~ z+@X3|LOd9X_xXUqbhApR9)iQEPhA8ZjUeh+_sH?e-G)i4Q_rvYJE zKrr##tr{RBC9VpU8(>f$1L1R%10rBjYvNA_T^_&R5AhIwhR5V(U>tvPlrs`qqcahI zP|zb-OoyE2?XoqXUwrra-U?^42$mxT^f3l9jQ2(A}faT7} zHM;^X$5s`p3$E&{E4j!~x!|9}QnF_SFfli~f)bpMvlZrhEyOB{uS$2>twm^gX#OCJ z41mS`ofFsZTfE^{r`BD#yFV=KyGx(S!o%=7Twx#>@M~(7iN!C(l;S7PI|Hk;#8~NI ztYnVmNAs3Q>E&fh#C}%(7=O}&e=U)29Km>l{IQH)z~ffBB{EPLL6(IBdeAtcXFfJ^ z)m6zWMz6TCy>tBry{)6OK^YWvNMEy%gcmlW^080BYPxaXfO``6QQQUG)41zhw%ZF0 zEWtXVEyGF{KgZw^KWW%%xA0!C3*EqrRJ=1p?$9I{f_fm}^YP9<4Ifd0bxt@kMB=4? zX}Q@erDvak1M*6Qrh|37SfS#7b3|zwK6k-yu(&SbU+M=%<9@un?Kd*zhrPkWNKJAI z_*`st@}bfmTL;s$6Mi+Iy7Qm55uGJtlR}~LyOYTGABsfQwXNGg_>Ge;86VYQvGKOn z@pbz8)(!0=$=2lh_2aE=$`Gn>LKQWL8ljTX{3nJ^|4-28wy8>^J zvU7l4a18h0LEP8ajVRavVceJDejII&SG9pu`X8lSmDip`PvVu%z^N+^?cDLnzdI3& z)QYt%qvz`DCsO&tg^}y=%AvKr6%S;&>(AHu`UD;WNA>HCk&j<5AKfnCh-Jq{D6u`h z?usj^G)#{@3{U0FH;+F&wdS&;WAR^}vo-pt1snjZ_|B@hu!m(Xe3) + diff --git a/Source/VesselAutopilotAccess.cs b/Source/VesselAutopilotAccess.cs new file mode 100644 index 0000000..2f3ae42 --- /dev/null +++ b/Source/VesselAutopilotAccess.cs @@ -0,0 +1,106 @@ +#if UNIX +using System; +using System.Reflection; +using UnityEngine; // KSP1 + +public static class VesselAutopilotAccess +{ + private const BindingFlags InstAll = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; + + // Cached reflection handles + private static PropertyInfo _autopilotProp; // Vessel.autopilot + private static PropertyInfo _modeProp; // VesselAutopilot.mode + + /// + /// Get Vessel.autopilot as a strongly-typed VesselAutopilot. + /// + public static VesselAutopilot GetAutopilot(Vessel vessel) + { + if (vessel == null) throw new ArgumentNullException("vessel"); + + if (_autopilotProp == null) + { + _autopilotProp = typeof(Vessel).GetProperty("autopilot", InstAll); + } + if (_autopilotProp == null) + throw new MissingMemberException("Vessel.autopilot property not found."); + + object value = _autopilotProp.GetValue(vessel, null); + var ap = value as VesselAutopilot; + if (ap != null) + return ap; + + throw new InvalidCastException("Vessel.autopilot is not of type VesselAutopilot."); + } + + /// + /// Read VesselAutopilot.mode as VesselAutopilot.AutopilotMode. + /// + public static VesselAutopilot.AutopilotMode GetAutopilotMode(VesselAutopilot ap) + { + if (ap == null) throw new ArgumentNullException("ap"); + + if (_modeProp == null) + { + _modeProp = typeof(VesselAutopilot).GetProperty("mode", InstAll); + } + if (_modeProp == null) + throw new MissingMemberException("VesselAutopilot.mode property not found."); + + object value = _modeProp.GetValue(ap, null); + + // Direct cast if already correct type + if (value is VesselAutopilot.AutopilotMode) + return (VesselAutopilot.AutopilotMode)value; + + // Coerce from underlying numeric if needed + Type targetType = typeof(VesselAutopilot.AutopilotMode); + Type underlying = Enum.GetUnderlyingType(targetType); + object num = System.Convert.ChangeType(value, underlying); + return (VesselAutopilot.AutopilotMode)Enum.ToObject(targetType, num); + } + + /// + /// Set VesselAutopilot.mode (strongly-typed). + /// + public static void SetAutopilotMode(VesselAutopilot ap, VesselAutopilot.AutopilotMode mode) + { + if (ap == null) throw new ArgumentNullException("ap"); + + if (_modeProp == null) + { + _modeProp = typeof(VesselAutopilot).GetProperty("mode", InstAll); + } + if (_modeProp == null || !_modeProp.CanWrite) + throw new InvalidOperationException("VesselAutopilot.mode not found or not writable."); + + _modeProp.SetValue(ap, mode, null); + } + + // Optional convenience overloads: + + public static void SetAutopilotMode(VesselAutopilot ap, string modeName) + { + if (ap == null) throw new ArgumentNullException("ap"); + if (modeName == null) throw new ArgumentNullException("modeName"); + + var mode = (VesselAutopilot.AutopilotMode)Enum.Parse( + typeof(VesselAutopilot.AutopilotMode), + modeName, + false // case-sensitive as requested + ); + SetAutopilotMode(ap, mode); + } + + public static void SetAutopilotMode(VesselAutopilot ap, int modeValue) + { + if (ap == null) throw new ArgumentNullException("ap"); + + var mode = (VesselAutopilot.AutopilotMode)Enum.ToObject( + typeof(VesselAutopilot.AutopilotMode), + modeValue + ); + SetAutopilotMode(ap, mode); + } +} +#endif \ No newline at end of file diff --git a/Source/VesselState.cs b/Source/VesselState.cs index 4d53fc4..c7587de 100644 --- a/Source/VesselState.cs +++ b/Source/VesselState.cs @@ -1,9 +1,6 @@ using System; using UnityEngine; -using KSP.UI.Screens; -using KSP.Localization; - namespace FlyByWireSASMode { internal enum CustomSASMode @@ -18,6 +15,9 @@ internal enum CustomSASMode internal class VesselState { public Vessel vessel; +#if UNIX + VesselAutopilot ap; +#endif public CustomSASMode sasMode; public Vector3d direction; private Vector3d previousUp; @@ -25,6 +25,9 @@ internal class VesselState public VesselState(Vessel vessel, CustomSASMode sasMode) { this.vessel = vessel; +#if UNIX + this.ap = VesselAutopilotAccess.GetAutopilot(vessel); +#endif this.sasMode = sasMode; vessel.OnPreAutopilotUpdate += OnPreAutopilotUpdate; ResetDirection(); @@ -39,13 +42,25 @@ public void ResetDirection() public void Destroy() { vessel.OnPreAutopilotUpdate -= OnPreAutopilotUpdate; +#if UNIX + + var m = VesselAutopilotAccess.GetAutopilotMode(ap); + VesselAutopilotAccess.SetAutopilotMode(ap, m); + +#else vessel.Autopilot.SetMode(vessel.autopilot.Mode); +#endif + } private void OnPreAutopilotUpdate(FlightCtrlState st) { // continuously set mode to stability assist so we know which button to disable +#if UNIX + VesselAutopilotAccess.SetAutopilotMode(ap, VesselAutopilot.AutopilotMode.StabilityAssist); +#else vessel.Autopilot.mode = VesselAutopilot.AutopilotMode.StabilityAssist; +#endif if (sasMode == CustomSASMode.FlyByWire || sasMode == CustomSASMode.FlyByWirePlaneMode) { diff --git a/deploy.bat b/deploy.bat index bceb843..0c1240e 100644 --- a/deploy.bat +++ b/deploy.bat @@ -25,4 +25,4 @@ copy /Y %VERSIONFILE% %GAMEDATA%\%GAMEDIR% xcopy /y /s /I %GAMEDATA%\%GAMEDIR% "%H%\GameData\%GAMEDIR%" xcopy /y /s /I %GAMEDATA%\%GAMEDIR% "%H3%\GameData\%GAMEDIR%" -pause +rem pause From d8aa6beb2a6dd0e96cca4b0ed129424b90f9a3e2 Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Thu, 21 Aug 2025 08:56:13 -0400 Subject: [PATCH 09/12] Deleted dlls added .gitignore --- .gitignore | 268 +++++------------- .../FlyByWireSASMode/FlyByWireSASMode.dll | Bin 16384 -> 0 bytes .../FlyByWireSASMode/FlyByWireSASMode.version | 2 +- .../Plugins/FlyByWireSASMode.dll | Bin 18432 -> 0 bytes 4 files changed, 71 insertions(+), 199 deletions(-) delete mode 100644 GameData/FlyByWireSASMode/FlyByWireSASMode.dll delete mode 100644 GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll diff --git a/.gitignore b/.gitignore index 9491a2f..907070a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,85 +1,42 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files -*.rsuser *.suo *.user -*.userosscache *.sln.docstates -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ -[Rr]eleases/ x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ +build/ bld/ [Bb]in/ [Oo]bj/ -[Oo]ut/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* -# NUnit +#NUNIT *.VisualState.xml TestResult.xml -nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio *_i.c *_p.c -*_h.h +*_i.h *.ilk *.meta *.obj -*.iobj *.pch *.pdb -*.ipdb *.pgc *.pgd *.rsp @@ -89,7 +46,6 @@ StyleCopReport.xml *.tlh *.tmp *.tmp_proj -*_wpftmp.csproj *.log *.vspscc *.vssscc @@ -105,21 +61,14 @@ _Chutzpah* ipch/ *.aps *.ncb -*.opendb *.opensdf *.sdf *.cachefile -*.VC.db -*.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx -*.sap - -# Visual Studio Trace Files -*.e2e # TFS 2012 Local Workspace $tf/ @@ -132,29 +81,19 @@ _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user +# JustCode is a .NET coding addin-in +.JustCode + # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - # NCrunch +*.ncrunch* _NCrunch_* .*crunch*.local.xml -nCrunchTemp_* # MightyMoose *.mm.* @@ -182,182 +121,115 @@ publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml -# Note: 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 - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output + +# 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/ *.build.csdef -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files +# Windows Store app package directory AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ # Others +sql/ +*.Cache ClientBin/ +[Ss]tyle[Cc]op.* ~$* *~ *.dbmdl *.dbproj.schemaview -*.jfm *.pfx *.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ +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 UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak # SQL Server files *.mdf *.ldf -*.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt +# ========================= +# Operating System Files +# ========================= -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw +# OSX +# ========================= -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions +.DS_Store +.AppleDouble +.LSOverride -# Paket dependency manager -.paket/paket.exe -paket-files/ +# Icon must ends with two \r. +Icon -# FAKE - F# Make -.fake/ +# Thumbnails +._* -# CodeRush personal settings -.cr/personal +# Files that might appear on external disk +.Spotlight-V100 +.Trashes -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config -# Tabs Studio -*.tss -# Telerik's JustMock configuration file -*.jmconfig +# Windows +# ========================= -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs +# Windows image file caches +Thumbs.db +ehthumbs.db -# OpenCover UI analysis results -OpenCover/ +# Folder config file +Desktop.ini -# Azure Stream Analytics local run output -ASALocalRun/ +# Recycle Bin used on file shares +$RECYCLE.BIN/ -# MSBuild Binary and Structured Log -*.binlog +# Windows Installer files +*.cab +*.msi +*.msm +*.msp -# NVidia Nsight GPU debugger configuration file -*.nvuser +# Windows shortcuts +*.lnk -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file +# +# Vim files +# +*~ +*.swp +*.dll +*.pdb +.vs diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.dll b/GameData/FlyByWireSASMode/FlyByWireSASMode.dll deleted file mode 100644 index 2b3baa51ba9b9c98a508f85d6b525685800bf781..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/FlyByWireSASMode.version index 13d7d89..f325377 100644 --- a/GameData/FlyByWireSASMode/FlyByWireSASMode.version +++ b/GameData/FlyByWireSASMode/FlyByWireSASMode.version @@ -3,7 +3,7 @@ "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", "VERSION": { - "MAJOR": 2, + "MAJOR": 1, "MINOR": 2, "PATCH": 0, "BUILD": 1 diff --git a/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll b/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.dll deleted file mode 100644 index 7c022732c0d696f826f180f2505f8ae41e81d635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18432 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 From 095c934a669c2a73960180045dab81726ff4ae82 Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Thu, 21 Aug 2025 08:59:06 -0400 Subject: [PATCH 10/12] updated veriosn file --- FlyByWireSASMode.sln | 2 +- FlyByWireSASMode.version | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FlyByWireSASMode.sln b/FlyByWireSASMode.sln index 2ab0ead..2f3bcc6 100644 --- a/FlyByWireSASMode.sln +++ b/FlyByWireSASMode.sln @@ -10,7 +10,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution buildRelease.bat = buildRelease.bat Changelog.txt = Changelog.txt deploy.bat = deploy.bat - GameData\FlyByWireSASMode\FlyByWireSASMode.version = GameData\FlyByWireSASMode\FlyByWireSASMode.version + FlyByWireSASMode.version = FlyByWireSASMode.version jenkins.txt = jenkins.txt LICENSE.txt = LICENSE.txt README.md = README.md diff --git a/FlyByWireSASMode.version b/FlyByWireSASMode.version index f325377..3f1a4a6 100644 --- a/FlyByWireSASMode.version +++ b/FlyByWireSASMode.version @@ -1,9 +1,9 @@ { "NAME": "FlyByWireSASMode", - "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", + "URL": "https://raw.githubusercontent.com/linuxgurugamer/FlyByWireSASMode/refs/heads/master/FlyByWireSASMode.version", "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", "VERSION": { - "MAJOR": 1, + "MAJOR": 2, "MINOR": 2, "PATCH": 0, "BUILD": 1 From 01640264d7a384f44988357b95fcc8229d1d2913 Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Thu, 21 Aug 2025 10:30:32 -0400 Subject: [PATCH 11/12] Updated version file --- FlyByWireSASMode.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlyByWireSASMode.version b/FlyByWireSASMode.version index 3f1a4a6..fb1fb18 100644 --- a/FlyByWireSASMode.version +++ b/FlyByWireSASMode.version @@ -1,7 +1,7 @@ { "NAME": "FlyByWireSASMode", "URL": "https://raw.githubusercontent.com/linuxgurugamer/FlyByWireSASMode/refs/heads/master/FlyByWireSASMode.version", - "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", + "DOWNLOAD": "https://github.com/linuxgurugamer/FlyByWireSASMode/releases", "VERSION": { "MAJOR": 2, "MINOR": 2, From f8be4cc0f3b33c3a4be4289a90093834177b90c6 Mon Sep 17 00:00:00 2001 From: "linuxgurugamer@gmail.com" Date: Thu, 21 Aug 2025 10:42:04 -0400 Subject: [PATCH 12/12] Deleted extra vresion file --- .../FlyByWireSASMode/FlyByWireSASMode.version | 26 ------------------- .../Plugins/FlyByWireSASMode.version | 26 ------------------- 2 files changed, 52 deletions(-) delete mode 100644 GameData/FlyByWireSASMode/FlyByWireSASMode.version delete mode 100644 GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version diff --git a/GameData/FlyByWireSASMode/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/FlyByWireSASMode.version deleted file mode 100644 index f325377..0000000 --- a/GameData/FlyByWireSASMode/FlyByWireSASMode.version +++ /dev/null @@ -1,26 +0,0 @@ -{ - "NAME": "FlyByWireSASMode", - "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", - "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", - "VERSION": { - "MAJOR": 1, - "MINOR": 2, - "PATCH": 0, - "BUILD": 1 - }, - "KSP_VERSION": { - "MAJOR": 1, - "MINOR": 12, - "PATCH": 5 - }, - "KSP_VERSION_MIN": { - "MAJOR": 1, - "MINOR": 12, - "PATCH": 3 - }, - "KSP_VERSION_MAX": { - "MAJOR": 1, - "MINOR": 12, - "PATCH": 5 - } -} \ No newline at end of file diff --git a/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version b/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version deleted file mode 100644 index f325377..0000000 --- a/GameData/FlyByWireSASMode/Plugins/FlyByWireSASMode.version +++ /dev/null @@ -1,26 +0,0 @@ -{ - "NAME": "FlyByWireSASMode", - "URL": "https://raw.githubusercontent.com/gotmachine/FlyByWireSASMode/master/GameData/FlyByWireSASMode/FlyByWireSASMode.version", - "DOWNLOAD": "https://github.com/gotmachine/FlyByWireSASMode/releases", - "VERSION": { - "MAJOR": 1, - "MINOR": 2, - "PATCH": 0, - "BUILD": 1 - }, - "KSP_VERSION": { - "MAJOR": 1, - "MINOR": 12, - "PATCH": 5 - }, - "KSP_VERSION_MIN": { - "MAJOR": 1, - "MINOR": 12, - "PATCH": 3 - }, - "KSP_VERSION_MAX": { - "MAJOR": 1, - "MINOR": 12, - "PATCH": 5 - } -} \ No newline at end of file