Removed TMAG, TCFlow, TEF, TLadders, TRCS. Disabled plugin for TweakableDecouplers. Removed enable toggle from TReactionWheels. Removed extend/retract toggle from TPanels.
Removed TMAG, TCFlow, TEF, TLadders, TRCS. Disabled plugin for TweakableDecouplers. Removed enable toggle from TReactionWheels. Removed extend/retract toggle from TPanels.

--- a/GameData/TweakableEverything/TweakableDecouplers.cfg
+++ b/GameData/TweakableEverything/TweakableDecouplers.cfg
@@ -31,42 +31,19 @@
 
 @PART[*]:HAS[@MODULE[ModuleDecouple]]:FOR[TweakableEverything]
 {
-	MODULE
+	@MODULE[ModuleDecouple]
 	{
-		name = ModuleTweakableDecouple
-		decouplerModuleName = ModuleDecouple
+		@ejectionForce *= 2
+		@ejectionForcePercent = 50
 	}
 }
 
 @PART[*]:HAS[@MODULE[ModuleAnchoredDecoupler]]:FOR[TweakableEverything]
 {
-	MODULE
+	@MODULE[ModuleAnchoredDecoupler]
 	{
-		name = ModuleTweakableDecouple
-		decouplerModuleName = ModuleAnchoredDecoupler
-	}
-
-	MODULE
-	{
-		name = ModuleTweakableCrossFeed
-		fuelCrossFeed = false
+		@ejectionForce *= 2
+		@ejectionForcePercent = 50
 	}
 }
 
