Fixed issues with the Unity project files not having been auto downgraded correctly.
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,11 @@
# Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
[Bb]in/
[Oo]bj/
+
+# Unity specific
+[Ll]ibrary/
+[Tt]emp/
+*.unityproj
# mstest test results
TestResults
Binary files a/Assets/CurseLogo.png and /dev/null differ
Binary files a/Assets/CurseLogo.psd and /dev/null differ
Binary files a/Assets/DropDownBackground.psd and /dev/null differ
Binary files /dev/null and b/Assets/Images/app-launcher-icon.psd differ
Binary files /dev/null and b/Assets/Images/flight-menu-background.psd differ
Binary files /dev/null and b/Assets/Images/ui-drop-down.psd differ
--- /dev/null
+++ b/Assets/Scripts/Editor/BuildAssetBundles.cs
@@ -1,1 +1,11 @@
+using UnityEditor;
+using UnityEngine;
+public class BuildAssetBundles : MonoBehaviour
+{
+ [MenuItem("Assets/Build Asset Bundles")]
+ public static void Build()
+ {
+ BuildPipeline.BuildAssetBundles(Application.dataPath + "/../Output/KerbalEngineer", BuildAssetBundleOptions.UncompressedAssetBundle);
+ }
+}
Binary files a/Assets/ToolbarBackground.psd and /dev/null differ
Binary files a/Assets/ToolbarIcon.psd and /dev/null differ
--- a/Documents/CHANGES.txt
+++ b/Documents/CHANGES.txt
@@ -1,3 +1,15 @@
+ Changed: Thermal flux is now correctly indicated in kilowatts.
+
+1.0.19.4, 12-02-16
+ Fixed: Only 'STAGE_STACK_FLOW' and 'STAGE_STACK_FLOW_BALANCE' resources include surface mounted parts as fuel targets.
+ Fixed: Fairing mass being doubled in the VAB (removed workaround for a KSP bug which has been fixed).
+
+1.0.19.3, 09-02-16
+ Fixed: Fuel cross-feed from surface attached parts.
+
+1.0.19.2, 19-11-15
+ Rebuild for KSP 1.0.5.1028 silent update.
+
1.0.19.1, 09-11-15
Added: Key binding editor accessible under 'Settings' on the Build Engineer.
Added: Added current vessel name readout. (antplant)
--- /dev/null
+++ b/KerbalEngineer.CSharp.Editor.csproj
@@ -1,1 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>10.0.20506</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AssemblyName>Assembly-CSharp-Editor</AssemblyName>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
+ <CompilerResponseFile></CompilerResponseFile>
+ <UnityProjectType>Editor:5</UnityProjectType>
+ <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget>
+ <UnityVersion>5.2.4f1</UnityVersion>
+ <RootNamespace></RootNamespace>
+ <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>Temp\UnityVS_bin\Debug\</OutputPath>
+ <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DefineConstants>DEBUG;TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>Temp\UnityVS_bin\Release\</OutputPath>
+ <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DefineConstants>TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.XML" />
+ <Reference Include="System.Core" />
+ <Reference Include="Boo.Lang" />
+ <Reference Include="UnityScript.Lang" />
+ <Reference Include="System.Runtime.Serialization" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="UnityEngine">
+ <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor">
+ <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Advertisements">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Advertisements">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.UI">
+ <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.UI">
+ <HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Networking">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Networking">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Analytics">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Graphs">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Android.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Android.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.iOS.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.WP8.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.WP8.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Metro.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Metro.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Tizen.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Tizen.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.SamsungTV.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.SamsungTV.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.WebGL.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.LinuxStandalone.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.LinuxStandalone.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.WindowsStandalone.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.OSXStandalone.Extensions">
+ <HintPath>Library\UnityAssemblies\UnityEditor.OSXStandalone.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="SyntaxTree.VisualStudio.Unity.Bridge">
+ <HintPath>Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Networking">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Advertisements">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.UI">
+ <HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Analytics">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Networking">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.Advertisements">
+ <HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.UI">
+ <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="Mono.Cecil">
+ <HintPath>Library\UnityAssemblies\Mono.Cecil.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor.iOS.Extensions.Xcode">
+ <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Assets\Scripts\Editor\BuildAssetBundles.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" />
+</Project>
--- /dev/null
+++ b/KerbalEngineer.CSharp.csproj
@@ -1,1 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>10.0.20506</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{26D24EAD-1AF6-6749-D9C8-C47AEC4E6A98}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AssemblyName>Assembly-CSharp</AssemblyName>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Unity Subset v3.5</TargetFrameworkProfile>
+ <CompilerResponseFile></CompilerResponseFile>
+ <UnityProjectType>Game:1</UnityProjectType>
+ <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget>
+ <UnityVersion>5.3.3p2</UnityVersion>
+ <RootNamespace></RootNamespace>
+ <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>Temp\UnityVS_bin\Debug\</OutputPath>
+ <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DefineConstants>DEBUG;TRACE;UNITY_5_3_3;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>Temp\UnityVS_bin\Release\</OutputPath>
+ <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DefineConstants>TRACE;UNITY_5_3_3;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.XML" />
+ <Reference Include="System.Core" />
+ <Reference Include="Boo.Lang" />
+ <Reference Include="UnityScript.Lang" />
+ <Reference Include="System.Runtime.Serialization" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="UnityEngine">
+ <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.UI">
+ <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Networking">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.Networking">
+ <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEngine.UI">
+ <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="UnityEditor">
+ <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Assets\Scripts\BuildAssetBundles.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" />
+</Project>
--- a/KerbalEngineer.sln
+++ b/KerbalEngineer.sln
@@ -1,8 +1,8 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30110.0
-MinimumVisualStudioVersion = 10.0.40219.1
+# Visual Studio 2015
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer.CSharp.Editor", "KerbalEngineer.CSharp.Editor.csproj", "{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer", "KerbalEngineer\KerbalEngineer.csproj", "{39806613-E0B7-46E0-89A6-A569EC538CBB}"
EndProject
Global
@@ -11,6 +11,10 @@
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.Build.0 = Release|Any CPU
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
--- /dev/null
+++ b/KerbalEngineer/AppLauncherButton.cs
@@ -1,1 +1,189 @@
+//
+// Kerbal Engineer Redux
+//
+// Copyright (C) 2016 CYBUTEK
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+namespace KerbalEngineer
+{
+ using KSP.UI;
+ using KSP.UI.Screens;
+ using UnityEngine;
+
+ public class AppLauncherButton : MonoBehaviour
+ {
+ private static Texture m_IconTexture;
+ private ApplicationLauncherButton m_Button;
+
+ /// <summary>
+ /// Gets or sets the toggle button state.
+ /// </summary>
+ public bool isOn
+ {
+ get
+ {
+ return m_Button != null &&
+ m_Button.toggleButton.Button.interactable &&
+ m_Button.toggleButton.CurrentState == UIRadioButton.State.True;
+ }
+ set
+ {
+ if (m_Button == null)
+ {
+ return;
+ }
+
+ if (value)
+ {
+ SetOn();
+ }
+ else
+ {
+ SetOff();
+ }
+ }
+ }
+
+ /// <summary>
+ /// Disables the button if not already disabled.
+ /// </summary>
+ public void Disable()
+ {
+ if (m_Button != null && m_Button.toggleButton.Button.interactable)
+ {
+ m_Button.Disable();
+ }
+ }
+
+ /// <summary>
+ /// Enables the button if not already enabled.
+ /// </summary>
+ public void Enable()
+ {
+ if (m_Button != null && m_Button.toggleButton.Button.interactable == false)
+ {
+ m_Button.Enable();
+ }
+ }
+
+ /// <summary>
+ /// Enables and sets the button to off.
+ /// </summary>
+ public void SetOff()
+ {
+ Enable();
+
+ if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.False)
+ {
+ m_Button.SetTrue();
+ }
+ }
+
+ /// <summary>
+ /// Enables and sets the button to on.
+ /// </summary>
+ public void SetOn()
+ {
+ Enable();
+
+ if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.True)
+ {
+ m_Button.SetTrue();
+ }
+ }
+
+ protected virtual void Awake()
+ {
+ // cache icon texture
+ if (m_IconTexture == null && AssetBundleLoader.images != null)
+ {
+ m_IconTexture = AssetBundleLoader.images.LoadAsset<Texture2D>("app-launcher-icon");
+ }
+
+ // subscribe event listeners
+ GameEvents.onGUIApplicationLauncherReady.Add(OnGUIApplicationLauncherReady);
+ GameEvents.onGUIApplicationLauncherUnreadifying.Add(OnGUIApplicationLauncherUnreadifying);
+ }
+
+ protected virtual void OnDestroy()
+ {
+ // unsubscribe event listeners
+ GameEvents.onGUIApplicationLauncherReady.Remove(OnGUIApplicationLauncherReady);
+ GameEvents.onGUIApplicationLauncherUnreadifying.Remove(OnGUIApplicationLauncherUnreadifying);
+ }
+
+ /// <summary>
+ /// Called on button being disabled.
+ /// </summary>
+ protected virtual void OnDisable() { }
+
+ /// <summary>
+ /// Called on button being enabled.
+ /// </summary>
+ protected virtual void OnEnable() { }
+
+ /// <summary>
+ /// Called on button being toggled off.
+ /// </summary>
+ protected virtual void OnFalse() { }
+
+ /// <summary>
+ /// Called on mouse hovering.
+ /// </summary>
+ protected virtual void OnHover() { }
+
+ /// <summary>
+ /// Called on mouse exiting hover.
+ /// </summary>
+ protected virtual void OnHoverOut() { }
+
+ /// <summary>
+ /// Called on button being ready.
+ /// </summary>
+ protected virtual void OnReady() { }
+
+ /// <summary>
+ /// Called after the application launcher is ready and the button created.
+ /// </summary>
+ protected virtual void OnTrue() { }
+
+ /// <summary>
+ /// Called after the application launcher is unreadified and the button removed.
+ /// </summary>
+ protected virtual void OnUnreadifying() { }
+
+ private void OnGUIApplicationLauncherReady()
+ {
+ // create button
+ if (ApplicationLauncher.Instance != null)
+ {
+ m_Button = ApplicationLauncher.Instance.AddModApplication(OnTrue, OnFalse, OnHover, OnHoverOut, OnEnable, OnDisable, ApplicationLauncher.AppScenes.ALWAYS, m_IconTexture);
+ }
+
+ OnReady();
+ }
+
+ private void OnGUIApplicationLauncherUnreadifying(GameScenes scene)
+ {
+ // remove button
+ if (ApplicationLauncher.Instance != null && m_Button != null)
+ {
+ ApplicationLauncher.Instance.RemoveModApplication(m_Button);
+ }
+
+ OnUnreadifying();
+ }
+ }
+}
--- /dev/null
+++ b/KerbalEngineer/AssetBundleLoader.cs
@@ -1,1 +1,41 @@
+namespace KerbalEngineer
+{
+ using UnityEngine;
+ [KSPAddon(KSPAddon.Startup.Instantly, false)]
+ public class AssetBundleLoader : MonoBehaviour
+ {
+ private static AssetBundle m_Images;
+ private static AssetBundle m_Prefabs;
+
+ /// <summary>
+ /// Gets the loaded images asset bundle.
+ /// </summary>
+ public static AssetBundle images
+ {
+ get
+ {
+ return m_Images;
+ }
+ }
+
+ /// <summary>
+ /// Gets the loaded prefabs asset bundle.
+ /// </summary>
+ public static AssetBundle prefabs
+ {
+ get
+ {
+ return m_Prefabs;
+ }
+ }
+
+ protected virtual void Awake()
+ {
+ string bundlePath = EngineerGlobals.AssemblyPath;
+
+ m_Images = AssetBundle.CreateFromFile(bundlePath + "/images");
+ m_Prefabs = AssetBundle.CreateFromFile(bundlePath + "/prefabs");
+ }
+ }
+}
--- /dev/null
+++ b/KerbalEngineer/Editor/BuildAppLauncher.cs
@@ -1,1 +1,59 @@
+//
+// Kerbal Engineer Redux
+//
+// Copyright (C) 2016 CYBUTEK
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+namespace KerbalEngineer.Editor
+{
+ [KSPAddon(KSPAddon.Startup.EditorAny, false)]
+ public class BuildAppLauncher : AppLauncherButton
+ {
+ protected override void OnFalse()
+ {
+ if (BuildAdvanced.Instance != null)
+ {
+ BuildAdvanced.Instance.Visible = false;
+ }
+ }
+
+ protected override void OnTrue()
+ {
+ if (BuildAdvanced.Instance != null)
+ {
+ BuildAdvanced.Instance.Visible = true;
+ }
+ }
+
+ protected virtual void Update()
+ {
+ if (BuildAdvanced.Instance == null)
+ {
+ return;
+ }
+
+ // check if vessel is currently under construction with the presence of a root part
+ if (EditorLogic.RootPart != null)
+ {
+ // set button state based on existing visibility
+ isOn = BuildAdvanced.Instance.Visible;
+ }
+ else
+ {
+ Disable();
+ }
+ }
+ }
+}
--- a/KerbalEngineer/Editor/BuildOverlayPartInfo.cs
+++ b/KerbalEngineer/Editor/BuildOverlayPartInfo.cs
@@ -28,7 +28,7 @@
public class BuildOverlayPartInfo : MonoBehaviour
{
private static bool clickToOpen = true;
- private static ModuleGenerator.GeneratorResource generatorResource;
+ private static ModuleResource generatorResource;
private static ModuleAlternator moduleAlternator;
private static ModuleDataTransmitter moduleDataTransmitter;
private static ModuleDeployableSolarPanel moduleDeployableSolarPanel;
@@ -131,7 +131,7 @@
position.x = Input.mousePosition.x - 3 - position.width;
}
- part = EditorLogic.fetch.ship.parts.Find(p => p.stackIcon.highlightIcon) ?? EditorLogic.SelectedPart;
+ part = EditorLogic.fetch.ship.parts.Find(p => p.stackIcon.Highlighted) ?? EditorLogic.SelectedPart;
if (part != null)
{
if (!part.Equals(selectedPart))
--- a/KerbalEngineer/Editor/BuildToolbar.cs
+++ /dev/null
@@ -1,120 +1,1 @@
-//
-// Kerbal Engineer Redux
-//
-// Copyright (C) 2014 CYBUTEK
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//
-#region Using Directives
-
-using System;
-
-using UnityEngine;
-
-#endregion
-
-namespace KerbalEngineer.Editor
-{
- [KSPAddon(KSPAddon.Startup.EditorAny, false)]
- public class BuildToolbar : MonoBehaviour
- {
- #region Fields
-
- private ApplicationLauncherButton button;
-
- #endregion
-
- #region Methods: private
-
- private void Awake()
- {
- GameEvents.onGUIApplicationLauncherReady.Add(this.OnGuiAppLauncherReady);
- Logger.Log("BuildToolbar->Awake");
- }
-
- private void Start()
- {
- if (button == null)
- {
- OnGuiAppLauncherReady();
- }
- }
-
- private void OnDestroy()
- {
- GameEvents.onGUIApplicationLauncherReady.Remove(this.OnGuiAppLauncherReady);
- if (this.button != null)
- {
- ApplicationLauncher.Instance.RemoveModApplication(this.button);
- }
- Logger.Log("BuildToolbar->OnDestroy");
- }
-
- private void OnGuiAppLauncherReady()
- {
- try
- {
- this.button = ApplicationLauncher.Instance.AddModApplication(
- () => BuildAdvanced.Instance.Visible = true,
- () => BuildAdvanced.Instance.Visible = false,
- null,
- null,
- null,
- null,
- ApplicationLauncher.AppScenes.ALWAYS,
- GameDatabase.Instance.GetTexture("KerbalEngineer/Textures/ToolbarIcon", false)
- );
- Logger.Log("BuildToolbar->OnGuiAppLauncherReady");
- }
- catch (Exception ex)
- {
- Logger.Exception(ex, "BuildToolbar->OnGuiAppLauncherReady");
- }
- }
-
- private void Update()
- {
- try
- {
- if (this.button == null)
- {
- return;
- }
-
- if (EditorLogic.fetch != null && EditorLogic.fetch.ship.parts.Count > 0)
- {
- if (BuildAdvanced.Instance.Visible && this.button.State != RUIToggleButton.ButtonState.TRUE)
- {
- this.button.SetTrue();
- }
- else if (!BuildAdvanced.Instance.Visible && this.button.State != RUIToggleButton.ButtonState.FALSE)
- {
- this.button.SetFalse();
- }
- }
- else if (this.button.State != RUIToggleButton.ButtonState.DISABLED)
- {
- this.button.Disable();
- }
- }
- catch (Exception ex)
- {
- Logger.Exception(ex, "BuildToolbar->Update");
- }
- }
-
- #endregion
- }
-}
--- a/KerbalEngineer/EngineerGlobals.cs
+++ b/KerbalEngineer/EngineerGlobals.cs
@@ -25,7 +25,7 @@
/// <summary>
/// Current version of the Kerbal Engineer assembly.
/// </summary>
- public const string ASSEMBLY_VERSION = "1.0.19.2";
+ public const string ASSEMBLY_VERSION = "1.0.19.4";
private static string assemblyFile;
private static string assemblyName;
--- a/KerbalEngineer/Flight/ActionMenu.cs
+++ b/KerbalEngineer/Flight/ActionMenu.cs
@@ -27,6 +27,8 @@
namespace KerbalEngineer.Flight
{
+ using KSP.UI.Screens;
+
/// <summary>
/// Graphical controller for section interaction in the form of a menu system.
/// </summary>
@@ -90,11 +92,11 @@
{
return;
}
- if (FlightEngineerCore.IsDisplayable && this.button.State == RUIToggleButton.ButtonState.DISABLED)
+ if (FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable == false)
{
this.button.Enable();
}
- else if (!FlightEngineerCore.IsDisplayable && this.button.State != RUIToggleButton.ButtonState.DISABLED)
+ else if (!FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable)
{
this.button.Disable();
}
--- a/KerbalEngineer/Helpers/TimeFormatter.cs
+++ b/KerbalEngineer/Helpers/TimeFormatter.cs
@@ -28,11 +28,11 @@
if (seconds > 0.0)
{
- years = (int)(seconds / KSPUtil.Year);
- seconds -= years * KSPUtil.Year;
+ years = (int)(seconds / KSPUtil.dateTimeFormatter.Year);
+ seconds -= years * KSPUtil.dateTimeFormatter.Year;
- days = (int)(seconds / KSPUtil.Day);
- seconds -= days * KSPUtil.Day;
+ days = (int)(seconds / KSPUtil.dateTimeFormatter.Day);
+ seconds -= days * KSPUtil.dateTimeFormatter.Day;
hours = (int)(seconds / 3600.0);
seconds -= hours * 3600.0;
--- a/KerbalEngineer/Helpers/Units.cs
+++ b/KerbalEngineer/Helpers/Units.cs
@@ -127,7 +127,7 @@
public static string ToFlux(double value)
{
- return value.ToString("#,0.00") + "W";
+ return value.ToString("#,0.00") + "kW";
}
public static string ToForce(double value)
--- a/KerbalEngineer/KerbalEngineer.csproj
+++ b/KerbalEngineer/KerbalEngineer.csproj
@@ -34,22 +34,25 @@
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
+ <Compile Include="AppLauncherButton.cs" />
+ <Compile Include="AssetBundleLoader.cs" />
<Compile Include="Control\IControlPanel.cs" />
<Compile Include="Control\Panels\BuildOverlayPanel.cs" />
<Compile Include="Control\Panels\BuildEngineerPanel.cs" />
<Compile Include="Editor\BuildAdvanced.cs" />
+ <Compile Include="Editor\BuildAppLauncher.cs" />
<Compile Include="Editor\BuildOverlay.cs" />
<Compile Include="CelestialBodies.cs" />
<Compile Include="Editor\BuildOverlayPartInfo.cs" />
<Compile Include="Editor\BuildOverlayResources.cs" />
<Compile Include="Editor\BuildOverlayVessel.cs" />
- <Compile Include="Editor\BuildToolbar.cs" />
<Compile Include="Editor\PartInfoItem.cs" />
<Compile Include="Editor\ResourceInfoItem.cs" />
<Compile Include="Extensions\FloatExtensions.cs" />
<Compile Include="Extensions\OrbitExtensions.cs" />
<Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Flight\ActionMenuGui.cs" />
+ <Compile Include="Flight\FlightAppLauncher.cs" />
<Compile Include="Flight\Presets\Preset.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\SystemTime.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\VectoredThrustToggle.cs" />
@@ -241,6 +244,22 @@
<HintPath>..\..\Game\KSP_Data\Managed\Assembly-CSharp.dll</HintPath>
<Private>False</Private>
</Reference>
+ <Reference Include="Assembly-CSharp-firstpass">
+ <HintPath>..\..\game\KSP_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="KSPAssets">
+ <HintPath>..\..\game\KSP_Data\Managed\KSPAssets.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="KSPCore">
+ <HintPath>..\..\game\KSP_Data\Managed\KSPCore.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="KSPUtil">
+ <HintPath>..\..\game\KSP_Data\Managed\KSPUtil.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
<Reference Include="System">
<HintPath>..\Game\KSP_Data\Managed\System.dll</HintPath>
<Private>False</Private>
@@ -251,6 +270,10 @@
</Reference>
<Reference Include="UnityEngine">
<HintPath>..\..\Game\KSP_Data\Managed\UnityEngine.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="UnityEngine.UI">
+ <HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
--- a/KerbalEngineer/KeyBinding/KeyBindPopup.cs
+++ b/KerbalEngineer/KeyBinding/KeyBindPopup.cs
@@ -179,6 +179,10 @@
GUILayout.BeginVertical(HighLogic.Skin.textArea);
GUILayout.Label("Key Bind: " + Name);
GUILayout.Label("Selected: " + Binding);
+ if (GUILayout.Button("Clear", HighLogic.Skin.button))
+ {
+ Binding = KeyCode.None;
+ }
GUILayout.EndVertical();
// Window buttons.
--- a/KerbalEngineer/TapeDriveAnimator.cs
+++ b/KerbalEngineer/TapeDriveAnimator.cs
@@ -83,6 +83,8 @@
private bool sceneIsEditor;
private float speed;
private float targetSpeed;
+ private Renderer renderer;
+ private Light light;
#endregion
@@ -120,6 +122,8 @@
public override void OnStart(StartState state)
{
+ renderer = GetComponent<Renderer>();
+
this.random = new Random();
this.StopBakedAnimation();
@@ -167,37 +171,37 @@
if (this.Lights1 != "")
{
this.lights1Transform = this.part.FindModelTransform(this.Lights1);
- this.lights1ShaderOff = this.lights1Transform.renderer.material.shader;
+ this.lights1ShaderOff = renderer.material.shader;
}
if (this.Lights2 != "")
{
this.lights2Transform = this.part.FindModelTransform(this.Lights2);
- this.lights2ShaderOff = this.lights2Transform.renderer.material.shader;
+ this.lights2ShaderOff = renderer.material.shader;
}
if (this.Lights3 != "")
{
this.lights3Transform = this.part.FindModelTransform(this.Lights3);
- this.lights3ShaderOff = this.lights3Transform.renderer.material.shader;
+ this.lights3ShaderOff = renderer.material.shader;
}
if (this.Lights4 != "")
{
this.lights4Transform = this.part.FindModelTransform(this.Lights4);
- this.lights4ShaderOff = this.lights4Transform.renderer.material.shader;
+ this.lights4ShaderOff = renderer.material.shader;
}
if (this.Lights5 != "")
{
this.lights5Transform = this.part.FindModelTransform(this.Lights5);
- this.lights5ShaderOff = this.lights5Transform.renderer.material.shader;
+ this.lights5ShaderOff = renderer.material.shader;
}
if (this.Lights6 != "")
{
this.lights6Transform = this.part.FindModelTransform(this.Lights6);
- this.lights6ShaderOff = this.lights6Transform.renderer.material.shader;
+ this.lights6ShaderOff = renderer.material.shader;
}
this.lightsShaderOn = Shader.Find("Unlit/Texture");
@@ -381,7 +385,7 @@
lightsOn = (this.speed == 0);
}
- lights.renderer.material.shader = lightsOn ? @on : off;
+ lights.GetComponent<Renderer>().material.shader = lightsOn ? @on : off;
}
#endregion
--- a/KerbalEngineer/VesselSimulator/EngineSim.cs
+++ b/KerbalEngineer/VesselSimulator/EngineSim.cs
@@ -388,6 +388,20 @@
break;
case ResourceFlowMode.STACK_PRIORITY_SEARCH:
+ visited.Clear();
+
+ if (SimManager.logOutput)
+ {
+ log = new LogMsg();
+ log.buf.AppendLine("Find " + ResourceContainer.GetResourceName(type) + " sources for " + partSim.name + ":" + partSim.partId);
+ }
+ partSim.GetSourceSet(type, PhysicsGlobals.Stack_PriUsesSurf, allParts, visited, sourcePartSet, log, "");
+ if (SimManager.logOutput && log != null)
+ {
+ MonoBehaviour.print(log.buf);
+ }
+ break;
+
case ResourceFlowMode.STAGE_STACK_FLOW:
case ResourceFlowMode.STAGE_STACK_FLOW_BALANCE:
visited.Clear();
@@ -397,8 +411,8 @@
log = new LogMsg();
log.buf.AppendLine("Find " + ResourceContainer.GetResourceName(type) + " sources for " + partSim.name + ":" + partSim.partId);
}
- partSim.GetSourceSet(type, allParts, visited, sourcePartSet, log, "");
- if (SimManager.logOutput)
+ partSim.GetSourceSet(type, true, allParts, visited, sourcePartSet, log, "");
+ if (SimManager.logOutput && log != null)
{
MonoBehaviour.print(log.buf);
}
--- a/KerbalEngineer/VesselSimulator/PartSim.cs
+++ b/KerbalEngineer/VesselSimulator/PartSim.cs
@@ -42,6 +42,7 @@
public int decoupledInStage;
public bool fuelCrossFeed;
public List<PartSim> fuelTargets = new List<PartSim>();
+ public List<PartSim> surfaceMountFuelTargets = new List<PartSim>();
public bool hasModuleEngines;
public bool hasMultiModeEngine;
@@ -416,11 +417,7 @@
mass += resources.GetResourceMass(resources.Types[i]);
}
- if (hasVessel == false && isFairing && currentStage > inverseStage)
- {
- mass += fairingMass;
- }
- else if (hasVessel && isFairing && currentStage <= inverseStage)
+ if (isFairing && currentStage <= inverseStage)
{
mass -= fairingMass;
}
@@ -451,7 +448,7 @@
// All functions below this point must not rely on the part member (it may be null)
//
- public void GetSourceSet(int type, List<PartSim> allParts, HashSet<PartSim> visited, HashSet<PartSim> allSources, LogMsg log, String indent)
+ public void GetSourceSet(int type, bool includeSurfaceMountedParts, List<PartSim> allParts, HashSet<PartSim> visited, HashSet<PartSim> allSources, LogMsg log, String indent)
{
if (log != null)
{
@@ -489,7 +486,29 @@
{
if (log != null) log.buf.AppendLine(indent + "Adding fuel target as source (" + partSim.name + ":" + partSim.partId + ")");
- partSim.GetSourceSet(type, allParts, visited, allSources, log, indent);
+ partSim.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent);
+ }
+ }
+ }
+
+ // check surface mounted fuel targets
+ if (includeSurfaceMountedParts)
+ {
+ for (int i = 0; i < surfaceMountFuelTargets.Count; i++)
+ {
+ PartSim partSim = this.surfaceMountFuelTargets[i];
+ if (partSim != null)
+ {
+ if (visited.Contains(partSim))
+ {
+ if (log != null) log.buf.AppendLine(indent + "Fuel target already visited, skipping (" + partSim.name + ":" + partSim.partId + ")");
+ }
+ else
+ {
+ if (log != null) log.buf.AppendLine(indent + "Adding fuel target as source (" + partSim.name + ":" + partSim.partId + ")");
+
+ partSim.GetSourceSet(type, true, allParts, visited, allSources, log, indent);
+ }
}
}
}
@@ -529,7 +548,7 @@
{
if (log != null) log.buf.AppendLine(indent + "Adding attached part as source (" + attachSim.attachedPartSim.name + ":" + attachSim.attachedPartSim.partId + ")");
- attachSim.attachedPartSim.GetSourceSet(type, allParts, visited, allSources, log, indent);
+ attachSim.attachedPartSim.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent);
}
}
}
@@ -576,7 +595,7 @@
else
{
lastCount = allSources.Count;
- this.parent.GetSourceSet(type, allParts, visited, allSources, log, indent);
+ this.parent.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent);
if (allSources.Count > lastCount)
{
if (log != null) log.buf.AppendLine(indent + "Returning " + (allSources.Count - lastCount) + " parent sources (" + this.name + ":" + this.partId + ")");
@@ -679,10 +698,10 @@
if (partSimLookup.TryGetValue(part.parent, out parent))
{
if (log != null) log.buf.AppendLine("Parent part is " + parent.name + ":" + parent.partId);
- if (part.attachMode == AttachModes.SRF_ATTACH && part.attachRules.srfAttach && part.fuelCrossFeed && parent.fuelCrossFeed)
- {
- if (log != null) log.buf.AppendLine("Added " + name + " to " + parent.name + " fuel targets. (srf_attach with crossfeed)");
- parent.fuelTargets.Add(this);
+ if (part.attachMode == AttachModes.SRF_ATTACH && part.attachRules.srfAttach && part.fuelCrossFeed && part.parent.fuelCrossFeed)
+ {
+ if (log != null) log.buf.AppendLine("Added " + name + " to " + parent.name + " surface mounted fuel targets.");
+ parent.surfaceMountFuelTargets.Add(this);
}
}
else
Binary files /dev/null and b/Output/KerbalEngineer/KerbalEngineer differ
Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
--- /dev/null
+++ b/Output/KerbalEngineer/KerbalEngineer.manifest
@@ -1,1 +1,7 @@
+ManifestFileVersion: 0
+AssetBundleManifest:
+ AssetBundleInfos:
+ Info_0:
+ Name: images
+ Dependencies: {}
--- a/Output/KerbalEngineer/KerbalEngineer.version
+++ b/Output/KerbalEngineer/KerbalEngineer.version
@@ -6,7 +6,7 @@
"MAJOR":1,
"MINOR":0,
"PATCH":19,
- "BUILD":2
+ "BUILD":4
},
"KSP_VERSION":
{
Binary files a/Output/KerbalEngineer/Textures/ToolbarIcon.png and /dev/null differ
Binary files /dev/null and b/Output/KerbalEngineer/images differ
--- /dev/null
+++ b/Output/KerbalEngineer/images.manifest
@@ -1,1 +1,21 @@
+ManifestFileVersion: 0
+CRC: 343068190
+Hashes:
+ AssetFileHash:
+ serializedVersion: 2
+ Hash: 73ea3b515ebabb6bdff35e92d0c2ad1b
+ TypeTreeHash:
+ serializedVersion: 2
+ Hash: 00ffc586b3c4c12c72c7fed589b81235
+HashAppended: 0
+ClassTypes:
+- Class: 28
+ Script: {instanceID: 0}
+- Class: 213
+ Script: {instanceID: 0}
+Assets:
+- Assets/Images/ui-drop-down.psd
+- Assets/Images/app-launcher-icon.psd
+- Assets/Images/flight-menu-background.psd
+Dependencies: []
Binary files /dev/null and b/ProjectSettings/AudioManager.asset differ
Binary files /dev/null and b/ProjectSettings/DynamicsManager.asset differ
Binary files /dev/null and b/ProjectSettings/EditorBuildSettings.asset differ
Binary files /dev/null and b/ProjectSettings/EditorSettings.asset differ
Binary files /dev/null and b/ProjectSettings/GraphicsSettings.asset differ
Binary files /dev/null and b/ProjectSettings/InputManager.asset differ
Binary files /dev/null and b/ProjectSettings/NavMeshAreas.asset differ
Binary files /dev/null and b/ProjectSettings/NetworkManager.asset differ
Binary files /dev/null and b/ProjectSettings/Physics2DSettings.asset differ
Binary files /dev/null and b/ProjectSettings/ProjectSettings.asset differ
--- /dev/null
+++ b/ProjectSettings/ProjectVersion.txt
@@ -1,1 +1,3 @@
+m_EditorVersion: 5.2.4f1
+m_StandardAssetsVersion: 0
Binary files /dev/null and b/ProjectSettings/QualitySettings.asset differ
Binary files /dev/null and b/ProjectSettings/TagManager.asset differ
Binary files /dev/null and b/ProjectSettings/TimeManager.asset differ
Binary files /dev/null and b/ProjectSettings/UnityAdsSettings.asset differ
Binary files /dev/null and b/ProjectSettings/UnityAnalyticsManager.asset differ
Binary files /dev/null and b/Publishing/CurseLogo.png differ
Binary files /dev/null and b/Publishing/CurseLogo.psd differ