From 3b7bebb23086b046313d0fafba33bc15db8d1df0 Mon Sep 17 00:00:00 2001 From: Real-Gecko Date: Fri, 6 May 2016 23:09:37 +0600 Subject: [PATCH 1/6] Update for 1.1.2 --- Source/LightsOut/LOAmbient.cs | 11 ++++++----- Source/LightsOut/LightsOut.cs | 6 ++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Source/LightsOut/LOAmbient.cs b/Source/LightsOut/LOAmbient.cs index e39d74a..72af01c 100644 --- a/Source/LightsOut/LOAmbient.cs +++ b/Source/LightsOut/LOAmbient.cs @@ -31,10 +31,11 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb originalLightmapData = LightmapSettings.lightmaps; // Create fake skybox - skyCamera = new GameObject("NightSkyboxCamera", typeof(Camera)); - skyCamera.camera.depth = mainCamera.depth - 1; - skyCamera.camera.clearFlags = CameraClearFlags.Skybox; - skyCamera.camera.cullingMask = 0; + skyCamera = new GameObject("NightSkyboxCamera"); + skyCamera.AddComponent(); + skyCamera.GetComponent().depth = mainCamera.depth - 1; + skyCamera.GetComponent().clearFlags = CameraClearFlags.Skybox; + skyCamera.GetComponent().cullingMask = 0; nightSkyboxMaterial = new Material(originalSkybox); @@ -114,7 +115,7 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb public void SetAmbientMode(EditorTime time) { if (time == EditorTime.Night) { - RenderSettings.ambientLight = new Color(0.15f, 0.15f, 0.15f); + RenderSettings.ambientLight = new Color(0.1f, 0.1f, 0.1f); RenderSettings.fog = false; mainCamera.clearFlags = CameraClearFlags.Nothing; LightmapSettings.lightmaps = new LightmapData[] { }; diff --git a/Source/LightsOut/LightsOut.cs b/Source/LightsOut/LightsOut.cs index 2498d77..6905f5f 100644 --- a/Source/LightsOut/LightsOut.cs +++ b/Source/LightsOut/LightsOut.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; -using UnityEngine; +using UnityEngine; +using KSP; +using KSP.UI.Screens; namespace LightsOut { [KSPAddon(KSPAddon.Startup.EditorAny, false)] @@ -132,7 +134,7 @@ void SetPartLights(bool lightsEnabled) { void LateUpdate() { if (launcherButtonNeedsInitializing) { GameEvents.onGUIApplicationLauncherReady.Add(OnGUIAppLauncherReady); - OnGUIAppLauncherReady(); +// OnGUIAppLauncherReady(); launcherButtonNeedsInitializing = false; } if ((ambientManager != null) && (currentTime == EditorTime.Night)) { From 4f7ba2fa0f1de3f225ab0765690b35c3c68ed1fb Mon Sep 17 00:00:00 2001 From: Real-Gecko Date: Sat, 7 May 2016 03:29:58 +0600 Subject: [PATCH 2/6] Integrated changes by @kujuman Changed RenderSettings.ambientMode to UnityEngine.Rendering.AmbientMode.Flat during night time. --- Source/LightsOut/LOAmbient.cs | 26 ++++++++------- Source/LightsOut/LOExternalLights.cs | 49 ++++++++++++++++------------ 2 files changed, 44 insertions(+), 31 deletions(-) diff --git a/Source/LightsOut/LOAmbient.cs b/Source/LightsOut/LOAmbient.cs index 72af01c..7a89226 100644 --- a/Source/LightsOut/LOAmbient.cs +++ b/Source/LightsOut/LOAmbient.cs @@ -15,7 +15,8 @@ class LOAmbient { // Original Configurations int originalCullingMask; CameraClearFlags originalClearFlags; - Color originalAmbientLight; + Color originalAmbientLight; + UnityEngine.Rendering.AmbientMode originalAmbientMode; LightmapData[] originalLightmapData; Material originalSkybox; @@ -28,11 +29,12 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb originalClearFlags = camera.clearFlags; originalAmbientLight = RenderSettings.ambientLight; originalSkybox = RenderSettings.skybox; - originalLightmapData = LightmapSettings.lightmaps; + originalLightmapData = LightmapSettings.lightmaps; + originalAmbientMode = RenderSettings.ambientMode; // Create fake skybox - skyCamera = new GameObject("NightSkyboxCamera"); - skyCamera.AddComponent(); + skyCamera = new GameObject("NightSkyboxCamera", typeof(Camera)); +// skyCamera.AddComponent(); skyCamera.GetComponent().depth = mainCamera.depth - 1; skyCamera.GetComponent().clearFlags = CameraClearFlags.Skybox; skyCamera.GetComponent().cullingMask = 0; @@ -99,14 +101,14 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb foreach (GameObject gameObject in gameObjects) { // These are all subsets of model_sph_interior_lights_v16 // Component_611_1 to 6 is window reflection - ChangeLayersRecursively(gameObject, newLayer, "Component_611_1"); - ChangeLayersRecursively(gameObject, newLayer, "Component_611_2"); - ChangeLayersRecursively(gameObject, newLayer, "Component_611_3"); +// ChangeLayersRecursively(gameObject, newLayer, "Component_611_1"); +// ChangeLayersRecursively(gameObject, newLayer, "Component_611_2"); +// ChangeLayersRecursively(gameObject, newLayer, "Component_611_3"); ChangeLayersRecursively(gameObject, newLayer, "Component_611_4"); ChangeLayersRecursively(gameObject, newLayer, "Component_611_5"); ChangeLayersRecursively(gameObject, newLayer, "Component_611_6"); - //ChangeLayersRecursively(gameObject, newLayer, "Component_749_1"); // Glow from Side Lights! - //ChangeLayersRecursively(gameObject, newLayer, "Component_750_1"); // Lights! + ChangeLayersRecursively(gameObject, newLayer, "Component_749_1"); // Glow from Side Lights! + ChangeLayersRecursively(gameObject, newLayer, "Component_750_1"); // Lights! } break; } @@ -114,8 +116,9 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb } public void SetAmbientMode(EditorTime time) { - if (time == EditorTime.Night) { - RenderSettings.ambientLight = new Color(0.1f, 0.1f, 0.1f); + if (time == EditorTime.Night) { + RenderSettings.ambientLight = new Color(0.15f, 0.15f, 0.15f); + RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Flat; RenderSettings.fog = false; mainCamera.clearFlags = CameraClearFlags.Nothing; LightmapSettings.lightmaps = new LightmapData[] { }; @@ -125,6 +128,7 @@ public void SetAmbientMode(EditorTime time) { else { RenderSettings.ambientLight = originalAmbientLight; RenderSettings.fog = true; + RenderSettings.ambientMode = originalAmbientMode; RenderSettings.skybox = originalSkybox; mainCamera.clearFlags = originalClearFlags; LightmapSettings.lightmaps = originalLightmapData; diff --git a/Source/LightsOut/LOExternalLights.cs b/Source/LightsOut/LOExternalLights.cs index d3a6e25..663ff84 100644 --- a/Source/LightsOut/LOExternalLights.cs +++ b/Source/LightsOut/LOExternalLights.cs @@ -34,9 +34,10 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:53:55.158] Light 5: Spotlight, RGBA(1.000, 1.000, 1.000, 1.000), Default ON //[LOG 17:53:55.159] Parent: Day Lights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightSun", parentName = "Day Lights" }, - new LightToChange(){ name = "Spotlight", parentName = "Day Lights" } - }; + new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, + new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Shadow Light", parentName = "Day Lights" } }; break; case EditorLevel.Level2: @@ -57,10 +58,11 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:56:18.874] Light 7: Spotlight, RGBA(1.000, 1.000, 1.000, 1.000), Default ON //[LOG 17:56:18.875] Parent: Day Lights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightSun", parentName = "Day Lights" }, - new LightToChange(){ name = "Spotlight", parentName = "Day Lights" }, - new LightToChange(){ name = "roofFill", parentName = "Day Lights" } - }; + new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, + new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Shadow Light", parentName = "Day Lights" } + }; break; case EditorLevel.Level3: @@ -85,9 +87,11 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:58:21.712] Light 9: Spotlight, RGBA(1.000, 1.000, 1.000, 1.000), Default ON //[LOG 17:58:21.713] Parent: Day Lights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightSun", parentName = "Day Lights" }, - new LightToChange(){ name = "Spotlight", parentName = "Day Lights" } - }; + new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, + new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Shadow Light", parentName = "Day Lights" } + }; break; } } @@ -111,9 +115,11 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:54:50.077] Light 7: SpotlightWindow, RGBA(0.866, 0.863, 0.903, 1.000), Default OFF //[LOG 17:54:50.078] Parent: Editors_DayLights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightCraft", parentName = "Editors_DayLights" }, - new LightToChange(){ name = "SpotlightExteriorSun", parentName = "Editors_DayLights" } - }; + new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_Shadow Light", parentName = "Lighting_Realtime" } + }; break; case EditorLevel.Level2: @@ -134,9 +140,11 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:57:04.724] Light 7: SpotlightWindow, RGBA(0.866, 0.863, 0.903, 1.000), Default OFF //[LOG 17:57:04.725] Parent: Editors_DayLights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightCraft", parentName = "Editors_DayLights" }, - new LightToChange(){ name = "SpotlightExteriorSun", parentName = "Editors_DayLights" } - }; + new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_Shadow Light", parentName = "Lighting_Realtime" } + }; break; case EditorLevel.Level3: @@ -157,10 +165,11 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:59:41.833] Light 7: SpotlightWindow, RGBA(0.866, 0.863, 0.903, 1.000), Default ON //[LOG 17:59:41.834] Parent: Editors_DayLights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightCraft", parentName = "Editors_DayLights" }, - new LightToChange(){ name = "SpotlightExteriorSun", parentName = "Editors_DayLights" }, - new LightToChange(){ name = "SpotlightWindow", parentName = "Editors_DayLights" } - }; + new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_Shadow Light", parentName = "Lighting_Realtime" } + }; break; } } From 3c6b9d72bd0808eadf8e5b3dc7f6a671c7ea6f8f Mon Sep 17 00:00:00 2001 From: Real-Gecko Date: Sun, 16 Oct 2016 10:28:40 +0600 Subject: [PATCH 3/6] Version 0.2.0 --- .gitignore | 95 +++++++---------- GameData/LightsOut/LightsOut.dll | Bin 16896 -> 16896 bytes LightsOut.sln | 17 +++ {Source/LightsOut => LightsOut}/LOAmbient.cs | 30 +++--- {Source/LightsOut => LightsOut}/LOEnums.cs | 22 ++-- .../LOExternalLights.cs | 38 +++---- {Source/LightsOut => LightsOut}/LOShaders.cs | 0 {Source/LightsOut => LightsOut}/LightsOut.cs | 100 ++++++++++++------ .../LightsOut => LightsOut}/LightsOut.csproj | 18 ++-- .../Properties/AssemblyInfo.cs | 2 +- README.md | 12 ++- Source/LightsOut.sln | 45 -------- 12 files changed, 187 insertions(+), 192 deletions(-) create mode 100644 LightsOut.sln rename {Source/LightsOut => LightsOut}/LOAmbient.cs (95%) rename {Source/LightsOut => LightsOut}/LOEnums.cs (92%) rename {Source/LightsOut => LightsOut}/LOExternalLights.cs (99%) rename {Source/LightsOut => LightsOut}/LOShaders.cs (100%) rename {Source/LightsOut => LightsOut}/LightsOut.cs (54%) rename {Source/LightsOut => LightsOut}/LightsOut.csproj (68%) rename {Source/LightsOut => LightsOut}/Properties/AssemblyInfo.cs (96%) delete mode 100644 Source/LightsOut.sln diff --git a/.gitignore b/.gitignore index 7d5584c..7bbcfed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,55 +1,40 @@ -# Created by https://www.gitignore.io - -### XamarinStudio ### -bin/ -obj/ -*.userprefs - - -### OSX ### -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - - -### Windows ### -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk +#Autosave files +*~ + +#build +[Oo]bj/ +[Bb]in/ +packages/ +TestResults/ + +# globs +Makefile.in +*.DS_Store +*.sln.cache +*.suo +*.cache +*.pidb +*.userprefs +*.usertasks +config.log +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.user +*.tar.gz +tarballs/ +test-results/ +Thumbs.db + +#Mac bundle stuff +*.dmg +*.app + +#resharper +*_Resharper.* +*.Resharper + +#dotCover +*.dotCover diff --git a/GameData/LightsOut/LightsOut.dll b/GameData/LightsOut/LightsOut.dll index dfca70815205864916f3c167689bed918a0d13cc..b095a21c57e44f08c573a45736aae2313e168b77 100755 GIT binary patch literal 16896 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 literal 16896 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 Nt-<|w@&6kO{0A%e4w?V} diff --git a/LightsOut.sln b/LightsOut.sln new file mode 100644 index 0000000..dc79df0 --- /dev/null +++ b/LightsOut.sln @@ -0,0 +1,17 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LightsOut", "LightsOut\LightsOut.csproj", "{DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/Source/LightsOut/LOAmbient.cs b/LightsOut/LOAmbient.cs similarity index 95% rename from Source/LightsOut/LOAmbient.cs rename to LightsOut/LOAmbient.cs index 7a89226..cf11af9 100644 --- a/Source/LightsOut/LOAmbient.cs +++ b/LightsOut/LOAmbient.cs @@ -1,4 +1,4 @@ -using System; +using System; using UnityEngine; namespace LightsOut { @@ -15,7 +15,7 @@ class LOAmbient { // Original Configurations int originalCullingMask; CameraClearFlags originalClearFlags; - Color originalAmbientLight; + Color originalAmbientLight; UnityEngine.Rendering.AmbientMode originalAmbientMode; LightmapData[] originalLightmapData; Material originalSkybox; @@ -29,40 +29,40 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb originalClearFlags = camera.clearFlags; originalAmbientLight = RenderSettings.ambientLight; originalSkybox = RenderSettings.skybox; - originalLightmapData = LightmapSettings.lightmaps; + originalLightmapData = LightmapSettings.lightmaps; originalAmbientMode = RenderSettings.ambientMode; // Create fake skybox - skyCamera = new GameObject("NightSkyboxCamera", typeof(Camera)); + skyCamera = new GameObject("NightSkyboxCamera", typeof(Camera)); // skyCamera.AddComponent(); - skyCamera.GetComponent().depth = mainCamera.depth - 1; - skyCamera.GetComponent().clearFlags = CameraClearFlags.Skybox; + skyCamera.GetComponent().depth = mainCamera.depth - 1; + skyCamera.GetComponent().clearFlags = CameraClearFlags.Skybox; skyCamera.GetComponent().cullingMask = 0; nightSkyboxMaterial = new Material(originalSkybox); // GalaxyTex_PositiveX should be viewed outside window - Debug.Log("LightsOut: Loading Night Sky Textures"); + // Debug.Log("LightsOut: Loading Night Sky Textures"); foreach (Material material in Resources.FindObjectsOfTypeAll()) { Texture texture = material.mainTexture; if (texture) { switch (material.name) { - case "ZP (Instance)": + case "ZP": nightSkyboxMaterial.SetTexture("_FrontTex", material.mainTexture); break; - case "ZN (Instance)": + case "ZN": nightSkyboxMaterial.SetTexture("_BackTex", material.mainTexture); break; - case "XP (Instance)": + case "XP": nightSkyboxMaterial.SetTexture("_LeftTex", material.mainTexture); break; - case "XN (Instance)": + case "XN": nightSkyboxMaterial.SetTexture("_RightTex", material.mainTexture); break; - case "YP (Instance)": + case "YP": nightSkyboxMaterial.SetTexture("_UpTex", material.mainTexture); break; - case "YN (Instance)": + case "YN": nightSkyboxMaterial.SetTexture("_DownTex", material.mainTexture); break; default: @@ -116,8 +116,8 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb } public void SetAmbientMode(EditorTime time) { - if (time == EditorTime.Night) { - RenderSettings.ambientLight = new Color(0.15f, 0.15f, 0.15f); + if (time == EditorTime.Night) { + RenderSettings.ambientLight = new Color(0.15f, 0.15f, 0.15f); RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Flat; RenderSettings.fog = false; mainCamera.clearFlags = CameraClearFlags.Nothing; diff --git a/Source/LightsOut/LOEnums.cs b/LightsOut/LOEnums.cs similarity index 92% rename from Source/LightsOut/LOEnums.cs rename to LightsOut/LOEnums.cs index db6ccfe..5f43876 100644 --- a/Source/LightsOut/LOEnums.cs +++ b/LightsOut/LOEnums.cs @@ -1,12 +1,12 @@ -using System; - -public enum EditorLevel { - Level1 = 1, - Level2 = 2, - Level3 = 3 -} - -public enum EditorTime { - Day = 1, - Night = 2 +using System; + +public enum EditorLevel { + Level1 = 1, + Level2 = 2, + Level3 = 3 +} + +public enum EditorTime { + Day = 1, + Night = 2 } \ No newline at end of file diff --git a/Source/LightsOut/LOExternalLights.cs b/LightsOut/LOExternalLights.cs similarity index 99% rename from Source/LightsOut/LOExternalLights.cs rename to LightsOut/LOExternalLights.cs index 663ff84..5de2e32 100644 --- a/Source/LightsOut/LOExternalLights.cs +++ b/LightsOut/LOExternalLights.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using UnityEngine; @@ -34,9 +34,9 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:53:55.158] Light 5: Spotlight, RGBA(1.000, 1.000, 1.000, 1.000), Default ON //[LOG 17:53:55.159] Parent: Day Lights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, - new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, - new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, + new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, new LightToChange(){ name = "Shadow Light", parentName = "Day Lights" } }; break; @@ -58,9 +58,9 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:56:18.874] Light 7: Spotlight, RGBA(1.000, 1.000, 1.000, 1.000), Default ON //[LOG 17:56:18.875] Parent: Day Lights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, - new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, - new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, + new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, new LightToChange(){ name = "Shadow Light", parentName = "Day Lights" } }; break; @@ -87,9 +87,9 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:58:21.712] Light 9: Spotlight, RGBA(1.000, 1.000, 1.000, 1.000), Default ON //[LOG 17:58:21.713] Parent: Day Lights lightsToChange = new List() { - new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, - new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, - new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "SpotlightCraft", parentName = "Day Lights" }, + new LightToChange(){ name = "SpotlightSun", parentName = "VAB_interior_modern" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, new LightToChange(){ name = "Shadow Light", parentName = "Day Lights" } }; break; @@ -115,9 +115,9 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:54:50.077] Light 7: SpotlightWindow, RGBA(0.866, 0.863, 0.903, 1.000), Default OFF //[LOG 17:54:50.078] Parent: Editors_DayLights lightsToChange = new List() { - new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, - new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, - new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, new LightToChange(){ name = "Realtime_Shadow Light", parentName = "Lighting_Realtime" } }; break; @@ -140,9 +140,9 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:57:04.724] Light 7: SpotlightWindow, RGBA(0.866, 0.863, 0.903, 1.000), Default OFF //[LOG 17:57:04.725] Parent: Editors_DayLights lightsToChange = new List() { - new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, - new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, - new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, new LightToChange(){ name = "Realtime_Shadow Light", parentName = "Lighting_Realtime" } }; break; @@ -165,9 +165,9 @@ public LOExternalLights(EditorFacility facility, EditorLevel level) { //[LOG 17:59:41.833] Light 7: SpotlightWindow, RGBA(0.866, 0.863, 0.903, 1.000), Default ON //[LOG 17:59:41.834] Parent: Editors_DayLights lightsToChange = new List() { - new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, - new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, - new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightCraft", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_ExteriorSun", parentName = "Lighting_Realtime" }, + new LightToChange(){ name = "Realtime_SpotlightScenery", parentName = "Lighting_Realtime" }, new LightToChange(){ name = "Realtime_Shadow Light", parentName = "Lighting_Realtime" } }; break; diff --git a/Source/LightsOut/LOShaders.cs b/LightsOut/LOShaders.cs similarity index 100% rename from Source/LightsOut/LOShaders.cs rename to LightsOut/LOShaders.cs diff --git a/Source/LightsOut/LightsOut.cs b/LightsOut/LightsOut.cs similarity index 54% rename from Source/LightsOut/LightsOut.cs rename to LightsOut/LightsOut.cs index 6905f5f..1c8a761 100644 --- a/Source/LightsOut/LightsOut.cs +++ b/LightsOut/LightsOut.cs @@ -1,13 +1,15 @@ -using System; +using System; using System.Collections.Generic; -using UnityEngine; -using KSP; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; using KSP.UI.Screens; namespace LightsOut { [KSPAddon(KSPAddon.Startup.EditorAny, false)] class LightsOut : MonoBehaviour { + private static LightsOut Instance; EditorTime currentTime = EditorTime.Day; bool currentPartLightsEnabled = false; bool firstTime = true; @@ -18,12 +20,31 @@ class LightsOut : MonoBehaviour { LOExternalLights externalLightsManager; ApplicationLauncherButton launcherButton; - bool launcherButtonNeedsInitializing = true; +// bool launcherButtonNeedsInitializing = true; string munIcon = "LightsOut/Textures/mun_icon"; string sunIcon = "LightsOut/Textures/sun_icon"; + public void Awake() + { + if (Instance != null) { + Destroy (this); + return; + } + Instance = this; + } + + public void Start() { + GameEvents.onGUIApplicationLauncherReady.Add(OnGUIAppLauncherReady); + } + + void OnDestroy() { + GameEvents.onGUIApplicationLauncherReady.Remove (OnGUIAppLauncherReady); + if (launcherButton != null) + ApplicationLauncher.Instance.RemoveModApplication (launcherButton); + } + void OnGUIAppLauncherReady() { - if (ApplicationLauncher.Ready) { + if (launcherButton == null) { launcherButton = ApplicationLauncher.Instance.AddModApplication( ToggleDayNight, ToggleDayNight, @@ -40,25 +61,23 @@ void ToggleDayNight() { SetTime((currentTime == EditorTime.Day) ? EditorTime.Night : EditorTime.Day); } - void OnDestroy() { - if (launcherButton != null) { - ApplicationLauncher.Instance.RemoveModApplication(launcherButton); - } - GameEvents.onGUIApplicationLauncherReady.Remove(OnGUIAppLauncherReady); - launcherButtonNeedsInitializing = true; - } - void Update() { - if (Input.GetKeyDown(KeyCode.L)) { - SetTime((currentTime == EditorTime.Day) ? EditorTime.Night : EditorTime.Day); - } - else if (Input.GetKeyDown(KeyCode.U)) { - SetPartLights(!currentPartLightsEnabled); + // Ignore keystrokes when a text field has focus (e.g. part search, craft title box) + GameObject obj = EventSystem.current.currentSelectedGameObject; + bool inputFieldIsFocused = (obj != null && obj.GetComponent () != null && obj.GetComponent ().isFocused); + if (inputFieldIsFocused) + return; + + // changed from L to P, to avoid conflicts with RCS Build Aid (translation keys) and RPM Camera (toggle all camera FOV's) + if (Input.GetKeyDown (KeyCode.P)) { + SetTime ((currentTime == EditorTime.Day) ? EditorTime.Night : EditorTime.Day); + } else if (Input.GetKeyDown (KeyCode.U)) { + SetPartLights (!currentPartLightsEnabled); } } void Setup() { - Debug.Log("LightsOut: First Time Setup"); +// Debug.Log("LightsOut: First Time Setup"); EditorFacility facility = EditorDriver.editorFacility; EditorLevel level = 0; @@ -75,7 +94,7 @@ void Setup() { break; } - Debug.Log("LightsOut: Entered " + facility + " " + level); +// Debug.Log("LightsOut: Entered " + facility + " " + level); // Set up ambient and shader managers GameObject[] gameObjects = FindObjectsOfType(typeof(GameObject)) as GameObject[]; @@ -97,21 +116,21 @@ void SetTime(EditorTime newTime) { } currentTime = newTime; - Debug.Log("LightsOut: Switching to " + newTime + " Mode"); +// Debug.Log("LightsOut: Switching to " + newTime + " Mode"); // Toggle Shaders - Debug.Log("LightsOut: Updating Shaders"); +// Debug.Log("LightsOut: Updating Shaders"); shaderManager.SetShaderMode(newTime); // Toggle ambient settings - Debug.Log("LightsOut: Updating Ambient Light and Skybox"); +// Debug.Log("LightsOut: Updating Ambient Light and Skybox"); ambientManager.SetAmbientMode(newTime); //toggle VAB/SPH lights - Debug.Log("LightsOut: Updating VAB/SPH Lights"); +// Debug.Log("LightsOut: Updating VAB/SPH Lights"); externalLightsManager.SetExternalLightsMode(newTime, FindObjectsOfType(typeof(Light)) as Light[]); - // Toggle all part lights + // Toggle all part lights*/ SetPartLights(newTime == EditorTime.Night); if (newTime == EditorTime.Night) { @@ -124,23 +143,34 @@ void SetTime(EditorTime newTime) { void SetPartLights(bool lightsEnabled) { currentPartLightsEnabled = lightsEnabled; - Debug.Log("LightsOut: Turning Part Lights " + (lightsEnabled ? "on" : "off")); - List shipParts = EditorLogic.fetch.ship.parts; - foreach (Part part in shipParts) { - part.SendEvent(lightsEnabled ? "LightsOn" : "LightsOff"); +// Debug.Log("LightsOut: Turning Part Lights " + (lightsEnabled ? "on" : "off")); + foreach (Part part in EditorLogic.fetch.ship.parts) { + // Lights + if (part.FindModuleImplementing() != null) + part.SendEvent(lightsEnabled ? "LightsOn" : "LightsOff"); + + // Pods + foreach (ModuleColorChanger changer in part.FindModulesImplementing()) + if (changer.defaultActionGroup == KSPActionGroup.Light) + changer.animState = lightsEnabled; //changer.ToggleEvent(); + + // Cabins, can be toggled only + foreach (ModuleAnimateGeneric animator in part.FindModulesImplementing()) { + if (animator.defaultActionGroup == KSPActionGroup.Light) + animator.Toggle (); + } } } void LateUpdate() { - if (launcherButtonNeedsInitializing) { - GameEvents.onGUIApplicationLauncherReady.Add(OnGUIAppLauncherReady); -// OnGUIAppLauncherReady(); - launcherButtonNeedsInitializing = false; - } +// if (launcherButtonNeedsInitializing) { +// GameEvents.onGUIApplicationLauncherReady.Add(OnGUIAppLauncherReady); +//// OnGUIAppLauncherReady(); +// launcherButtonNeedsInitializing = false; +// } if ((ambientManager != null) && (currentTime == EditorTime.Night)) { ambientManager.rotateSkybox(); } } } } - diff --git a/Source/LightsOut/LightsOut.csproj b/LightsOut/LightsOut.csproj similarity index 68% rename from Source/LightsOut/LightsOut.csproj rename to LightsOut/LightsOut.csproj index b5c95e1..288a3e5 100644 --- a/Source/LightsOut/LightsOut.csproj +++ b/LightsOut/LightsOut.csproj @@ -28,24 +28,22 @@ false - - + + + - ..\..\..\..\..\Library\Application Support\Steam\SteamApps\common\Kerbal Space Program\KSP.app\Contents\Data\Managed\Assembly-CSharp.dll - False + ..\..\KSP\KSP_Data\Managed\Assembly-CSharp.dll - - ..\..\..\..\..\Library\Application Support\Steam\SteamApps\common\Kerbal Space Program\KSP.app\Contents\Data\Managed\UnityEngine.dll - False + + ..\..\KSP\KSP_Data\Managed\UnityEngine.UI.dll - - ..\..\..\..\..\Library\Application Support\Steam\SteamApps\common\Kerbal Space Program\KSP.app\Contents\Data\Managed\Assembly-CSharp-firstpass.dll - False + + ..\..\KSP\KSP_Data\Managed\UnityEngine.dll diff --git a/Source/LightsOut/Properties/AssemblyInfo.cs b/LightsOut/Properties/AssemblyInfo.cs similarity index 96% rename from Source/LightsOut/Properties/AssemblyInfo.cs rename to LightsOut/Properties/AssemblyInfo.cs index 844a592..fd456eb 100644 --- a/Source/LightsOut/Properties/AssemblyInfo.cs +++ b/LightsOut/Properties/AssemblyInfo.cs @@ -17,7 +17,7 @@ // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. -[assembly: AssemblyVersion ("1.0.*")] +[assembly: AssemblyVersion ("0.2.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. diff --git a/README.md b/README.md index 9e657d4..f396d35 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,21 @@ # LightsOut LightsOut is a Kerbal Space Program add-on that allows the user to switch between day and night mode in the VAB and SPH. +This build is forked from the official LightsOut 1.0.5 code, and includes these enhancements: + +* Fwiffo's edit to change hanger lights hotkey from L to P to avoid conflicts with RCS Build Aid (thruster translation) and RPM JSI Camera (toggle all camera FOV's) +* Fwiffo's edit to incorporate linuxgurugamer's fix to avoid capturing hotkeys when focus is in a text field (e.g. parts search box) + https://github.com/linuxgurugamer/EditorExtensionsRedux/commit/72dadd79c0611fb52b15f526ebfe19b67d2b8d57#diff-d9ad04479ff4a0b367ff88d3bc07ec9a +* RealGecko's May 6, 2016 recompile for 1.1.2: + http://forum.kerbalspaceprogram.com/index.php?/topic/102558-105-lightsout-v015-daynight-mode-in-vabsph/&do=findComment&comment=2565403 +* Kujuman's contributions to make it look better: + http://forum.kerbalspaceprogram.com/index.php?/topic/102558-105-lightsout-v015-daynight-mode-in-vabsph/&do=findComment&comment=2565903 + ### Download [v0.1.5](https://github.com/nodrog6/LightsOut/releases/download/v0.1.5/LightsOut-v0.1.5.zip) (Compatible with Kerbal Space Program v1.0.5) ### Hotkeys -* **L** - Toggle day/night and all part lights +* **P** - Toggle day/night and all part lights * **U** - Toggle all part lights ### Installation diff --git a/Source/LightsOut.sln b/Source/LightsOut.sln deleted file mode 100644 index 5befa0c..0000000 --- a/Source/LightsOut.sln +++ /dev/null @@ -1,45 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LightsOut", "LightsOut\LightsOut.csproj", "{DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB34E9C6-59E1-4313-B8BF-CE6039EEAAE9}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - Policies = $0 - $0.TextStylePolicy = $1 - $1.inheritsSet = null - $1.scope = text/x-csharp - $0.CSharpFormattingPolicy = $2 - $2.NamespaceBraceStyle = EndOfLine - $2.ClassBraceStyle = EndOfLine - $2.InterfaceBraceStyle = EndOfLine - $2.StructBraceStyle = EndOfLine - $2.EnumBraceStyle = EndOfLine - $2.MethodBraceStyle = EndOfLine - $2.ConstructorBraceStyle = EndOfLine - $2.DestructorBraceStyle = EndOfLine - $2.ElseNewLinePlacement = NewLine - $2.CatchNewLinePlacement = NewLine - $2.FinallyNewLinePlacement = NewLine - $2.BeforeMethodDeclarationParentheses = False - $2.BeforeMethodCallParentheses = False - $2.BeforeConstructorDeclarationParentheses = False - $2.BeforeDelegateDeclarationParentheses = False - $2.AfterDelegateDeclarationParameterComma = True - $2.NewParentheses = False - $2.SpacesBeforeBrackets = False - $2.inheritsSet = Mono - $2.inheritsScope = text/x-csharp - $2.scope = text/x-csharp - EndGlobalSection -EndGlobal From 13ad42dd68a4c227899ac87ca9132ee41521c817 Mon Sep 17 00:00:00 2001 From: Real-Gecko Date: Mon, 29 May 2017 15:38:22 +0600 Subject: [PATCH 4/6] Version 0.2.1 --- GameData/LightsOut/LightsOut.dll | Bin 16896 -> 16896 bytes GameData/LightsOut/LightsOut.version | 35 +++++++++++++++++++++++++++ LightsOut/LightsOut.csproj | 14 +++++------ LightsOut/Properties/AssemblyInfo.cs | 2 +- 4 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 GameData/LightsOut/LightsOut.version diff --git a/GameData/LightsOut/LightsOut.dll b/GameData/LightsOut/LightsOut.dll index b095a21c57e44f08c573a45736aae2313e168b77..8b1a64aca784c854faaa7e6149a3fee1760fef47 100755 GIT binary patch delta 191 zcmZo@VQgq&oY27%`BFP_Vow9p7p94d!jlyl+kvdjs~GRd^D{EQ02hd{d8*=nVSa;+ z+g7gHDdDsJb?Utt1t&KzHeJcaJBJCTl7V5)eSAr}Z!8S)rP7>a?q6(;-Isx#{_FikGERb^C|yw+Bm(QxxkTV_UP Y4WQtCJH^R~R^pQnSpC|}=U*j0|QiO@^qU-CJCm=zigBkzf6|3 zl@w=WU}SJ+$Y;m}!c>Mlh7yKiknYL8w(86_3|y1TZB-|KuoaoSz*d9NVDm{^W=3Wc e29C++?G$+p81xv7fEYv@Ox|eqWizA0e?|Zp=rVTz diff --git a/GameData/LightsOut/LightsOut.version b/GameData/LightsOut/LightsOut.version new file mode 100644 index 0000000..0db0d86 --- /dev/null +++ b/GameData/LightsOut/LightsOut.version @@ -0,0 +1,35 @@ +{ + "NAME" : "Lights Out", + "URL" : "https://raw.githubusercontent.com/Real-Gecko/LightsOut/master/GameData/LightsOut/LightsOut.version", + "DOWNLOAD" : "https://github.com/Real-Gecko/LightsOut/releases", + "GITHUB" : + { + "USERNAME" : "Real-Gecko", + "REPOSITORY" : "LightsOut" + }, + "VERSION" : + { + "MAJOR" : 0, + "MINOR" : 2, + "PATCH" : 1, + "BUILD" : 0 + }, + "KSP_VERSION" : + { + "MAJOR" : 1, + "MINOR" : 3, + "PATCH" : 0 + }, + "KSP_VERSION_MIN" : + { + "MAJOR" : 1, + "MINOR" : 3, + "PATCH" : 0 + }, + "KSP_VERSION_MAX" : + { + "MAJOR" : 1, + "MINOR" : 3, + "PATCH" : 0 + } +} diff --git a/LightsOut/LightsOut.csproj b/LightsOut/LightsOut.csproj index 288a3e5..496d5a6 100644 --- a/LightsOut/LightsOut.csproj +++ b/LightsOut/LightsOut.csproj @@ -28,22 +28,22 @@ false - + - + - ..\..\KSP\KSP_Data\Managed\Assembly-CSharp.dll - - - ..\..\KSP\KSP_Data\Managed\UnityEngine.UI.dll + ..\..\KSP130\KSP_Data\Managed\Assembly-CSharp.dll - ..\..\KSP\KSP_Data\Managed\UnityEngine.dll + ..\..\KSP130\KSP_Data\Managed\UnityEngine.dll + + + ..\..\KSP130\KSP_Data\Managed\UnityEngine.UI.dll diff --git a/LightsOut/Properties/AssemblyInfo.cs b/LightsOut/Properties/AssemblyInfo.cs index fd456eb..d636bbc 100644 --- a/LightsOut/Properties/AssemblyInfo.cs +++ b/LightsOut/Properties/AssemblyInfo.cs @@ -17,7 +17,7 @@ // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. -[assembly: AssemblyVersion ("0.2.0")] +[assembly: AssemblyVersion ("0.2.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. From 5dfb14004fa1099393985d102647d5c97dacb087 Mon Sep 17 00:00:00 2001 From: Real-Gecko Date: Wed, 11 Oct 2017 14:54:34 +0600 Subject: [PATCH 5/6] Version 0.2.2 --- GameData/LightsOut/LightsOut.dll | Bin 16896 -> 16384 bytes GameData/LightsOut/LightsOut.version | 8 ++++---- LightsOut/LightsOut.csproj | 10 +++++----- LightsOut/Properties/AssemblyInfo.cs | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/GameData/LightsOut/LightsOut.dll b/GameData/LightsOut/LightsOut.dll index 8b1a64aca784c854faaa7e6149a3fee1760fef47..99fe8d3ceb395f0632b7516f5586101ab43c5bc6 100755 GIT binary patch literal 16384 zcmeHue|#KQb?>>ev$H=WZ8R%;SNE?AlfpB@!elNlA!lDNQI3`p7E{AK)eZK|&h}ru=w;6p{xI$Ri1)w9vFX65i)S zfxgy$-*fNm56KECfA&*Go-_BHd+xdCoO|xMckZkY-S{y1h)BnM;R4aqc=EMJ!e0*N zQ5{+T7ZLii(BEu$S{(eF4a3tJH&JlxDJPvvjHmN?yO6?f$mA2fhldh5d%|jO zXb5leL?7uRIw*WJ{^H9g%DsJ$E=|;lZA4w57>fGMV|XTT--es0QI<8OHxpQYd3^{F zbiRDF=U!&zf7PdlG6~l`kb9U5w-F7qBbHwCMD?H@93fh}wCS@4JvCO;@Rc*U9#eLrJb5AjD zSyNttYkhMvE(JmZJ!UtfY_9^C<33vlHElM8LcHA_ zLu%f&p1X|I8S(bjMssKDrJ(O=NhUzO5#{;a$1`=Q6_UDcG4*-)R3tI9;UucVCFr`Q z{&~2vmZ*W)5Npy?+e4=QXp`Uc+Z(~`fVq&|gi>2fGXg==ugxOTbQi#w!&vL49zWg$ z7wL|fEh;R$p+PdjEJ5lkr>n~im zfI2!K!#wfoV1$5a8Xc$2bA&PA^6%5-pDCBu(r3P-%BR%0AfV-BY3{631RJf4)~{-D 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 i+3(C2mU{ybEfP7 literal 16896 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 J{D1Voe*-dqx=sK9 diff --git a/GameData/LightsOut/LightsOut.version b/GameData/LightsOut/LightsOut.version index 0db0d86..2b7dd01 100644 --- a/GameData/LightsOut/LightsOut.version +++ b/GameData/LightsOut/LightsOut.version @@ -11,25 +11,25 @@ { "MAJOR" : 0, "MINOR" : 2, - "PATCH" : 1, + "PATCH" : 2, "BUILD" : 0 }, "KSP_VERSION" : { "MAJOR" : 1, "MINOR" : 3, - "PATCH" : 0 + "PATCH" : 1 }, "KSP_VERSION_MIN" : { "MAJOR" : 1, "MINOR" : 3, - "PATCH" : 0 + "PATCH" : 1 }, "KSP_VERSION_MAX" : { "MAJOR" : 1, "MINOR" : 3, - "PATCH" : 0 + "PATCH" : 1 } } diff --git a/LightsOut/LightsOut.csproj b/LightsOut/LightsOut.csproj index 496d5a6..c9ee18b 100644 --- a/LightsOut/LightsOut.csproj +++ b/LightsOut/LightsOut.csproj @@ -28,22 +28,22 @@ false - + - + - ..\..\KSP130\KSP_Data\Managed\Assembly-CSharp.dll + ..\..\KSP\KSP_Data\Managed\Assembly-CSharp.dll - ..\..\KSP130\KSP_Data\Managed\UnityEngine.dll + ..\..\KSP\KSP_Data\Managed\UnityEngine.dll - ..\..\KSP130\KSP_Data\Managed\UnityEngine.UI.dll + ..\..\KSP\KSP_Data\Managed\UnityEngine.UI.dll diff --git a/LightsOut/Properties/AssemblyInfo.cs b/LightsOut/Properties/AssemblyInfo.cs index d636bbc..f5332fc 100644 --- a/LightsOut/Properties/AssemblyInfo.cs +++ b/LightsOut/Properties/AssemblyInfo.cs @@ -17,7 +17,7 @@ // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. -[assembly: AssemblyVersion ("0.2.1")] +[assembly: AssemblyVersion ("0.2.2")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. From 68c9acd1b5f148e4974c95ef99eda55991cb0d1e Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Wed, 22 Nov 2017 16:49:36 +0100 Subject: [PATCH 6/6] load the skybox from the GalaxyControlCube --- LightsOut/LOAmbient.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/LightsOut/LOAmbient.cs b/LightsOut/LOAmbient.cs index cf11af9..f3fdd46 100644 --- a/LightsOut/LOAmbient.cs +++ b/LightsOut/LOAmbient.cs @@ -43,10 +43,11 @@ public LOAmbient(EditorFacility facility, EditorLevel level, GameObject[] gameOb // GalaxyTex_PositiveX should be viewed outside window // Debug.Log("LightsOut: Loading Night Sky Textures"); - foreach (Material material in Resources.FindObjectsOfTypeAll()) { + foreach (Renderer renderer in GalaxyCubeControl.Instance.GetComponentsInChildren()) { + Material material = renderer.material; Texture texture = material.mainTexture; if (texture) { - switch (material.name) { + switch (renderer.name) { case "ZP": nightSkyboxMaterial.SetTexture("_FrontTex", material.mainTexture); break;