-# Temporary patch to stop KSPAPIExtensions from hating on near-zero values.
-@PART[*]:HAS[@MODULE[ModuleTweakableDecouple]&@MODULE[ModuleDecouple]:HAS[#ejectionForce[0]]]:AFTER[TweakableEverything]
-{
-	@MODULE[ModuleDecouple]
-	{
-		@ejectionForce = 1
-	}
-}
-
-@PART[*]:HAS[@MODULE[ModuleTweakableDecouple]&@MODULE[ModuleAnchoredDecoupler]:HAS[#ejectionForce[0]]]:AFTER[TweakableEverything]
-{
-	@MODULE[ModuleAnchoredDecoupler]
-	{
-		@ejectionForce = 1
-	}
-}
-

--- a/TweakableAnimateGeneric/ModuleTweakableAnimateGeneric.cs
+++ /dev/null
@@ -1,220 +1,1 @@
-// TweakableAnimateGeneric, a TweakableEverything module
-//
-// ModuleTweakableAnimateGeneric.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using KSP;
-using System;
-using System.Collections.Generic;
-#if DEBUG
-using ToadicusTools.DebugTools;
-#endif
-using ToadicusTools.Extensions;
-using UnityEngine;
-
-namespace TweakableEverything
-{
-	#if DEBUG
-	public class ModuleTweakableAnimateGeneric : DebugPartModule
-	#else
-	public class ModuleTweakableAnimateGeneric : PartModule
-	#endif
-	{
-		// Stores whether or not the animation will start completed.
-		[KSPField(isPersistant = true, guiName = "Start", guiActive = false, guiActiveEditor = true)]
-		[UI_Toggle(enabledText = "Closed", disabledText = "Open")]
-		public bool startCompleted;
-		// Stores the last state of startCompleted so we can tell if it's changed.
-		private bool startCompletedState;
-
-		// Animation start position (from Beginning or End).
-		[KSPField(isPersistant = false)]
-		public string startPosition;
-
-		// Animation start direction (from Backwards or Forwards).
-		[KSPField(isPersistant = false)]
-		public string startDirection;
-
-		// Name for the "start completed" field.
-		[KSPField(isPersistant = false)]
-		public string fieldGuiName;
-
-		// Text to display after fieldGuiName when startCompleted = true
-		[KSPField(isPersistant = false)]
-		public string fieldEnabledText;
-
-		// Text to display after fieldGuiName when startCompleted = false
-		[KSPField(isPersistant = false)]
-		public string fieldDisabledText;
-
-		// The animation wrapper
-		private ToadicusTools.AnimationWrapper animationWrapper;
-
-		// Declare enum values for parsing from string values
-		private ToadicusTools.PlayDirection direction;
-
-		// The animation wrapper used for easy interface
-		// private TweakableAnimationWrapper animationWrapper;
-
-		// Gets the BaseField object for startCompleted
-		private BaseField startField
-		{
-			get
-			{
-				return (BaseField)this.Fields["startCompleted"];
-			}
-		}
-
-		// Gets the UI_Toggle object for the current UI control underlying startCompleted.
-		private UI_Toggle startUIControl
-		{
-			get
-			{
-				return (UI_Toggle)this.startField.uiControlCurrent();
-			}
-		}
-
-		// Construct ALL the things.
-		public ModuleTweakableAnimateGeneric()
-		{
-			this.startCompleted = false;
-			this.startDirection = "Backward";
-		}
-
-		// Start when KSP tells us to start.
-		public override void OnStart(StartState state)
-		{
-			ModuleAnimateGeneric magToWrap;
-
-			// Only do any work if we're in the editor and we have an animation module.
-			if (state == StartState.Editor &&
-				this.part.tryGetFirstModuleOfType<ModuleAnimateGeneric>(out magToWrap))
-			{
-				// Start the base PartModule, just in case.
-				base.OnStart(state);
-
-				// If fielGuiName is neither null nor empty...
-				if (!string.IsNullOrEmpty(this.fieldGuiName))
-				{
-					// ...assign it to the startCompleted gui name
-					this.startField.guiName = this.fieldGuiName;
-				}
-
-				// If fieldEnabledText is neither null nor empty... 
-				if (!string.IsNullOrEmpty(this.fieldEnabledText))
-				{
-					// ...assign it to the startCompleted control enabled text
-					this.startUIControl.enabledText = this.fieldEnabledText;
-				}
-
-				// If fieldDisabledText is neither null nor empty... 
-				if (!string.IsNullOrEmpty(this.fieldDisabledText))
-				{
-					// ...assign it to the startCompleted control disabled text
-					this.startUIControl.disabledText = this.fieldDisabledText;
-				}
-
-				// Seed startCompletedState to ensure we run the startCompleted check on the first update
-				this.startCompletedState = !this.startCompleted;
-
-				// If we didn't get a module, or we can't parse enums from startPosition or startDirection...
-				if (
-					magToWrap == null ||
-					!ToadicusTools.EnumTools.TryParse(this.startDirection, out this.direction)
-				)
-				{
-					// ...disable the control and stop processing.
-					this.Abort();
-					return;
-				}
-				// ...otherwise...
-				else
-				{
-					this.animationWrapper = new ToadicusTools.AnimationWrapper(magToWrap, direction);
-
-					this.animationWrapper.module.Events["Toggle"].guiActiveEditor = false;
-				}
-			}
-
-			this.LogDebug(
-				"Started up.  animationModule={0}, startCompleted={1}, startPosition={2}, startDirection={3}",
-				this.animationWrapper == null ? "null" : this.animationWrapper.ToString(),
-				this.startCompleted,
-				this.startPosition,
-				this.startDirection
-			);
-		}
-
-		// Runs at Unity's LateUpdate
-		public void Update()
-		{
-			// Only do any work if we're in the editor and have an animation wrapper.
-			if (HighLogic.LoadedSceneIsEditor && this.animationWrapper != null)
-			{
-				if (this.animationWrapper.IsPlaying())
-				{
-					this.animationWrapper.animation.Stop();
-				}
-
-				// If startCompleted has changed...
-				if (this.startCompletedState != this.startCompleted)
-				{
-					this.Fields["startCompleted"].uiControlCurrent().controlEnabled = false;
-
-					this.LogDebug("startCompleted has changed to {0}; let's work.", this.startCompleted);
-
-					switch (this.startCompleted)
-					{
-						case false:
-							this.animationWrapper.SkipTo(ToadicusTools.PlayPosition.End);
-							break;
-						case true:
-							this.animationWrapper.SkipTo(ToadicusTools.PlayPosition.Beginning);
-							break;
-					}
-
-					this.Fields["startCompleted"].uiControlCurrent().controlEnabled = true;
-
-					// ...reset startCompletedState to avoid re-running
-					this.LogDebug("startCompletedState reseeded");
-					this.startCompletedState = this.startCompleted;
-				}
-			}
-		}
-
-		// If we need to abort, disable the UI elements.
-		public void Abort()
-		{
-			this.animationWrapper = null;
-			this.startField.guiActiveEditor = false;
-			this.startUIControl.controlEnabled = false;
-
-			this.LogError("Startup aborted!");
-		}
-	}
-}
-
-

--- a/TweakableAnimateGeneric/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,46 +1,1 @@
-// TweakableAnimateGeneric, a TweakableEverything module
-//
-// AssemblyInfo.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-[assembly: AssemblyTitle("TweakableAnimateGeneric")]
-[assembly: AssemblyDescription("Adds useful 'tweakable' configuration options for generic animation modules.")]
-[assembly: AssemblyCopyright("toadicus")]
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-[assembly: AssemblyVersion("1.13.1.*")]
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
-
-

--- a/TweakableAnimateGeneric/TweakableAnimateGeneric.csproj
+++ /dev/null
@@ -1,97 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug_win</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{D472A279-0B6E-4524-9091-C06705569DFB}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <RootNamespace>TweakableAnimateGeneric</RootNamespace>
-    <AssemblyName>TweakableAnimateGeneric</AssemblyName>
-    <ReleaseVersion>1.2</ReleaseVersion>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <UseMSBuildEngine>False</UseMSBuildEngine>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_win|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ${SolutionDir}\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_win|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ${SolutionDir}\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_linux|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_linux|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <ItemGroup>
-    <Compile Include="ModuleTweakableAnimateGeneric.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="Assembly-CSharp">
-      <HintPath>..\..\_KSPAssemblies\Assembly-CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="System">
-      <HintPath>..\..\_KSPAssemblies\System.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEngine">
-      <HintPath>..\..\_KSPAssemblies\UnityEngine.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\GameData\TweakableEverything\TweakableAnimateGeneric.cfg" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\ToadicusTools\ToadicusTools.csproj">
-      <Project>{D48A5542-6655-4149-BC27-B27DF0466F1C}</Project>
-      <Name>ToadicusTools</Name>
-    </ProjectReference>
-  </ItemGroup>
-</Project>
+

--- a/TweakableCrossflow/ModuleTweakableCrossFeed.cs
+++ /dev/null
@@ -1,96 +1,1 @@
-// TweakableCrossFeed, a TweakableEverything module
-//
-// ModuleTweakableCrossFeed.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using KSP;
-using System;
-using System.Collections.Generic;
-using ToadicusTools;
-using UnityEngine;
-
-namespace TweakableEverything
-{
-	#if DEBUG
-	public class ModuleTweakableCrossFeed : DebugPartModule
-	#else
-	public class ModuleTweakableCrossFeed : PartModule
-	#endif
-	{
-		/*
-		 * Ctor
-		 * Build ALL the objects.
-		 * */
-		public ModuleTweakableCrossFeed() : base()
-		{
-			this.fuelCrossFeed = true;
-		}
-
-		[KSPField(isPersistant = true, guiName = "Crossfeed", guiActiveEditor = true, guiActive = true),
-		UI_Toggle(disabledText = "Disabled", enabledText = "Enabled")]
-		public bool fuelCrossFeed;
-
-		// Gets the base part's fuelCrossFeed value.
-		public bool partCrossFeed
-		{
-			get
-			{
-				return base.part.fuelCrossFeed;
-			}
-			set
-			{
-				base.part.fuelCrossFeed = value;
-			}
-		}
-
-		/*
-		 * Methods
-		 * */
-		// Runs when each new part is started.
-		public override void OnStart(StartState st)
-		{
-			this.partCrossFeed = this.fuelCrossFeed;
-		}
-
-		// Runs every LateUpdate, because that's how Unity rolls.
-		// We're running at LateUpdate to avoid hiding Update, since ModuleDockingNode's Update is private and we
-		// can't call it.
-		public void LateUpdate()
-		{
-			// If we are in flight...
-			if (HighLogic.LoadedSceneIsFlight)
-			{
-				// ...and if the crossfeed status has changed...
-				if (this.fuelCrossFeed != this.partCrossFeed)
-				{
-					// ...assign our crossfeed status to the part, since that's where it matters.
-					this.partCrossFeed = this.fuelCrossFeed;
-				}
-			}
-		}
-	}
-}
-

--- a/TweakableCrossflow/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,55 +1,1 @@
-// TweakableCrossFeed, a TweakableEverything module
-//
-// AssemblyInfo.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-using System.Reflection;
-using System.Runtime.CompilerServices;
 
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-
-[assembly: AssemblyTitle("TweakableCrossFeed")]
-[assembly: AssemblyDescription("Adds a tweakable to enable or disable fuel crossfeed for any part.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("toadicus")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-
-[assembly: AssemblyVersion("1.13.0.*")]
-
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
-
-

--- a/TweakableCrossflow/TweakableCrossFeed.csproj
+++ /dev/null
@@ -1,84 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug_win</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{72909923-1DDF-45E3-922C-27E17CF69556}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <RootNamespace>TweakableEverything</RootNamespace>
-    <AssemblyName>TweakableCrossFeed</AssemblyName>
-    <ReleaseVersion>1.2</ReleaseVersion>
-    <CodePage>65001</CodePage>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <UseMSBuildEngine>False</UseMSBuildEngine>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_win|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_win|AnyCPU' ">
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_linux|AnyCPU' ">
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_linux|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <ItemGroup>
-    <Reference Include="Assembly-CSharp">
-      <HintPath>..\..\_KSPAssemblies\Assembly-CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="System">
-      <HintPath>..\..\_KSPAssemblies\System.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEngine">
-      <HintPath>..\..\_KSPAssemblies\UnityEngine.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="ModuleTweakableCrossFeed.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\ToadicusTools\ToadicusTools.csproj">
-      <Project>{D48A5542-6655-4149-BC27-B27DF0466F1C}</Project>
-      <Name>ToadicusTools</Name>
-      <Private>False</Private>
-    </ProjectReference>
-  </ItemGroup>
-</Project>
+

--- a/TweakableEngineFairings/ModuleTweakableJettison.cs
+++ /dev/null
@@ -1,385 +1,1 @@
-// TweakableEngineFairings, a TweakableEverything module
-//
-// ModuleTweakableJettison.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using KSP;
-using System;
-using System.Collections.Generic;
-using ToadicusTools.DebugTools;
-using ToadicusTools.Extensions;
-using UnityEngine;
-
-namespace TweakableEverything
-{
-	#if DEBUG
-	public class ModuleTweakableJettison : DebugPartModule
-	#else
-	public class ModuleTweakableJettison : PartModule
-	#endif
-	{
-		private static readonly KSPActionParam actionParam = new KSPActionParam(
-			KSPActionGroup.None, KSPActionType.Activate);
-
-		private List<ModuleJettison> jettisonModules;
-
-		private Dictionary<string, Transform> jettisonTransforms;
-		private Dictionary<string, bool> hasJettisonedTable;
-
-		// jettisonName-keyed table of AttachNode bottomNodes
-		private Dictionary<string, AttachNode> bottomNodesTable;
-		// bottomNode.id-keyed table of "hadAttachedPart" status values
-		private Dictionary<string, bool> lastBottomNodeStatusTable;
-
-		[KSPField(isPersistant = true, guiName = "Fairing", guiActive = false, guiActiveEditor = true)]
-		[UI_Toggle(enabledText = "Disabled", disabledText = "Enabled")]
-		public bool disableFairing;
-
-		private bool disableState;
-
-		public ModuleTweakableJettison()
-		{
-			// Seed disable flag to false to emulate stock behavior
-			this.disableFairing = false;
-
-			this.jettisonModules = new List<ModuleJettison>();
-			this.jettisonTransforms = new Dictionary<string, Transform>();
-			this.hasJettisonedTable = new Dictionary<string, bool>();
-
-			this.bottomNodesTable = new Dictionary<string, AttachNode>();
-			this.lastBottomNodeStatusTable = new Dictionary<string, bool>();
-		}
-
-		public override void OnStart(StartState state)
-		{
-			// Start up the base PartModule, just in case.
-			base.OnStart(state);
-
-			// Fetch all of the ModuleJettisons from the part, filling a list of modules and a dict of transforms
-			PartModule module;
-			for (int mIdx = 0; mIdx < base.part.Modules.Count; mIdx++)
-			{
-				module = base.part.Modules[mIdx];
-				if (module is ModuleJettison)
-				{
-					ModuleJettison jettisonModule = module as ModuleJettison;
-
-					if (
-						jettisonModule == null ||
-						string.IsNullOrEmpty(jettisonModule.jettisonName) ||
-						jettisonModule.jettisonTransform == null
-					)
-					{
-						string err = string.Format("Skipping problematic jettisonModule;" +
-				             " this may be a part design problem" +
-				             "\n\tjettisonModule={0}" +
-				             "\n\tjettisonModule.jettisonName={1}" +
-				             "\n\tjettisonModule.jettisonTransform={2}",
-							jettisonModule == null ? "null" : jettisonModule.ToString(),
-							jettisonModule == null ? "n/a" :
-								jettisonModule.jettisonName == null ? "null" : jettisonModule.jettisonName,
-							jettisonModule == null ? "n/a" :
-								jettisonModule.jettisonTransform == null ? "null" :
-									jettisonModule.jettisonTransform.ToString()
-						);
-
-						this.LogError(err);
-
-						continue;
-					}
-
-					AttachNode bottomNode = this.part.findAttachNode(jettisonModule.bottomNodeName);
-
-					if (bottomNode != null)
-					{
-						this.bottomNodesTable[jettisonModule.jettisonName] = bottomNode;
-						this.lastBottomNodeStatusTable[bottomNode.id] = false;
-					}
-
-					this.jettisonModules.Add(jettisonModule);
-
-					this.jettisonTransforms[jettisonModule.jettisonName] = jettisonModule.jettisonTransform;
-
-					// Seed the hasJettisoned table with the module's state at start up to avoid loading up a shroud
-					// when we shouldn't have one.
-					this.hasJettisonedTable[jettisonModule.jettisonName] = jettisonModule.isJettisoned;
-
-					BaseEvent moduleJettisonEvent = new BaseEvent(
-						this.Events,
-						string.Format("{0}{1}", jettisonModule.jettisonName, "jettisonEvent"),
-						(BaseEventDelegate)delegate
-						{
-							this.JettisonEvent(jettisonModule, actionParam);
-						}
-					);
-
-					moduleJettisonEvent.active = true;
-					moduleJettisonEvent.guiActive = jettisonModule.isJettisoned && !this.disableFairing;
-					moduleJettisonEvent.guiActiveEditor = false;
-					moduleJettisonEvent.guiName = "Jettison";
-
-					this.Events.Add(moduleJettisonEvent);
-
-					this.LogDebug("Added new Jettison event wrapper {0}", moduleJettisonEvent);
-
-					jettisonModule.Events["Jettison"].active = false;
-					jettisonModule.Events["Jettison"].guiActive = false;
-					jettisonModule.Events["Jettison"].guiActiveEditor = false;
-					jettisonModule.Events["Jettison"].guiName += "(DEPRECATED)";
-
-					BaseAction moduleJettisonAction = new BaseAction(
-						this.Actions,
-						string.Format("{0}{1}", jettisonModule.jettisonName, "jettisonAction"),
-						(BaseActionDelegate)delegate(KSPActionParam param)
-						{
-							this.JettisonEvent(jettisonModule, param);
-						},
-						new KSPAction("Jettison")
-					);
-
-					this.Actions.Add(moduleJettisonAction);
-
-					this.LogDebug("Added new JettisonAction action wrapper {0}", moduleJettisonAction);
-
-					jettisonModule.Actions["JettisonAction"].active = false;
-					jettisonModule.Actions["JettisonAction"].guiName += "(DEPRECRATED)";
-
-					this.LogDebug("Found ModuleJettison:" +
-						"\n\tjettisonName: {0}" +
-						"\n\tjettisonTransform: {1}" +
-						"\n\tisJettisoned: {2}" +
-						"\n\tjettisonForce: {3}",
-						jettisonModule.jettisonName,
-						jettisonModule.jettisonTransform,
-						jettisonModule.isJettisoned,
-						jettisonModule.jettisonForce
-					);
-				}
-			}
-
-			this.LogDebug("Found {0} ModuleJettisons.", this.jettisonModules.Count);
-
-			if (this.jettisonModules.Count < 1)
-			{
-				this.Fields["disableFairing"].guiActive = false;
-				this.Fields["disableFairing"].guiActiveEditor = false;
-				this.Fields["disableFairing"].uiControlCurrent().controlEnabled = false;
-			}
-
-			// Seed the disableState for first-run behavior.
-			if (this.disableFairing || true)
-			{
-				this.disableState = !this.disableFairing;
-			}
-		}
-
-		public void FixedUpdate()
-		{
-			// If nothing has changed...
-			if (
-				this.jettisonModules.Count < 1 ||
-				(
-					(!this.anyBottomNodeChanged() || HighLogic.LoadedSceneIsFlight) &&
-				    this.disableState == this.disableFairing
-				))
-			{
-				// ...move on with life
-				this.LogDebug(
-					"Skipping LateUpdate because nothing changed." +
-					"\n\tjettisonModules.Count={3}" +
-					"\n\tanyBottomNodeChanged={0}, disableFairing={1}, disableState={2}",
-					this.anyBottomNodeChanged(), this.disableFairing, this.disableState, jettisonModules.Count
-				);
-
-				return;
-			}
-			// Otherwise...
-
-			this.LogDebug(
-				"Something changed!  anyBottomNodeChanged={0}, disableFairing={1}, disableState={2}",
-				this.anyBottomNodeChanged(), this.disableFairing, this.disableState
-			);
-
-			// ...re-seed the states
-			this.disableState = this.disableFairing;
-			// Move this down to the loop; this.hadAttachedPart = this.hasAttachedPart;
-
-			bool partMayHaveFairing = !this.disableFairing;
-
-			bool moduleShouldHaveFairing;
-
-			this.LogDebug("partMayHaveFairing: {0}", partMayHaveFairing);
-
-			// ...loop through the jettison modules and...
-			ModuleJettison jettisonModule;
-			for (int jIdx = 0; jIdx < this.jettisonModules.Count; jIdx++)
-			{
-				jettisonModule = this.jettisonModules[jIdx];
-
-				// ...skip the module if something is wrong with it
-				if (jettisonModule == null || string.IsNullOrEmpty(jettisonModule.jettisonName))
-				{
-					this.LogError("Skipping problematic jettisonModule at index {0}", jIdx);
-					continue;
-				}
-
-				// ...otherwise...
-				// ...fetch the transform...
-				Transform jettisonTransform = this.jettisonTransforms[jettisonModule.jettisonName];
-
-				if (jettisonTransform == null)
-				{
-					this.LogError(
-						"jettisonTransform named {0} in module index {1} for part {2} is null; this is probably a bug",
-						jettisonModule.jettisonName, jIdx, this.part.partInfo.name)
-					;
-					continue;
-				}
-
-				// ...if we have a bottomNode...
-				AttachNode bottomNode;
-				if (this.bottomNodesTable.TryGetValue(jettisonModule.jettisonName, out bottomNode))
-				{
-					// ... seed ShouldHaveFairing with its current hasAttachedPart status, and update the cache...
-					moduleShouldHaveFairing = bottomNode.attachedPart != null;
-					this.lastBottomNodeStatusTable[bottomNode.id] = moduleShouldHaveFairing;
-
-					this.LogDebug("Got bottomNode={0} for jettinModule {1}\n\t...moduleShouldHaveFairing={2}",
-						bottomNode.id, jettisonModule.jettisonName, moduleShouldHaveFairing);
-				}
-				else
-				{
-					// ...otherwise, assume we aren't checking for parts and carry on...
-					this.LogDebug("No bottom node recorded for jettisonModule {0}\n\t...moduleShouldHaveFairing=true",
-						jettisonModule.jettisonName);
-					
-					moduleShouldHaveFairing = true;
-				}
-
-				this.LogDebug("this.hasJettisonedTable[{0}]={1}, LoadedSceneIsEditor={2}",
-					jettisonModule.jettisonName,
-					this.hasJettisonedTable[jettisonModule.jettisonName],
-					HighLogic.LoadedSceneIsEditor
-				);
-
-				// Disable fairings if we know to have loaded with them already jettisoned, but allow them to be 
-				// re-enabled in the editor.
-				moduleShouldHaveFairing &=
-					partMayHaveFairing &&
-					(
-						!this.hasJettisonedTable[jettisonModule.jettisonName] ||
-						HighLogic.LoadedSceneIsEditor
-					);
-
-				this.LogDebug("moduleShouldHaveFairing={0}", moduleShouldHaveFairing);
-
-				// ...set the module as jettisoned (or not) as appropriate...
-				jettisonModule.isJettisoned = !moduleShouldHaveFairing;
-
-				// ...set the module's jettison event as active (or not) as appropriate...
-				string jettisonEventName = string.Format("{0}{1}", jettisonModule.jettisonName, "jettisonEvent");
-
-				this.Events[jettisonEventName].guiActive = moduleShouldHaveFairing;
-
-				// ...set the transform's gameObject as active (or not) as appropriate...
-				jettisonTransform.gameObject.SetActive(moduleShouldHaveFairing);
-
-				// ...if we should have a fairing...
-				if (moduleShouldHaveFairing)
-				{
-					// ...Restore the transform
-					jettisonModule.jettisonTransform = jettisonTransform;
-				}
-				else
-				{
-					// ...otherwise, null it
-					jettisonModule.jettisonTransform = null;
-				}
-			}
-		}
-
-		public void JettisonEvent(ModuleJettison jettisonModule, KSPActionParam param)
-		{
-			this.LogDebug("JettisonEvent called for {0} with param={1}", jettisonModule.jettisonName, param);
-
-			jettisonModule.JettisonAction(param);
-
-			this.hasJettisonedTable[jettisonModule.jettisonName] = true;
-
-			this.Events[string.Format("{0}{1}", jettisonModule.jettisonName, "jettisonEvent")].guiActive = false;
-		}
-
-		/// <summary>
-		/// Checks if any of the named "bottom" AttachNodes have changed from having a part to not having a part, or
-		/// vice-versa, since the last update.
-		/// </summary>
-		private bool anyBottomNodeChanged()
-		{
-			AttachNode bottomNode;
-			bool hadAttachedPart;
-			bool hasAttachedPart;
-
-			using (var log = PooledDebugLogger.New(this))
-			{
-				log.AppendFormat("Checking if any bottom node changed for ModuleTweakableJettison on {0}",
-					this.part.partInfo.title
-				);
-
-				using (var bnEnumerator = this.bottomNodesTable.Values.GetEnumerator())
-				{
-					while (bnEnumerator.MoveNext())
-					{
-						bottomNode = bnEnumerator.Current;
-
-						log.AppendFormat("\n\tChecking node {0}...", bottomNode.id);
-
-						hasAttachedPart = bottomNode.attachedPart != null;
-
-						log.AppendFormat("\n\t...hasAttachedPart = {0}", hasAttachedPart);
-
-						if (this.lastBottomNodeStatusTable.TryGetValue(bottomNode.id, out hadAttachedPart))
-						{
-							log.AppendFormat("\n\t...hadAttachedPart = {0}", hadAttachedPart);
-
-							if (hadAttachedPart != hasAttachedPart)
-							{
-								log.AppendFormat("\n...returning true");
-								log.Print(false);
-								return true;
-							}
-						}
-					}
-				}
-
-				log.AppendFormat("\n...returning false");
-				log.Print(false);
-				return false;
-			}
-		}
-	}
-}
-
-

--- a/TweakableEngineFairings/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,45 +1,1 @@
-// TweakableEngineFairings, a TweakableEverything module
-//
-// AssemblyInfo.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-[assembly: AssemblyTitle("TweakableEngineFairings")]
-[assembly: AssemblyDescription("Adds a tweakable toggle to disable automatic engine fairings.")]
-[assembly: AssemblyCopyright("toadicus")]
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-[assembly: AssemblyVersion("1.13.0.*")]
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
-

--- a/TweakableEngineFairings/TweakableEngineFairings.csproj
+++ /dev/null
@@ -1,99 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug_win</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{182C9111-3F20-417F-ADF0-3083F8F503D3}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <RootNamespace>TweakableEngineFairings</RootNamespace>
-    <AssemblyName>TweakableEngineFairings</AssemblyName>
-    <ReleaseVersion>1.2</ReleaseVersion>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <UseMSBuildEngine>False</UseMSBuildEngine>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_win|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ${SolutionDir}\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_win|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ${SolutionDir}\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_linux|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_linux|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="Assembly-CSharp">
-      <HintPath>..\..\_KSPAssemblies\Assembly-CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEngine">
-      <HintPath>..\..\_KSPAssemblies\UnityEngine.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ModuleTweakableJettison.cs" />
-    <Compile Include="..\..\ToadicusTools\TweakableTools\TweakableTools.cs">
-      <Link>TweakableTools.cs</Link>
-    </Compile>
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <ItemGroup>
-    <None Include="..\GameData\TweakableEverything\TweakableEngineFairings.cfg" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\ToadicusTools\ToadicusTools.csproj">
-      <Project>{D48A5542-6655-4149-BC27-B27DF0466F1C}</Project>
-      <Name>ToadicusTools</Name>
-      <Private>False</Private>
-    </ProjectReference>
-  </ItemGroup>
-</Project>
+

--- a/TweakableEverything.sln
+++ b/TweakableEverything.sln
@@ -9,17 +9,7 @@
 EndProject

 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweakableReactionWheels", "TweakableReactionWheels\TweakableReactionWheels.csproj", "{E5B0D4C8-F539-4825-8823-D9E37716ACEE}"

 EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweakableLadders", "TweakableLadders\TweakableLadders.csproj", "{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}"

-EndProject

 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweakableGimbals", "TweakableGimbals\TweakableGimbals.csproj", "{A9127548-5542-47FC-B6C2-7129E6573E51}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweakableRCS", "TweakableRCS\TweakableRCS.csproj", "{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweakableAnimateGeneric", "TweakableAnimateGeneric\TweakableAnimateGeneric.csproj", "{D472A279-0B6E-4524-9091-C06705569DFB}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweakableEngineFairings", "TweakableEngineFairings\TweakableEngineFairings.csproj", "{182C9111-3F20-417F-ADF0-3083F8F503D3}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweakableCrossFeed", "TweakableCrossflow\TweakableCrossFeed.csproj", "{72909923-1DDF-45E3-922C-27E17CF69556}"

 EndProject

 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToadicusTools", "..\ToadicusTools\ToadicusTools.csproj", "{D48A5542-6655-4149-BC27-B27DF0466F1C}"

 EndProject

@@ -59,14 +49,6 @@
 		{047D6609-21D0-4DD0-A8A0-37BB9D270100}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

 		{047D6609-21D0-4DD0-A8A0-37BB9D270100}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

 		{047D6609-21D0-4DD0-A8A0-37BB9D270100}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Debug_win|Any CPU.Build.0 = Debug_win|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Release_linux|Any CPU.ActiveCfg = Release_linux|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

-		{182C9111-3F20-417F-ADF0-3083F8F503D3}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

 		{1E0E19C1-10C5-4EB2-AD41-5A27E9A31C24}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

 		{1E0E19C1-10C5-4EB2-AD41-5A27E9A31C24}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

 		{1E0E19C1-10C5-4EB2-AD41-5A27E9A31C24}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

@@ -91,14 +73,6 @@
 		{42F2AF4D-3432-47C3-83A4-AAF1E0CD8169}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

 		{42F2AF4D-3432-47C3-83A4-AAF1E0CD8169}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

 		{42F2AF4D-3432-47C3-83A4-AAF1E0CD8169}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Debug_win|Any CPU.Build.0 = Debug_win|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Release_linux|Any CPU.ActiveCfg = Release_linux|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

-		{72909923-1DDF-45E3-922C-27E17CF69556}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

 		{A8B2B965-ABA5-4ADE-9F8F-F24792D281D0}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

 		{A8B2B965-ABA5-4ADE-9F8F-F24792D281D0}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

 		{A8B2B965-ABA5-4ADE-9F8F-F24792D281D0}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

@@ -123,30 +97,6 @@
 		{AD1165CC-1868-453F-B816-909D1B557141}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

 		{AD1165CC-1868-453F-B816-909D1B557141}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

 		{AD1165CC-1868-453F-B816-909D1B557141}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Debug_win|Any CPU.Build.0 = Debug_win|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Release_linux|Any CPU.ActiveCfg = Release_linux|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

-		{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Debug_win|Any CPU.Build.0 = Debug_win|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Release_linux|Any CPU.ActiveCfg = Release_linux|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

-		{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Debug_win|Any CPU.Build.0 = Debug_win|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Release_linux|Any CPU.ActiveCfg = Release_linux|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

-		{D472A279-0B6E-4524-9091-C06705569DFB}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

 		{D48A5542-6655-4149-BC27-B27DF0466F1C}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

 		{D48A5542-6655-4149-BC27-B27DF0466F1C}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

 		{D48A5542-6655-4149-BC27-B27DF0466F1C}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

@@ -172,13 +122,9 @@
 		{EBEA2280-E6EC-4B61-8A0E-A9909AAC9206}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

 		{EBEA2280-E6EC-4B61-8A0E-A9909AAC9206}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

 		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Debug_linux|Any CPU.ActiveCfg = Debug_linux|Any CPU

-		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Debug_linux|Any CPU.Build.0 = Debug_linux|Any CPU

 		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Debug_win|Any CPU.ActiveCfg = Debug_win|Any CPU

-		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Debug_win|Any CPU.Build.0 = Debug_win|Any CPU

 		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Release_linux|Any CPU.ActiveCfg = Release_linux|Any CPU

-		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Release_linux|Any CPU.Build.0 = Release_linux|Any CPU

 		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Release_win|Any CPU.ActiveCfg = Release_win|Any CPU

-		{F8866D1C-8FDF-4DEB-AF28-89DEF85BB15E}.Release_win|Any CPU.Build.0 = Release_win|Any CPU

 	EndGlobalSection

 	GlobalSection(MonoDevelopProperties) = preSolution

 		Policies = $0


--- a/TweakableLadders/ModuleTweakableLadder.cs
+++ /dev/null
@@ -1,129 +1,1 @@
-// TweakableLadders, a TweakableEverything module
-//
-// ModuleTweakableLadder.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using KSP;
-using System;
-using System.Collections.Generic;
-using ToadicusTools.Extensions;
-using UnityEngine;
-
-namespace TweakableEverything
-{
-	#if DEBUG
-	public class ModuleTweakableLadder : DebugPartModule
-	#else
-	public class ModuleTweakableLadder : PartModule
-	#endif
-	{
-		// Stores whether or not the wheel will start enabled.
-		[KSPField(isPersistant = true, guiName = "Start", guiActive = false, guiActiveEditor = true)]
-		[UI_Toggle(enabledText = "Extended", disabledText = "Retracted")]
-		public bool startExtended;
-		// Stores the last state of startEnabled so we can tell if it's changed.
-		protected bool startExtendedState;
-
-		protected RetractableLadder ladderModule;
-
-		protected ToadicusTools.AnimationWrapper ladderAnimation;
-
-		public ModuleTweakableLadder()
-		{
-			this.startExtended = false;
-		}
-
-		// Runs on PartModule startup.
-		public override void OnStart(StartState state)
-		{
-			// Startup the PartModule stuff first.
-			base.OnStart(state);
-
-			// Set our state trackers to the opposite of our states, to force first-run updates.
-			this.startExtendedState = !this.startExtended;
-
-			// Fetch the solar ladder module from the part.
-			if (this.part.tryGetFirstModuleOfType<RetractableLadder>(out this.ladderModule))
-			{
-				// Fetch the UnityEngine.Animation object from the solar ladder module.
-				this.ladderAnimation = new ToadicusTools.AnimationWrapper(
-					base.part.FindModelTransform(this.ladderModule.ladderAnimationRootName).animation,
-					this.ladderModule.ladderRetractAnimationName,
-					ToadicusTools.PlayDirection.Forward
-				);
-
-				// If we are in the editor and have an animation...
-				if (HighLogic.LoadedSceneIsEditor && this.ladderAnimation != null)
-				{
-					// ...and disable Squad's tweakables, since they play out the animation
-					this.ladderModule.Events["Extend"].guiActiveEditor = false;
-					this.ladderModule.Events["Retract"].guiActiveEditor = false;
-				}
-			}
-		}
-
-		public void LateUpdate()
-		{
-			// If we're in the editor...
-			if (HighLogic.LoadedSceneIsEditor && this.ladderModule != null)
-			{
-				// ...if startExtended has changed and we have an Animation...
-				if (this.startExtendedState != this.startExtended && this.ladderAnimation != null)
-				{
-					// ...refresh startExtendedState
-					this.startExtendedState = this.startExtended;
-
-					// ...and if we are starting opened...
-					if (this.startExtended)
-					{
-						// Yay debugging!
-						this.LogDebug("Extending ladder.");
-
-						// ...skip to the beginning...
-						this.ladderAnimation.SkipTo(ToadicusTools.PlayPosition.Beginning);
-
-						// ...flag the ladder as extended.
-						this.ladderModule.StateName = "Extended";
-					}
-					// ...otherwise, we are starting closed...
-					else
-					{
-						// Yay debugging!
-						this.LogDebug("Retracting ladder.");
-
-						// ...skip to the end...
-						this.ladderAnimation.SkipTo(ToadicusTools.PlayPosition.End);
-
-						// ...flag the ladder as retracted.
-						this.ladderModule.StateName = "Retracted";
-					}
-				}
-			}
-		}
-	}
-}
-
-

--- a/TweakableLadders/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,46 +1,1 @@
-// TweakableLadders, a TweakableEverything module
-//
-// AssemblyInfo.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-[assembly: AssemblyTitle("TweakableLadders")]
-[assembly: AssemblyDescription("Adds useful 'tweakable' configuration options for retractable ladders.")]
-[assembly: AssemblyCopyright("toadicus")]
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-[assembly: AssemblyVersion("1.13.0.*")]
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
-
-

--- a/TweakableLadders/TweakableLadders.cfg
+++ /dev/null
@@ -1,38 +1,1 @@
-// TweakableLadders, a TweakableEverything module
-//
-// TweakableLadders.cfg
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// This software uses the ModuleManager library © 2013-2014 sarbian & ialdabaoth (who is awesome), used under a Creative Commons Attribution-ShareAlike
-// 3.0 Unported License.
 
-@PART[*]:HAS[@MODULE[RetractableLadder]]:FOR[TweakableEverything]
-{
-	MODULE
-	{
-		name = ModuleTweakableLadder
-	}
-}

--- a/TweakableLadders/TweakableLadders.csproj
+++ /dev/null
@@ -1,99 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug_win</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{D2D6E861-032F-4BBB-B6D6-8667C5BC4A53}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <RootNamespace>TweakableLadders</RootNamespace>
-    <AssemblyName>TweakableLadders</AssemblyName>
-    <ReleaseVersion>1.2</ReleaseVersion>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <UseMSBuildEngine>False</UseMSBuildEngine>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_win|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${ProjectDir}\${ProjectName}.cfg ..\..\..\..\Games\KSP_win\GameData\TweakableEverything\" />
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ..\..\..\..\Games\KSP_win\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_win|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${ProjectDir}\${ProjectName}.cfg ..\..\..\..\Games\KSP_win\GameData\TweakableEverything\" />
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ..\..\..\..\Games\KSP_win\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_linux|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${ProjectDir}/${ProjectName}.cfg ${TargetFile} /opt/games/KSP_linux/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_linux|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${ProjectDir}/${ProjectName}.cfg ${TargetFile} /opt/games/KSP_linux/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="ModuleTweakableLadder.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <ItemGroup>
-    <Reference Include="Assembly-CSharp">
-      <HintPath>..\..\_KSPAssemblies\Assembly-CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="System">
-      <HintPath>..\..\_KSPAssemblies\System.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEngine">
-      <HintPath>..\..\_KSPAssemblies\UnityEngine.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="TweakableLadders.cfg" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\ToadicusTools\ToadicusTools.csproj">
-      <Project>{D48A5542-6655-4149-BC27-B27DF0466F1C}</Project>
-      <Name>ToadicusTools</Name>
-    </ProjectReference>
-  </ItemGroup>
-</Project>
+

--- a/TweakableRCS/ModuleTweakableRCS.cs
+++ /dev/null
@@ -1,163 +1,1 @@
-// TweakableRCS, a TweakableEverything module
-//
-// ModuleTweakableRCS.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using KSP;
-using KSPAPIExtensions;
-using System;
-using System.Collections.Generic;
-using ToadicusTools.Extensions;
-using UnityEngine;
-
-namespace TweakableRCS
-{
-	#if DEBUG
-	public class ModuleTweakableRCS : DebugPartModule
-	#else
-	public class ModuleTweakableRCS : PartModule
-	#endif
-	{
-		protected ModuleRCS RCSModule;
-
-		// Stores whether the RCS block should start enabled or not.
-		[KSPField(isPersistant = true, guiName = "Thruster", guiActive = false, guiActiveEditor = true)]
-		[UI_Toggle(enabledText = "Enabled", disabledText = "Disabled")]
-		public bool startEnabled;
-		// Stores the last state of startEnabled so we can tell if it's changed.
-		protected bool startEnabledState;
-
-		// Stores our thrust limiter value for the RCS block.
-		[KSPField(isPersistant = true, guiName = "Thrust Limiter", guiFormat = "P0",  guiActiveEditor = true, guiActive = true)]
-		[UI_FloatEdit(minValue = 0f, maxValue = 1f, incrementSlide = .025f)]
-		public float thrustLimit;
-
-		protected float baseThrusterPower;
-
-		public ModuleTweakableRCS()
-		{
-			this.startEnabled = true;
-			this.thrustLimit = 1f;
-		}
-
-		public override void OnLoad(ConfigNode node)
-		{
-			base.OnLoad(node);
-
-			if (this.thrustLimit > 1f)
-			{
-				this.thrustLimit /= 100f;
-			}
-		}
-
-		public override void OnStart(StartState state)
-		{
-			base.OnStart(state);
-
-			this.RCSModule = base.part.getFirstModuleOfType<ModuleRCS>();
-			var prefabModule = this.part.partInfo.partPrefab.getFirstModuleOfType<ModuleRCS>();
-
-			// Only run the assignment if the module exists.
-			if (this.RCSModule != null)
-			{
-				this.startEnabledState = !this.startEnabled;
-			}
-
-			if (prefabModule != null)
-			{
-				this.baseThrusterPower = prefabModule.thrusterPower;
-			}
-
-			var thrustLimitCtl = this.Fields["thrustLimit"].uiControlCurrent();
-
-			if (thrustLimitCtl is UI_FloatEdit)
-			{
-				var thrustLimitSlider = thrustLimitCtl as UI_FloatEdit;
-
-				thrustLimitSlider.maxValue = 1f;
-				thrustLimitSlider.incrementSlide = 0.025f;
-			}
-		}
-
-		// Runs late in the update cycle
-		public void LateUpdate()
-		{
-			// Do nothing if the RCS module is null.
-			if (this.RCSModule == null)
-			{
-				return;
-			}
-
-			// If we're in the editor...
-			if (HighLogic.LoadedSceneIsEditor)
-			{
-				// ...and if our startEnabled state has changed...
-				if (this.startEnabled != this.startEnabledState)
-				{
-					// ...refresh startEnabledState
-					this.startEnabledState = this.startEnabled;
-
-					// ...and if we're starting enabled...
-					if (this.startEnabled)
-					{
-						// ...set the reaction wheel module to active
-						this.RCSModule.rcsEnabled = true;
-					}
-					// ...otherwise, we're starting disabled...
-					else
-					{
-						// ...set heel module to disabled
-						this.RCSModule.rcsEnabled = false;
-					}
-				}
-			}
-
-			this.RCSModule.thrusterPower = this.baseThrusterPower * this.thrustLimit;
-
-			FXGroup fx;
-			for (int idx = 0; idx < this.RCSModule.thrusterFX.Count; idx++)
-			{
-				fx = this.RCSModule.thrusterFX[idx];
-				fx.Power *= this.thrustLimit;
-			}
-		}
-
-		[KSPAction("Enable Thruster")]
-		public void ActionEnableThruster(KSPActionParam param)
-		{
-			this.RCSModule.Enable();
-		}
-
-		[KSPAction("Disable Thruster")]
-		public void ActionDisableThruster(KSPActionParam param)
-		{
-			this.RCSModule.Disable();
-		}
-
-	}
-}
-
-

--- a/TweakableRCS/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,46 +1,1 @@
-// TweakableRCS, a TweakableEverything module
-//
-// AssemblyInfo.cs
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be used
-//    to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-[assembly: AssemblyTitle("TweakableRCS")]
-[assembly: AssemblyDescription("Adds useful 'tweakable' configuration options for RCS thrusters.")]
-[assembly: AssemblyCopyright("toadicus")]
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-[assembly: AssemblyVersion("1.13.0.*")]
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
-
-

--- a/TweakableRCS/TweakableRCS.csproj
+++ /dev/null
@@ -1,101 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug_win</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{CB6EC9DF-90F0-4C0C-9EB4-6C0288803AA7}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <RootNamespace>TweakableRCS</RootNamespace>
-    <ReleaseVersion>1.2</ReleaseVersion>
-    <AssemblyName>TweakableRCS</AssemblyName>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <UseMSBuildEngine>False</UseMSBuildEngine>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_win|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ${SolutionDir}\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_win|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ${SolutionDir}\GameData\TweakableEverything\" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_linux|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_linux|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-    <CustomCommands>
-      <CustomCommands>
-        <Command type="AfterBuild" command="cp -afv ${TargetFile} ${SolutionDir}/GameData/${SolutionName}/" />
-      </CustomCommands>
-    </CustomCommands>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="ModuleTweakableRCS.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\GameData\TweakableEverything\TweakableRCS.cfg" />
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="Assembly-CSharp">
-      <HintPath>..\..\_KSPAssemblies\Assembly-CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="System">
-      <HintPath>..\..\_KSPAssemblies\System.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEngine">
-      <HintPath>..\..\_KSPAssemblies\UnityEngine.dll</HintPath>
-    </Reference>
-    <Reference Include="KSPAPIExtensions">
-      <HintPath>..\GameData\TweakableEverything\KSPAPIExtensions.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <ItemGroup>
-    <ProjectReference Include="..\..\ToadicusTools\ToadicusTools.csproj">
-      <Project>{D48A5542-6655-4149-BC27-B27DF0466F1C}</Project>
-      <Name>ToadicusTools</Name>
-      <Private>False</Private>
-    </ProjectReference>
-  </ItemGroup>
-</Project>
+

--- a/TweakableReactionWheels/ModuleTweakableReactionWheel.cs
+++ b/TweakableReactionWheels/ModuleTweakableReactionWheel.cs
@@ -45,13 +45,6 @@
 		// Stores the reaction wheel module we're tweaking.
 		protected ModuleReactionWheel reactionWheelModule;
 
-		// Stores whether or not the wheel will start enabled.
-		[KSPField(isPersistant = true, guiName = "Reaction Wheels", guiActive = false, guiActiveEditor = true)]
-		[UI_Toggle(enabledText = "Enabled", disabledText = "Disabled")]
-		public bool startEnabled;
-		// Stores the last state of startEnabled so we can tell if it's changed.
-		protected bool startEnabledState;
-
 		// Stores our tweaked value for roll torque.
 		[KSPField(isPersistant = true, guiName = "Roll Torque", guiUnits = "kN-m", guiFormat = "F2",
 			guiActiveEditor = true)]
@@ -79,9 +72,6 @@
 		// Construct ALL the objects.
 		public ModuleTweakableReactionWheel()
 		{
-			// Default to starting enabled, per Squad's behavior.
-			this.startEnabled = true;
-
 			// -1 will indicate an uninitialized value.
 			this.RollTorque = -1;
 			this.PitchTorque = -1;
@@ -115,11 +105,6 @@
 				base.OnStart(state);
 
 				log.Append("\n\tbase started up");
-
-				// Seed the startEnabledState to the opposite of startEnabled to force first-update processing.
-				this.startEnabledState = !this.startEnabled;
-
-				log.AppendFormat("\n\tlast state seeded ({0} != {1})", this.startEnabledState, this.startEnabled);
 
 				ModuleReactionWheel prefabModule;
 
@@ -184,30 +169,6 @@
 		// Runs late in the update cycle
 		public void LateUpdate()
 		{
-			// If we're in the editor...
-			if (HighLogic.LoadedSceneIsEditor && this.reactionWheelModule != null)
-			{
-				// ...and if our startEnabled state has changed...
-				if (this.startEnabled != this.startEnabledState)
-				{
-					// ...refresh startEnabledState
-					this.startEnabledState = this.startEnabled;
-
-					// ...and if we're starting enabled...
-					if (this.startEnabled)
-					{
-						// ...set the reaction wheel module to active
-						this.reactionWheelModule.State = ModuleReactionWheel.WheelState.Active;
-					}
-					// ...otherwise, we're starting disabled...
-					else
-					{
-						// ...set the reaction wheel module to disabled
-						this.reactionWheelModule.State = ModuleReactionWheel.WheelState.Disabled;
-					}
-				}
-			}
-
 			if (HighLogic.LoadedSceneIsFlight && this.reactionWheelModule != null)
 			{
 				this.reactionWheelModule.RollTorque = this.RollTorque * this.TorqueGain;

--- a/TweakableSolarPanels/ModuleTweakableDeployablePanel.cs
+++ b/TweakableSolarPanels/ModuleTweakableDeployablePanel.cs
@@ -46,20 +46,9 @@
 		private FieldInfo currentRotationField;
 		private FieldInfo sunTrackingField;
 		private FieldInfo trackingSpeedField;
-		private FieldInfo storedAnimationTimeField;
-		private FieldInfo panelStateField;
-		private FieldInfo statusField;
-		private FieldInfo stateStringField;
 
 		[KSPField(isPersistant = false)]
 		public string moduleType;
-
-		// Tweakable property to determine whether the solar panel should start opened or closed.
-		[KSPField(guiName = "Start", isPersistant = true, guiActiveEditor = true, guiActive = false)]
-		[UI_Toggle(disabledText = "Retracted", enabledText = "Extended")]
-		public bool StartOpened;
-		// Save the state here so we can tell if StartOpened has changed.
-		protected bool startOpenedState;
 
 		// Tweakable property to determine whether the solar panel should track the sun or not.
 		// Tweakable in flight.
@@ -77,14 +66,10 @@
 		// Stores the solar panel animation we're clobbering.
 		protected ToadicusTools.AnimationWrapper panelAnimation;
 
-		private object PanelStateExtended;
-		private object PanelStateRetracted;
-
 		// Construct ALL the objects.
 		public ModuleTweakableDeployablePanel()
 		{
 			// These defaults reflect stock behavior.
-			this.StartOpened = false;
 			this.sunTrackingEnabled = true;
 			this.moduleType = "ModuleDeployableSolarPanel";
 		}
@@ -99,33 +84,7 @@
 			if (this.part.tryGetFirstModuleByName(this.moduleType, out this.panelModule))
 			{
 				// Set our state trackers to the opposite of our states, to force first-run updates.
-				this.startOpenedState = !this.StartOpened;
 				this.sunTrackingState = !this.sunTrackingEnabled;
-/*
-				// Yay debugging!
-				this.LogDebug(
-					"panelModule: " + this.panelModule,
-					"storedAnimationTime: " + this.panelModule.storedAnimationTime,
-					"storedAnimationSpeed: " + this.panelModule.storedAnimationSpeed,
-					"stateString: " + this.panelModule.stateString,
-					"currentRotation: " + this.panelModule.currentRotation,
-					"originalRotation: " + this.panelModule.originalRotation
-				);
-*/
-
-				switch (this.panelModule.GetType().Name)
-				{
-					case "ModuleDeployableSolarPanel":
-						this.PanelStateExtended = ModuleDeployableSolarPanel.panelStates.EXTENDED;
-						this.PanelStateRetracted = ModuleDeployableSolarPanel.panelStates.RETRACTED;
-						break;
-					case "ModuleDeployableRadiator":
-						this.PanelStateExtended = ModuleDeployableRadiator.panelStates.EXTENDED;
-						this.PanelStateRetracted = ModuleDeployableRadiator.panelStates.RETRACTED;
-						break;
-					default:
-						throw new NotImplementedException();
-				}
 
 				// Fetch the UnityEngine.Animation object from the solar panel module.
 				Animation anim = this.panelModule.GetComponentInChildren<Animation>();
@@ -213,81 +172,6 @@
 				return;
 			}
 
-			// If we're in the editor...
-			if (HighLogic.LoadedSceneIsEditor && this.panelAnimation != null)
-			{
-				// ...if StartOpened has changed and we have an Animation...
-				if (this.startOpenedState != this.StartOpened)
-				{
-					this.LogDebug("Start-opened state changed, skipping animation.");
-
-					// ...refresh startOpenedState
-					this.startOpenedState = this.StartOpened;
-
-					if (storedAnimationTimeField == null)
-					{
-						storedAnimationTimeField = this.panelModule.GetType().GetField("storedAnimationTime");
-					}
-
-					if (panelStateField == null)
-					{
-						panelStateField = this.panelModule.GetType().GetField("panelState");
-					}
-
-					if (statusField == null)
-					{
-						statusField = this.panelModule.GetType().GetField("status");
-					}
-
-					// ...and if we are starting opened...
-					if (this.StartOpened)
-					{
-						// Yay debugging!
-						this.LogDebug("Extending panel.");
-
-						// ...move the animation to the end with a "forward" play speed.
-						this.panelAnimation.SkipTo(ToadicusTools.PlayPosition.End);
-
-						storedAnimationTimeField.SetValue(this.panelModule, 1f);
-
-						// ...flag the panel as extended.
-						panelStateField.SetValue(this.panelModule, this.PanelStateExtended);
-						statusField.SetValue(this.panelModule, "Extended");
-					}
-					// ...otherwise, we are starting closed...
-					else
-					{
-						// Yay debugging!
-						this.LogDebug("Retracting panel.");
-
-						// ...move the animation to the beginning with a "backward" play speed.
-						this.panelAnimation.SkipTo(ToadicusTools.PlayPosition.Beginning);
-						storedAnimationTimeField.SetValue(this.panelModule, 0f);
-
-						// ...flag the panel as retracted.
-						panelStateField.SetValue(this.panelModule, this.PanelStateRetracted);
-						statusField.SetValue(this.panelModule, "Retracted");
-					}
-
-					// ...play the animation, because it's so very pretty.
-
-					// ...update the persistence data for the solar panel accordingly.
-
-					if (stateStringField == null)
-					{
-						stateStringField = this.panelModule.GetType().GetField("stateString");
-					}
-
-					stateStringField.SetValue(
-						this.panelModule,
-						Enum.GetName(
-							typeof(ModuleDeployableSolarPanel.panelStates),
-							panelStateField.GetValue(this.panelModule)
-						)
-					);
-				}
-			}
-
 			this.LogDebug("Checking sun tracking.");
 			this.LogDebug("sunTrackingField: {0}", sunTrackingField);
 			this.LogDebug("panelModule: {0}", this.panelModule);