From c29a07b640d5ab79831fb63d6714de5c0c06b3a0 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 13:29:11 +0300 Subject: [PATCH 01/16] Importing CSharp.warnings.xml to disable some IDE "warnings" --- GC.UI/GC.UI.csproj | 1 + GroundConstruction.csproj | 1 + OneTimeResourceConverter.csproj | 1 + 3 files changed, 3 insertions(+) diff --git a/GC.UI/GC.UI.csproj b/GC.UI/GC.UI.csproj index ee6b793..17bd658 100644 --- a/GC.UI/GC.UI.csproj +++ b/GC.UI/GC.UI.csproj @@ -9,6 +9,7 @@ GC.UI v4.5 + true full diff --git a/GroundConstruction.csproj b/GroundConstruction.csproj index b94f2a9..3ee9faf 100644 --- a/GroundConstruction.csproj +++ b/GroundConstruction.csproj @@ -9,6 +9,7 @@ GroundConstruction v4.5 + true full diff --git a/OneTimeResourceConverter.csproj b/OneTimeResourceConverter.csproj index ed0af2d..1b757a9 100644 --- a/OneTimeResourceConverter.csproj +++ b/OneTimeResourceConverter.csproj @@ -9,6 +9,7 @@ OneTimeResourceConverter v4.5 + true full From d8dab617a891b8f54baa8d1215ba6cc7c0baaa8e Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 14:07:38 +0300 Subject: [PATCH 02/16] Switched to .NET 4.8 as a target framework in csproj --- GC.UI/GC.UI.csproj | 2 +- GroundConstruction.csproj | 2 +- OneTimeResourceConverter.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/GC.UI/GC.UI.csproj b/GC.UI/GC.UI.csproj index 17bd658..32b7f3f 100644 --- a/GC.UI/GC.UI.csproj +++ b/GC.UI/GC.UI.csproj @@ -7,7 +7,7 @@ Library GC.UI GC.UI - v4.5 + v4.8 diff --git a/GroundConstruction.csproj b/GroundConstruction.csproj index 3ee9faf..4744e44 100644 --- a/GroundConstruction.csproj +++ b/GroundConstruction.csproj @@ -7,7 +7,7 @@ Library GroundConstruction GroundConstruction - v4.5 + v4.8 diff --git a/OneTimeResourceConverter.csproj b/OneTimeResourceConverter.csproj index 1b757a9..a15d92c 100644 --- a/OneTimeResourceConverter.csproj +++ b/OneTimeResourceConverter.csproj @@ -7,7 +7,7 @@ Library GroundConstruction OneTimeResourceConverter - v4.5 + v4.8 From 98b84bff0b6c768954b7e3be5665e58c958a9de1 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 13:31:04 +0300 Subject: [PATCH 03/16] AssemblySpace is Valid only when SpawnManager is --- Containers/AssemblySpace.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Containers/AssemblySpace.cs b/Containers/AssemblySpace.cs index 23c51e0..3462360 100644 --- a/Containers/AssemblySpace.cs +++ b/Containers/AssemblySpace.cs @@ -70,7 +70,7 @@ void spawn_space_keeper() #region IAssemblySpace public string Name => Title; public bool Empty => !Kit && SpawnManager.SpawnSpaceEmpty; - public bool Valid => isEnabled; + public bool Valid => isEnabled && SpawnManager.Valid; public VesselKit GetKit(Guid id) => Kit.id == id ? Kit : null; public List GetKits() => new List { Kit }; @@ -260,7 +260,7 @@ public bool CanConstruct(VesselKit vessel_kit) => && SpawnManager != null && SpawnManager.MetricFits(vessel_kit.ShipMetric)); - bool IConstructionSpace.Valid => isEnabled && can_construct_in_situ; + bool IConstructionSpace.Valid => this.Valid && can_construct_in_situ; public bool ConstructionComplete => Kit && Kit.Complete; public void Launch() From e4a33182b00188ffdd1c0c096dfe99f590539086 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 13:35:17 +0300 Subject: [PATCH 04/16] Added IAnimatedSpace.HasAnimator; only check .Opened when there is an animator --- Containers/AssemblySpace.cs | 6 ++++-- WorkshopModel/AssemblyWorkshop.cs | 3 +-- WorkshopModel/IKitContainer.cs | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Containers/AssemblySpace.cs b/Containers/AssemblySpace.cs index 3462360..8bdee45 100644 --- a/Containers/AssemblySpace.cs +++ b/Containers/AssemblySpace.cs @@ -121,6 +121,8 @@ public void Close() public bool Opened => animator == null || animator.GetAnimatorState() != AnimatorState.Closed; + public bool HasAnimator => animator != null; + public void SpawnKit() => StartCoroutine(spawn_kit()); public void SpawnEmptyContainer(string part_name) => @@ -146,7 +148,7 @@ IEnumerator spawn_kit() Utils.Message("Kit construction is already started"); yield break; } - if(Opened) + if(HasAnimator && Opened) { Utils.Message("Need to close assembly space first"); Close(); @@ -168,7 +170,7 @@ IEnumerator spawn_empty_container(string part_name) Utils.Message("In progress..."); yield break; } - if(Opened) + if(HasAnimator && Opened) { Utils.Message("Need to close assembly space first"); Close(); diff --git a/WorkshopModel/AssemblyWorkshop.cs b/WorkshopModel/AssemblyWorkshop.cs index 7426117..e7fc42b 100644 --- a/WorkshopModel/AssemblyWorkshop.cs +++ b/WorkshopModel/AssemblyWorkshop.cs @@ -303,7 +303,6 @@ protected virtual void assembly_spaces_pane() set_highlighted_part(module.part); if(space.Empty) { - var animated = space as IAnimatedSpace; var producer = space as IContainerProducer; if(producer != null) { @@ -312,7 +311,7 @@ protected virtual void assembly_spaces_pane() Styles.active_button, GUILayout.ExpandWidth(false))) producer.SpawnEmptyContainer(kit_part); } - if(animated != null) + if (space is IAnimatedSpace animated && animated.HasAnimator) { var opened = animated.Opened; if(Utils.ButtonSwitch("Close", "Open", opened, "", diff --git a/WorkshopModel/IKitContainer.cs b/WorkshopModel/IKitContainer.cs index c44c722..54b4066 100644 --- a/WorkshopModel/IKitContainer.cs +++ b/WorkshopModel/IKitContainer.cs @@ -65,6 +65,7 @@ public interface IAnimatedSpace void Open(); void Close(); bool Opened { get; } + bool HasAnimator { get; } } public interface IContainerProducer From e7e724eaf70aa75616694762c16e33db2ecc746a Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 13:35:35 +0300 Subject: [PATCH 05/16] RF:AssemblySpace: added explicit access modifiers --- Containers/AssemblySpace.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Containers/AssemblySpace.cs b/Containers/AssemblySpace.cs index 8bdee45..63191cc 100644 --- a/Containers/AssemblySpace.cs +++ b/Containers/AssemblySpace.cs @@ -25,10 +25,10 @@ public class AssemblySpace : SerializableFiledsPartModule, IAssemblySpace, IAnim [KSPField(isPersistant = true)] public VesselKit Kit = new VesselKit(); [KSPField, SerializeField] public SpawnSpaceManager SpawnManager = new SpawnSpaceManager(); - VesselSpawner vessel_spawner; - IAnimator animator; + private VesselSpawner vessel_spawner; + private IAnimator animator; private ATMagneticDamper damper; - bool can_construct_in_situ; + private bool can_construct_in_situ; public override void OnAwake() { @@ -61,7 +61,7 @@ public override void OnLoad(ConfigNode node) Kit.Host = this; } - void spawn_space_keeper() + private void spawn_space_keeper() { if(animator != null && !SpawnManager.SpawnSpaceEmpty) animator.Open(); From ac8382ba74f6c7d30dc65ee37f1cd16460ece922 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 13:41:39 +0300 Subject: [PATCH 06/16] RF:AssemblyWorkshop using pattern matching --- WorkshopModel/AssemblyWorkshop.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/WorkshopModel/AssemblyWorkshop.cs b/WorkshopModel/AssemblyWorkshop.cs index e7fc42b..8e4919f 100644 --- a/WorkshopModel/AssemblyWorkshop.cs +++ b/WorkshopModel/AssemblyWorkshop.cs @@ -71,8 +71,7 @@ protected override bool check_host(AssemblyKitInfo task) => protected virtual void process_construct(ShipConstruct construct) { var kit = new VesselKit(this, construct, false); - var selected_space_module = selected_space as PartModule; - if(selected_space_module != null) + if (selected_space is PartModule) { float ratio; if(!selected_space.Empty) @@ -298,13 +297,11 @@ protected virtual void assembly_spaces_pane() else selected_space = null; } - var module = space as PartModule; - if(module != null) + if (space is PartModule module) set_highlighted_part(module.part); if(space.Empty) { - var producer = space as IContainerProducer; - if(producer != null) + if (space is IContainerProducer producer) { if(GUILayout.Button(new GUIContent("Create Empty Container", "Create a new empty container of the selected type"), @@ -324,8 +321,7 @@ protected virtual void assembly_spaces_pane() } else { - var construction_space = space as IConstructionSpace; - if(construction_space != null && construction_space.Valid) + if (space is IConstructionSpace construction_space && construction_space.Valid) GUILayout.Label(new GUIContent(Colors.Enabled.Tag("In-place Construction"), "It is possible to construct this kit directly in the assembly space"), Styles.rich_label, GUILayout.ExpandWidth(false)); From 76639bddb8ae5ebfc576ba457777fcec49d328cf Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 13:42:43 +0300 Subject: [PATCH 07/16] RF:AssemblyWorkshop using inline out var --- WorkshopModel/AssemblyWorkshop.cs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/WorkshopModel/AssemblyWorkshop.cs b/WorkshopModel/AssemblyWorkshop.cs index 8e4919f..3834451 100644 --- a/WorkshopModel/AssemblyWorkshop.cs +++ b/WorkshopModel/AssemblyWorkshop.cs @@ -73,10 +73,9 @@ protected virtual void process_construct(ShipConstruct construct) var kit = new VesselKit(this, construct, false); if (selected_space is PartModule) { - float ratio; if(!selected_space.Empty) Utils.Message("Selected assembly space is occupied"); - else if(!selected_space.CheckKit(kit, kit_part, out ratio)) + else if (!selected_space.CheckKit(kit, kit_part, out float ratio)) { if(ratio > 0) Utils.Message("Selected assembly space is too small"); @@ -135,8 +134,7 @@ IAssemblySpace find_assembly_space(VesselKit kit, IList spaces) { if(space.Valid) { - float ratio; - if(space.CheckKit(kit, kit_part, out ratio)) + if(space.CheckKit(kit, kit_part, out _)) return space; } } @@ -151,8 +149,7 @@ IAssemblySpace find_best_assembly_space(VesselKit kit, IList spa { if(space.Valid) { - float ratio; - if(space.CheckKit(kit, kit_part, out ratio)) + if(space.CheckKit(kit, kit_part, out float ratio)) { if(ratio > best_ratio) { From 457911eebb969701e91a3a3abb69767f2ae01b47 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Feb 2022 14:23:01 +0300 Subject: [PATCH 08/16] RF:AssemblyWorkshop using explicit accessibility modifiers --- WorkshopModel/AssemblyWorkshop.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/WorkshopModel/AssemblyWorkshop.cs b/WorkshopModel/AssemblyWorkshop.cs index 3834451..603d32f 100644 --- a/WorkshopModel/AssemblyWorkshop.cs +++ b/WorkshopModel/AssemblyWorkshop.cs @@ -17,11 +17,12 @@ public abstract class AssemblyWorkshop : VesselKitWorkshop, IKi { [KSPField] public string KitParts = "DIYKit"; - SortedList kit_parts = new SortedList(); + private readonly SortedList kit_parts = new SortedList(); [KSPField(isPersistant = true)] public string SelectedPart = string.Empty; - string kit_part => kit_parts[SelectedPart]; + + private string kit_part => kit_parts[SelectedPart]; [KSPField(isPersistant = true)] public PersistentList Kits = new PersistentList(); From ca68b8f7d6ed9cbb0e2bb0820d437a09769e1304 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Thu, 17 Mar 2022 14:00:57 +0300 Subject: [PATCH 09/16] Added modconfig.yaml for github publishing and project checks Removed obsolete make_releases and gather_releases, since everything is done via submodules now --- modconfig.yaml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 modconfig.yaml diff --git a/modconfig.yaml b/modconfig.yaml new file mode 100644 index 0000000..57f3b69 --- /dev/null +++ b/modconfig.yaml @@ -0,0 +1,3 @@ +dll_path: GameData/GroundConstruction/Plugins/GroundConstruction.dll +archive_path: Releases +github_url: allista/GroundConstruction From fdff549f813767c0e1cea4c7801d0652e447e2d4 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 18 Mar 2022 14:39:20 +0300 Subject: [PATCH 10/16] Added spacedock mod id to modconfig --- modconfig.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/modconfig.yaml b/modconfig.yaml index 57f3b69..9158eb7 100644 --- a/modconfig.yaml +++ b/modconfig.yaml @@ -1,3 +1,4 @@ dll_path: GameData/GroundConstruction/Plugins/GroundConstruction.dll archive_path: Releases github_url: allista/GroundConstruction +spacedock_mod_id: 1123 From 29a1ca4f2779d87eaa88ac8f24b6335b18227c02 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 25 Mar 2022 14:18:41 +0300 Subject: [PATCH 11/16] KSP: reference changed 1.11.1 => 1.12.3 --- GC.UI/GC.UI.csproj | 10 +++++----- GroundConstruction.csproj | 16 ++++++++-------- OneTimeResourceConverter.csproj | 14 +++++++------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/GC.UI/GC.UI.csproj b/GC.UI/GC.UI.csproj index 32b7f3f..50d7626 100644 --- a/GC.UI/GC.UI.csproj +++ b/GC.UI/GC.UI.csproj @@ -46,23 +46,23 @@ - ..\..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\System.dll + ..\..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\System.dll False - ..\..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\System.Core.dll + ..\..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\System.Core.dll False - ..\..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.dll + ..\..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.dll False - ..\..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.CoreModule.dll + ..\..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.CoreModule.dll False - ..\..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.UI.dll + ..\..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.UI.dll False diff --git a/GroundConstruction.csproj b/GroundConstruction.csproj index 4744e44..ea19cf2 100644 --- a/GroundConstruction.csproj +++ b/GroundConstruction.csproj @@ -37,35 +37,35 @@ - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\System.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\System.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\Assembly-CSharp.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\Assembly-CSharp.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\System.Core.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\System.Core.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.CoreModule.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.CoreModule.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.IMGUIModule.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.IMGUIModule.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.PhysicsModule.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.PhysicsModule.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.UI.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.UI.dll False diff --git a/OneTimeResourceConverter.csproj b/OneTimeResourceConverter.csproj index a15d92c..e461467 100644 --- a/OneTimeResourceConverter.csproj +++ b/OneTimeResourceConverter.csproj @@ -37,31 +37,31 @@ - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\Assembly-CSharp.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\Assembly-CSharp.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\System.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\System.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\System.Core.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\System.Core.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.CoreModule.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.CoreModule.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.IMGUIModule.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.IMGUIModule.dll False - ..\KSP-test\KSP_test_1.11.1\KSP_Data\Managed\UnityEngine.UI.dll + ..\KSP-test\KSP_test_1.12.3\KSP_Data\Managed\UnityEngine.UI.dll False From f0aacf94be2f0bde330d20abc724423cc1203b33 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Tue, 29 Mar 2022 13:53:04 +0300 Subject: [PATCH 12/16] KSP: MinMaxVersion: 1.12.3 --- Properties/AssemblyInfo.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index fbbb386..bb9c0fa 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -44,12 +44,12 @@ public class ModInfo : KSP_AVC_Info { public ModInfo() { - MinKSPVersion = new Version(1, 11, 1); - MaxKSPVersion = new Version(1, 11, 1); + MinKSPVersion = new Version(1, 12, 3); + MaxKSPVersion = new Version(1, 12, 3); VersionURL = "https://raw.githubusercontent.com/allista/GroundConstruction/master/GameData/GroundConstruction/GroundConstruction.version"; UpgradeURL = "https://spacedock.info/mod/1123/Ground%20Construction"; ChangeLogURL = "https://github.com/allista/GroundConstruction/blob/master/ChangeLog.md"; } } -} +} \ No newline at end of file From 47622e639de764d404a7c3f61695aaefcd084acb Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Wed, 30 Mar 2022 15:55:10 +0300 Subject: [PATCH 13/16] Using new make_mod_release click command --- make-release.sh | 13 ------------- modconfig.yaml | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 13 deletions(-) delete mode 100755 make-release.sh diff --git a/make-release.sh b/make-release.sh deleted file mode 100755 index 94cd43f..0000000 --- a/make-release.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -CWD=$(dirname "$0") -cd "${CWD}" || exit - -make_mod_release \ - -e '*/config.xml' '*.user' '*.orig' '*.mdb' '*.pdb' \ - '*/System.*.dll' '*/Mono.*.dll' '*/Unity*.dll' \ - 'GameData/000_AT_Utils/Plugins/AnimatedConverters.dll' \ - 'GameData/000_AT_Utils/Plugins/SubmodelResizer.dll' \ - 'GameData/000_AT_Utils/ResourceHack.cfg' \ - 'GameData/ConfigurableContainers/Parts/*' \ - -i '../AT_Utils/GameData' '../AT_Utils/ConfigurableContainers/GameData' diff --git a/modconfig.yaml b/modconfig.yaml index 9158eb7..c44b49a 100644 --- a/modconfig.yaml +++ b/modconfig.yaml @@ -2,3 +2,21 @@ dll_path: GameData/GroundConstruction/Plugins/GroundConstruction.dll archive_path: Releases github_url: allista/GroundConstruction spacedock_mod_id: 1123 +game_data_path: GameData +additional_data_paths: + - '../AT_Utils/GameData' + - '../AT_Utils/ConfigurableContainers/GameData' +exclude_patterns: + - '*/@thumbs/*' + - '*/config.xml' + - '*.user' + - '*.orig' + - '*.mdb' + - '*.pdb' + - '*/System.*.dll' + - '*/Mono.*.dll' + - '*/Unity*.dll' + - 'GameData/000_AT_Utils/Plugins/AnimatedConverters.dll' + - 'GameData/000_AT_Utils/Plugins/SubmodelResizer.dll' + - 'GameData/ConfigurableContainers/Parts/*' + - 'GameData/000_AT_Utils/ResourceHack.cfg' From 96418ca7e8802d35b8699e2d362099a8d4a81ba4 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 1 Apr 2022 16:17:38 +0300 Subject: [PATCH 14/16] Auto-formatted change logs using ksp_plugin create changelog --reformat Plus corrected change log titles --- ChangeLog.md | 639 +++++++++++++++++++++++++++------------------------ 1 file changed, 335 insertions(+), 304 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 7f20a73..cca6ff7 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,304 +1,335 @@ -# Ground Construction ChangeLog - -* **v2.7.0** - * KSP: 1.11.1 - * Added support of attach nodes in **Part Variants** for construct docking - * The construct from Docked Container is wielded - to the base ship **excluding the docking port** - * When construction is started, the required crew is automatically - transferred into the workshop if not present - * UI - * Added **Get Crew** and **Dismiss Crew** buttons to the Workshop Window - * Added **Warp to Deployed** button to the Workshop Window - * Updating Editor UI on ship naming change - * Corrected ETA display - * The deployment of a container does not decrease container size - * Fixed - * task synchronization of tasks between workshops in Workshop Manger - * recycling report on failed resource trasfers - * kit mass calculation - * NRE in Docked Kit Container UI - * AOR exception in Jobs+stage derived methods/properties - - -* v2.6.4.1 - * Fixed **Part Printer** and **Replicator** converters in Assembly Lines - _broken by Squad in KSP-1.10_ - -* v2.6.4 - * **Fixed ship loading into kits** - * Fixed the _same vessel collision if deployed_ check - * Using new uGUI dialogs from AT_Utils - * Adapted to changes in AT_Utils - -* v2.6.3.1 - * Compiled against KSP-1.10 - -* v2.6.3 - * Added deployment ETA display to container PAW and workshop window - * When deployment is finished, time warp is stopped automatically - * Fixed construction of heat-shields and other parts requiring Ablator - * Moved ConstructionSkill to AT_Utils to also use it - in Cargo Accelerators - * Fixed USI-LS integration (this time for sure) thanks (again) - to @Marschig - * Fixed several bugs in Recycler UI - * Fixed spot-lights - -* v2.6.2 - * Fixed game freeze on opening Recycler node with too many subnodes - * Fixed deployment dimensions for SPH crafts in Ground kit - * Fixed USI-LS integration thanks to @Marschig - * Fixed Recycler UI disappearing after scene switch - * Compiled against AT_Utils 1.9.3 - -* v2.6.1.1 - * **Compatible with KSP-1.9** - * Compiled against AT_Utils 1.9.2 - -* v2.6.1 - * Added auto activation/deactivation feature to Magnetic Forklift - * Compiled against AT_Utils 1.9.1 - -* v2.6.0 -- **Magnetic Forklift** - * Added **Magnetic Forklift** - * It is a utility part that makes handling of containers and other - cargo more easy, compared to using docking ports or the Klaw. - * It operates like the magnetic damper in Orbital Assembly Space, - but it has several controls in PAW that allow to actively manipulate - the cargo ([see the video](https://youtu.be/G8Q3Nd_8m8E)). - * It can also dock with the grabbed cargo (if it has a properly oriented - docking port) for long hauls. - * But beware the energy consumption while using it: moving heavy cargo - with electromagnets costs a lot of EC. - * Recycler: traversing vessel part tree using parent/children instead - of Attach Nodes. This handles any vessel structure, including some - non-standard attach techniques like that used by Universal Storage. - * Various fixes and adaptations to AT_Utils API changes. - -* v2.5.1 -- **Better Recycling** - * Recycler UI: - * **Part tree may be filtered** by part name - * Search term is case insensitive and will match any part whose - title contains it. - * Filtering is started in 0.5s after you stopped typing. - * Filtering is not instant: when the search term is yellow - (configurable color) the search is in progress; - when it becomes green (configurable color) the search is - complete and the filtered part tree is displayed. - * Parts that do not match the term are not shown in the part tree - unless they are ancestors to those that match. - * Matched parts that has children remain togglable, so that you - can access their subtree. Other parts of the filtered tree - are not togglable. - * Recycling in the filtered tree works exactly the same. - * **A part is highlighted** when mouse hovers over corresponding - part tree node - * Added **spotlights** to the Space Crane - * Added **AutoSave** option to the Main GC Window - * Fixed detection of the Orbital Container by workshops - (thanks @ChrisF0001 for the report) - -* v2.5.0.1 - * Fixed Recycler part tree: subtrees no longer overlap - * Included gc_ui.ksp asset bundle into GC-Core.netkan - * Changed part filter tooltip to "Global Construction" - -* v2.5.0 -- **Recycling** - * **Supports KSP-1.8.1** - * **Recycle nearby vessels back into Mat.Kits and Sp.Parts**: - * Recycling is done by the _construction_ workshops. - * Nearby means _no further than 300m from the workshop_, like - the construction limit for ground workshops. - * Recycling is done part-by-part in the order in which the vessel was - assembled in VAB/SPH, i.e. along the Part Tree. - * **A vessel may be recycled partially**, i.e. you may choose to recycle - _just one branch of the Part Tree_, or even a single _leaf_ part. - * The obtained resources (MK, SP and anything that was inside of - a recycled part) are moved into the recycling vessel and - distributed within available storage. - * If there's no room left for a resource, the part is not recycled, - but skipped, and the Recycler moves on and tries to recycle - other available parts. - * If there's crew inside of a part, it is skipped. - * Orbital Workshop _also recycles remotely_. - * The vessel to which the workshop belongs can also be recycled, with - the exception of the workshop itself. - * **Creation of an empty kit container consumes resources** that would - be required to actually assemble and construct it. - * Added the **Final Assembly** - last phase of the _construction_: It - represents some work that needs to be done after construction is - complete. Does not require any resources but the time. - * Numerous **bugfixes and improvements**: - * Do not allow assembly/construction in the docked container if it is not - docked through the _construction node_. - * If the effective workforse is zero, the construction is stopped. - * Deploy hint is disabled when the payload is launched. - * Added ModuleConstructionKit and DockedKitContainer to ignored PartModules. - * Improved Docked Kit Container texture. - * Fixed resizing with KJRn and robotic parts. - * Fixed NRE in part prefabs of ConstructionWorkshops. - * Multiple fixes in the assembly/construction framework. - * Multiple fixes in docked spawning. - * Several fixes in spawning of empty containers. - * Fixed infinite loop in `WorkshopBase.start_next_item`. - * Corrected some typos. - -* v2.4.1 -- **Making Resources** - * **Parts with *selected* resources are assembled and constructed with these resources** - * By default only two such resources are supported: - * **Ablator** is made from MaterialKits during the construction phase - * **Machinery** is made from SpecializedParts during the assembly phase - * Other resources may be added by other mods: - * Add a resource name into a GC_CONSTRUCT_RESOURCES node in any of .cfg files in your mod to make that resource from MaterialKits in GC - * Add a resource name into a GC_ASSEMBLE_RESOURCES node in any of .cfg files in your mod to make that resource from SpecializedParts in GC - * Added patches for Mk3 ISRU from Stockalike Mining Extension **made by @ZEROX7** - * *For modders: renamed GC_KIT_RESOURCES to GC_KEEP_RESOURCES* - -* v2.4 -- **Incremental Station Construction** - * Vessels constructed inside Orbital Kit Container **can be docked to the main vessel instead of the container** when launched. - * **Orientation of deployment/spawning can be changed** (_in 90 degrees steps around Up axis_) from the container's part menu and from the workshop UI. - * **Added in-editor information window** that shows assembly/construction requirements for the current ship, and shows bottom-most attach nodes available for docked construction. - * **Deployment hint shows silhouette** of the vessel that will be constructed in addition to the size of the deployed container. - * **Deployment hint may be shown/hidden per container.** - * Added part menu button to add a single part to the container in editor. - * Added warnings that prevent accidental deployment. - * Corrected Vessel/PartKit requirements calculations. Now resources that are not stripped away when a kit is created do not contribute to complexity and construction resource requirements. - * A PartKit costs at least dry-part-cost*0.1. - * Fixed kit resizing on kit creation/deployment in flight. - -* v2.3.2 - * Made docked deployment compatible with **auto struts** and **Kerbal Joint Reinforcement Next >=4.0.1** - * Added ability to change UI color scheme at runtime - * To access the Color Scheme dialog, **right-click the GC toolbar button** - -* v2.3.1 - * Excluded some pure-technical part modules (like ModuleTestSubject and ModuleOverheatDisplay) from DIY kit complexity calculation, which decreases both SpecializedParts and SKH build costs of many kits. _**Note** for modders: the excluded part modules are listed in the IgnoreModules.cfg and could be added/changed using MM._ - -* v2.3 -- **Part Construction** - * Compatible with KSP-1.7 - * Added "Add Part" option to **create kit from a single part**. - -* v2.2 -- **In-place Construction** - * Added **ability to construct kits inside assembly spaces**. - * **Named docking ports** in Dockable Kit Container. - * _Only works with the newly created containers. Old ones will still have stock docking ports._ - * Added **display of additional resources** required for the vessel in a kit. - * Available in the interface of any workshop and via part menu of containers. - * **Deployment Hint may be activated in Editor** (and in flight) via part menu of a container. - * Deployment speed is inverse-proportional to the kit mass, so as not to brake everything with a too heavy deploing kit. - * Spread parts along the **Tech Tree** more evenly: - * Deployable Kit Container to Specialized Construction - * Ground Assembly Line to Advanced Metalworks - * Orbital Assembly Line/Space to Meta Materials - -* v2.1 -- **Global Construction** - * **Empty kit containers can be used as assembly spaces** - * They can be created in Editor as well as inside some assembly spaces. - * This completely lifts the limitation on the final mass and size of the vessel you construct. - * **New DIY Kits can be created in orbit** - * For that you need the new **Orbital Assembly Line**, - * And the separate **Orbital Assembly Space**. - * **Vessels can be constructed from DIY Kits in orbit** - * For that you have to use a new type of kit container -- the **Orbital Kit Container**, - * And the new **Orbital Workshop** part. - * _Orbital Kit Container_ is limited in that it cannot store kits with launch clamps (for obvious reasons). - * In an assembly line interface you can chose what type of the kit container to spawn or use for the kit you assemble. - * Deploy hint is drawn as a 3D box rather than 2D "shadow" to accomodate orbital construction. - -* v2.0.1.1 - * Added Machinery to kit resources whitelist - -* v2.0.1 - * New ISRU patches by Critter79606 - * Several bugfixes - -* v2.0.0 -- **Independence Day** - * **!!! BACK UP YOUR SAVES !!!** - * *** - * **DIY Kits can now be created on other planets.** - * To build a new kit you'll need the _**Ground Assembly Line**_ (a new part that you'll have to build from a DIY Kit brought from Kerbin) and a supply of _Material Kits_. - * The _Assembly Line_ will first (painfully slow) convert _Material Kits_ to _**Specialized Parts**_. - * Then you can select either a vessel from VAB/SPH, or a subassembly, and build a new DIY Kit using _Specialized Parts_, _Electric Charge_ and kerbal _engineers with Construction Skill_. - * The new kit is then spawned inside the _Assembly Line_ and pushed out. At the top it has a place (marked by a small metal plate at the center) where any stock docking port can couple, so you can use it to grab the kit and transport it elsewhere. - * Unlike kits produced on Kerbin (in Editor), off-world kits have NO recourses included. None at all. So, for example, if you build a nuclear reactor kit, on Kerbit it will include the radioactive fuel; but anywhere else you will have to find and transfer the fuel yourself. - * **REMOVED workshop functionality from generic crewable parts.** - * This means that all _non-GC/non-MKS_ parts will stop work as workshops. If a base relies on them, you need to build the Mobile Workshop there before installing GC2. Or you can copy MM patch from GC1 after the installation. - * On the bright side, there's a new _**Inline Ground Workshop**_ part that has better efficiency than most of the generic workshops. - * Fixed the **deployment of a kit in a time warp**; the kit doesn't jump into the air afterwards anymore. - * Fixed the issue with determining the proper size of the stock RadialDrill. - -* v1.3.0 - * Added on-demand rendering of spawn transform's forward direction - * Fix for EL 6.0 by @LatiMacciato - * Added DIY kit size constraints. Code greatly improved by **llinard** - * Fixed KitRes display and Remaining Structure Mass calculation. - * Fixed SpaceCrane RCS effects. - -* v1.2.1.1 - * Using TextureCache to load icons. - -* v1.2.1 - * Remove ISRU patch if USI is detected. - * Fixed PartCost calculation. - -* v1.2.0 - * **Removed OneTimeResourceConverter.** No need for it anymore. - * Added **planet tabs** that group workshops located on the same celectial body to unclutter the workshop list. - * Added ability to **synchronize construction target** among workshops belonging to the same vessel. - * Added **Warp to end of construction** button. - * Added **velocity dumping on vessel launch** to prevent bouncing and explosions of bulky ships and base segments. - * Added separate checks and messages for vessel spawning to avoid confusion. - * Scenario window is now shown after 3s after a level is loaded. - * Fixed calculation of ETA of construction in the case of multiple workshops working concurrently on the same DIY Kit. - * Fixed kit tremor after long time warp. - * Changed symbol for Switch to workshop button. - -* v1.1.2.2 - * Compatible with KSP-1.3 - * Engineers with lvl 0 are now also capable of kit construction. - * Main GC Window now shows only landed workshops. - * Hopefully fixed the issue with inability to launch some finished constructs. - * Moved engineer patch to separate top-level config. - * Fixed the coroutine bug. - -* v1.1.2.1 - * Fixed double cost bug. - * Fixed complexity and kit mass calculation. - -* v1.1.2 - * Added custom part subcategory for GC workshops. - * Added separate CKAN package for MKS bundle. Now GC is provided in two packages: GroundConstruction-Core and GroundConstruction (full). MKS only depends on the Core part. - * Increased the **VolumePerKerbal** from 3 to **8 m3**. This effectively removes workshop capability from small cockpits, leaving it only in parts like Cupola or Science Lab. - * Fixed the "cannot construct while moving" issue. Fixed zombie kits under construction. - * Fixed vessel name loss in GC UI after undocking/decoupling. - * Moved to the new DIY Kit model made by @BobPalmer. - -* v1.1.1 - * **DIY Kit renaming** in editor and in flight. - * **Improved User Interface** - * DIY Kits are higlighted when mouse is hovered over their respective infos in Construction Window. - * Efficiency and available Workforce are displayed at the top of the Construction Window and in the tooltips of the workshop fields in the Workshop List. - * Workshop List now groups workshops by vessel and sorts them by planet and alphabetically. - * Planet and Vessel fields in the Workshop List when pressed focus the camera on the corresponding planet/vessel in Map View or Tracking Station. - * Workshop fileds of the active vessel when pressed toggle respective Construction Windows. - * Added another 3s delay before fixing Kit to the ground. - * **For modders**: added check for non-existing MODULE[NotGroundWorkshop] to blacklist parts to which GroundWorkshop module should not be added by MM. - -* v1.1.0 - * **!!! Converted everything to use MaterialKits instead of Metals !!!** - * * Added MM patch to let the truck also work for Extraplanetary Launchpads assembly (made by **Kerbas-ad-astra**). - * Added the new ExperienceEffect: **ConstructionSkill** to use instead of the stock ones. - * Added **OneTimeResourceConverter** to switch to new StructureResource. - * Stop time-warp if the construction is suspended for some reason. - * Before deployment the kit now checks for movement and ground contact. Then waits additional 3 seconds. This fixes the floating-kit bug. Also, the deployment time is now limited to prevent "explosive" deployment of very small kits. - * Fixed the bug that caused a Kit to fall through the ground on Time Warp. - * Made full ConfigurableContainers a dependency, othewrise GC provides no means of storing StructureResource. - * A DIY Kit now stores another DIY Kit as is, without any mass/cost reduction (no more matryoshka cheating). - * Fixed SEGFAULT on switching to an unloaded workshop from Flight. - * Various small bugfixes. - -* v1.0.0.1 - * Added **Kit Res.** part menu field that displays the amount of structural resource needed to assemble the Kit. - * Changed skill required for Ore Smelters in IRSUs to match that of the stock IRSU converters. - * Small bugfixes. +# Ground Construction Change Log + +## v2.7.0 + +* KSP: 1.11.1 +* Added support of attach nodes in **Part Variants** for construct docking +* The construct from Docked Container is wielded + to the base ship **excluding the docking port** +* When construction is started, the required crew is automatically + transferred into the workshop if not present +* UI + * Added **Get Crew** and **Dismiss Crew** buttons to the Workshop Window + * Added **Warp to Deployed** button to the Workshop Window + * Updating Editor UI on ship naming change + * Corrected ETA display +* The deployment of a container does not decrease container size +* Fixed + * task synchronization of tasks between workshops in Workshop Manger + * recycling report on failed resource trasfers + * kit mass calculation + * NRE in Docked Kit Container UI + * AOR exception in Jobs+stage derived methods/properties + +## v2.6.4.1 + +* Fixed **Part Printer** and **Replicator** converters in Assembly Lines +_broken by Squad in KSP-1.10_ + +## v2.6.4 + +* **Fixed ship loading into kits** +* Fixed the _same vessel collision if deployed_ check +* Using new uGUI dialogs from AT_Utils +* Adapted to changes in AT_Utils + +## v2.6.3.1 + +* Compiled against KSP-1.10 + +## v2.6.3 + +* Added deployment ETA display to container PAW and workshop window +* When deployment is finished, time warp is stopped automatically +* Fixed construction of heat-shields and other parts requiring Ablator +* Moved ConstructionSkill to AT_Utils to also use it +in Cargo Accelerators +* Fixed USI-LS integration (this time for sure) thanks (again) +to @Marschig +* Fixed several bugs in Recycler UI +* Fixed spot-lights + +## v2.6.2 + +* Fixed game freeze on opening Recycler node with too many subnodes +* Fixed deployment dimensions for SPH crafts in Ground kit +* Fixed USI-LS integration thanks to @Marschig +* Fixed Recycler UI disappearing after scene switch +* Compiled against AT_Utils 1.9.3 + +## v2.6.1.1 + +* **Compatible with KSP-1.9** +* Compiled against AT_Utils 1.9.2 + +## v2.6.1 + +* Added auto activation/deactivation feature to Magnetic Forklift +* Compiled against AT_Utils 1.9.1 + +## v2.6.0 -- **Magnetic Forklift** + +* Added **Magnetic Forklift** + * It is a utility part that makes handling of containers and other + cargo more easy, compared to using docking ports or the Klaw. + * It operates like the magnetic damper in Orbital Assembly Space, + but it has several controls in PAW that allow to actively manipulate + the cargo ([see the video](https://youtu.be/G8Q3Nd_8m8E)). + * It can also dock with the grabbed cargo (if it has a properly oriented + docking port) for long hauls. + * But beware the energy consumption while using it: moving heavy cargo + with electromagnets costs a lot of EC. +* Recycler: traversing vessel part tree using parent/children instead + of Attach Nodes. This handles any vessel structure, including some + non-standard attach techniques like that used by Universal Storage. +* Various fixes and adaptations to AT_Utils API changes. + +## v2.5.1 -- **Better Recycling** + +* Recycler UI: + * **Part tree may be filtered** by part name + * Search term is case insensitive and will match any part whose + title contains it. + * Filtering is started in 0.5s after you stopped typing. + * Filtering is not instant: when the search term is yellow + (configurable color) the search is in progress; + when it becomes green (configurable color) the search is + complete and the filtered part tree is displayed. + * Parts that do not match the term are not shown in the part tree + unless they are ancestors to those that match. + * Matched parts that has children remain togglable, so that you + can access their subtree. Other parts of the filtered tree + are not togglable. + * Recycling in the filtered tree works exactly the same. + * **A part is highlighted** when mouse hovers over corresponding + part tree node +* Added **spotlights** to the Space Crane +* Added **AutoSave** option to the Main GC Window +* Fixed detection of the Orbital Container by workshops + (thanks @ChrisF0001 for the report) + +## v2.5.0.1 + +* Fixed Recycler part tree: subtrees no longer overlap +* Included gc_ui.ksp asset bundle into GC-Core.netkan +* Changed part filter tooltip to "Global Construction" + +## v2.5.0 -- **Recycling** + +* **Supports KSP-1.8.1** +* **Recycle nearby vessels back into Mat.Kits and Sp.Parts**: + * Recycling is done by the _construction_ workshops. + * Nearby means _no further than 300m from the workshop_, like + the construction limit for ground workshops. + * Recycling is done part-by-part in the order in which the vessel was + assembled in VAB/SPH, i.e. along the Part Tree. + * **A vessel may be recycled partially**, i.e. you may choose to recycle + _just one branch of the Part Tree_, or even a single _leaf_ part. + * The obtained resources (MK, SP and anything that was inside of + a recycled part) are moved into the recycling vessel and + distributed within available storage. + * If there's no room left for a resource, the part is not recycled, + but skipped, and the Recycler moves on and tries to recycle + other available parts. + * If there's crew inside of a part, it is skipped. + * Orbital Workshop _also recycles remotely_. + * The vessel to which the workshop belongs can also be recycled, with + the exception of the workshop itself. +* **Creation of an empty kit container consumes resources** that would + be required to actually assemble and construct it. +* Added the **Final Assembly** - last phase of the _construction_: It + represents some work that needs to be done after construction is + complete. Does not require any resources but the time. +* Numerous **bugfixes and improvements**: + * Do not allow assembly/construction in the docked container if it is not + docked through the _construction node_. + * If the effective workforse is zero, the construction is stopped. + * Deploy hint is disabled when the payload is launched. + * Added ModuleConstructionKit and DockedKitContainer to ignored PartModules. + * Improved Docked Kit Container texture. + * Fixed resizing with KJRn and robotic parts. + * Fixed NRE in part prefabs of ConstructionWorkshops. + * Multiple fixes in the assembly/construction framework. + * Multiple fixes in docked spawning. + * Several fixes in spawning of empty containers. + * Fixed infinite loop in `WorkshopBase.start_next_item`. + * Corrected some typos. + +## v2.4.1 -- **Making Resources** + +* **Parts with *selected* resources are assembled and constructed with these resources** + * By default only two such resources are supported: + * **Ablator** is made from MaterialKits during the construction phase + * **Machinery** is made from SpecializedParts during the assembly phase + * Other resources may be added by other mods: + * Add a resource name into a GC_CONSTRUCT_RESOURCES node in any of .cfg files in your mod to make that resource from MaterialKits in GC + * Add a resource name into a GC_ASSEMBLE_RESOURCES node in any of .cfg files in your mod to make that resource from SpecializedParts in GC +* Added patches for Mk3 ISRU from Stockalike Mining Extension **made by @ZEROX7** +* *For modders: renamed GC_KIT_RESOURCES to GC_KEEP_RESOURCES* + +## v2.4.0 -- **Incremental Station Construction** + +* Vessels constructed inside Orbital Kit Container **can be docked to the main vessel instead of the container** when launched. +* **Orientation of deployment/spawning can be changed** (_in 90 degrees steps around Up axis_) from the container's part menu and from the workshop UI. +* **Added in-editor information window** that shows assembly/construction requirements for the current ship, and shows bottom-most attach nodes available for docked construction. +* **Deployment hint shows silhouette** of the vessel that will be constructed in addition to the size of the deployed container. +* **Deployment hint may be shown/hidden per container.** +* Added part menu button to add a single part to the container in editor. +* Added warnings that prevent accidental deployment. +* Corrected Vessel/PartKit requirements calculations. Now resources that are not stripped away when a kit is created do not contribute to complexity and construction resource requirements. +* A PartKit costs at least dry-part-cost*0.1. +* Fixed kit resizing on kit creation/deployment in flight. + +## v2.3.2 + +* Made docked deployment compatible with **auto struts** and **Kerbal Joint Reinforcement Next >=4.0.1** +* Added ability to change UI color scheme at runtime + * To access the Color Scheme dialog, **right-click the GC toolbar button** + +## v2.3.1 + +* Excluded some pure-technical part modules (like ModuleTestSubject and ModuleOverheatDisplay) from DIY kit complexity calculation, which decreases both SpecializedParts and SKH build costs of many kits. _**Note** for modders: the excluded part modules are listed in the IgnoreModules.cfg and could be added/changed using MM._ + +## v2.3.0 -- **Part Construction** + +* Compatible with KSP-1.7 +* Added "Add Part" option to **create kit from a single part**. + +## v2.2.0 -- **In-place Construction** + +* Added **ability to construct kits inside assembly spaces**. +* **Named docking ports** in Dockable Kit Container. + * _Only works with the newly created containers. Old ones will still have stock docking ports._ +* Added **display of additional resources** required for the vessel in a kit. + * Available in the interface of any workshop and via part menu of containers. +* **Deployment Hint may be activated in Editor** (and in flight) via part menu of a container. +* Deployment speed is inverse-proportional to the kit mass, so as not to brake everything with a too heavy deploing kit. +* Spread parts along the **Tech Tree** more evenly: + * Deployable Kit Container to Specialized Construction + * Ground Assembly Line to Advanced Metalworks + * Orbital Assembly Line/Space to Meta Materials + +## v2.1.0 -- **Global Construction** + +* **Empty kit containers can be used as assembly spaces** + * They can be created in Editor as well as inside some assembly spaces. + * This completely lifts the limitation on the final mass and size of the vessel you construct. +* **New DIY Kits can be created in orbit** + * For that you need the new **Orbital Assembly Line**, + * And the separate **Orbital Assembly Space**. +* **Vessels can be constructed from DIY Kits in orbit** + * For that you have to use a new type of kit container -- the **Orbital Kit Container**, + * And the new **Orbital Workshop** part. + * _Orbital Kit Container_ is limited in that it cannot store kits with launch clamps (for obvious reasons). + * In an assembly line interface you can chose what type of the kit container to spawn or use for the kit you assemble. +* Deploy hint is drawn as a 3D box rather than 2D "shadow" to accomodate orbital construction. + +## v2.0.1.1 + +* Added Machinery to kit resources whitelist + +## v2.0.1 + +* New ISRU patches by Critter79606 +* Several bugfixes + +## v2.0.0 -- **Independence Day** + +* **!!! BACK UP YOUR SAVES !!!** +* *** +* **DIY Kits can now be created on other planets.** + * To build a new kit you'll need the _**Ground Assembly Line**_ (a new part that you'll have to build from a DIY Kit brought from Kerbin) and a supply of _Material Kits_. + * The _Assembly Line_ will first (painfully slow) convert _Material Kits_ to _**Specialized Parts**_. + * Then you can select either a vessel from VAB/SPH, or a subassembly, and build a new DIY Kit using _Specialized Parts_, _Electric Charge_ and kerbal _engineers with Construction Skill_. + * The new kit is then spawned inside the _Assembly Line_ and pushed out. At the top it has a place (marked by a small metal plate at the center) where any stock docking port can couple, so you can use it to grab the kit and transport it elsewhere. + * Unlike kits produced on Kerbin (in Editor), off-world kits have NO recourses included. None at all. So, for example, if you build a nuclear reactor kit, on Kerbit it will include the radioactive fuel; but anywhere else you will have to find and transfer the fuel yourself. +* **REMOVED workshop functionality from generic crewable parts.** + * This means that all _non-GC/non-MKS_ parts will stop work as workshops. If a base relies on them, you need to build the Mobile Workshop there before installing GC2. Or you can copy MM patch from GC1 after the installation. + * On the bright side, there's a new _**Inline Ground Workshop**_ part that has better efficiency than most of the generic workshops. +* Fixed the **deployment of a kit in a time warp**; the kit doesn't jump into the air afterwards anymore. +* Fixed the issue with determining the proper size of the stock RadialDrill. + +## v1.3.0 + +* Added on-demand rendering of spawn transform's forward direction +* Fix for EL 6.0 by @LatiMacciato +* Added DIY kit size constraints. Code greatly improved by **llinard** +* Fixed KitRes display and Remaining Structure Mass calculation. +* Fixed SpaceCrane RCS effects. + +## v1.2.1.1 + +* Using TextureCache to load icons. + +## v1.2.1 + +* Remove ISRU patch if USI is detected. +* Fixed PartCost calculation. + +## v1.2.0 + +* **Removed OneTimeResourceConverter.** No need for it anymore. +* Added **planet tabs** that group workshops located on the same celectial body to unclutter the workshop list. +* Added ability to **synchronize construction target** among workshops belonging to the same vessel. +* Added **Warp to end of construction** button. +* Added **velocity dumping on vessel launch** to prevent bouncing and explosions of bulky ships and base segments. +* Added separate checks and messages for vessel spawning to avoid confusion. +* Scenario window is now shown after 3s after a level is loaded. +* Fixed calculation of ETA of construction in the case of multiple workshops working concurrently on the same DIY Kit. +* Fixed kit tremor after long time warp. +* Changed symbol for Switch to workshop button. + +## v1.1.2.2 + +* Compatible with KSP-1.3 +* Engineers with lvl 0 are now also capable of kit construction. +* Main GC Window now shows only landed workshops. +* Hopefully fixed the issue with inability to launch some finished constructs. +* Moved engineer patch to separate top-level config. +* Fixed the coroutine bug. + +## v1.1.2.1 + +* Fixed double cost bug. +* Fixed complexity and kit mass calculation. + +## v1.1.2 + +* Added custom part subcategory for GC workshops. +* Added separate CKAN package for MKS bundle. Now GC is provided in two packages: GroundConstruction-Core and GroundConstruction (full). MKS only depends on the Core part. +* Increased the **VolumePerKerbal** from 3 to **8 m3**. This effectively removes workshop capability from small cockpits, leaving it only in parts like Cupola or Science Lab. +* Fixed the "cannot construct while moving" issue. Fixed zombie kits under construction. +* Fixed vessel name loss in GC UI after undocking/decoupling. +* Moved to the new DIY Kit model made by @BobPalmer. + +## v1.1.1 + +* **DIY Kit renaming** in editor and in flight. +* **Improved User Interface** + * DIY Kits are higlighted when mouse is hovered over their respective infos in Construction Window. + * Efficiency and available Workforce are displayed at the top of the Construction Window and in the tooltips of the workshop fields in the Workshop List. + * Workshop List now groups workshops by vessel and sorts them by planet and alphabetically. + * Planet and Vessel fields in the Workshop List when pressed focus the camera on the corresponding planet/vessel in Map View or Tracking Station. + * Workshop fileds of the active vessel when pressed toggle respective Construction Windows. +* Added another 3s delay before fixing Kit to the ground. +* **For modders**: added check for non-existing MODULE[NotGroundWorkshop] to blacklist parts to which GroundWorkshop module should not be added by MM. + +## v1.1.0 + +* **!!! Converted everything to use MaterialKits instead of Metals !!!** +* * Added MM patch to let the truck also work for Extraplanetary Launchpads assembly (made by **Kerbas-ad-astra**). +* Added the new ExperienceEffect: **ConstructionSkill** to use instead of the stock ones. +* Added **OneTimeResourceConverter** to switch to new StructureResource. +* Stop time-warp if the construction is suspended for some reason. +* Before deployment the kit now checks for movement and ground contact. Then waits additional 3 seconds. This fixes the floating-kit bug. Also, the deployment time is now limited to prevent "explosive" deployment of very small kits. +* Fixed the bug that caused a Kit to fall through the ground on Time Warp. +* Made full ConfigurableContainers a dependency, othewrise GC provides no means of storing StructureResource. +* A DIY Kit now stores another DIY Kit as is, without any mass/cost reduction (no more matryoshka cheating). +* Fixed SEGFAULT on switching to an unloaded workshop from Flight. +* Various small bugfixes. + +## v1.0.0.1 + +* Added **Kit Res.** part menu field that displays the amount of structural resource needed to assemble the Kit. +* Changed skill required for Ore Smelters in IRSUs to match that of the stock IRSU converters. +* Small bugfixes. From a28ef6b817935f7a5008d07c8e7fbbf0a03f8a66 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 1 Apr 2022 16:50:12 +0300 Subject: [PATCH 15/16] Updated AssemblyVersion and ChangeLog --- ChangeLog.md | 7 +++++++ Properties/AssemblyInfo.cs | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index cca6ff7..93b2a1a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,12 @@ # Ground Construction Change Log +## v2.7.1 / 2022-04-01 + +* Compiled for KSP 1.12.3 and latest AT_Utils +* Added `IAnimatedSpace.HasAnimator`; only check `.Opened` when the animator does exist +* `AssemblySpace` is `Valid` only when its `SpawnManager` is +* Internal project changes for CI/CD + ## v2.7.0 * KSP: 1.11.1 diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index bb9c0fa..b39c865 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -28,7 +28,7 @@ #if NIGHTBUILD [assembly: AssemblyVersion("2.7.*")] #else -[assembly: AssemblyVersion("2.7.0")] +[assembly: AssemblyVersion("2.7.1")] #endif [assembly: KSPAssembly("GroundConstruction", 2, 7)] @@ -52,4 +52,4 @@ public ModInfo() ChangeLogURL = "https://github.com/allista/GroundConstruction/blob/master/ChangeLog.md"; } } -} \ No newline at end of file +} From 8fd3882d97ce58967472e92905b295064d86e2f9 Mon Sep 17 00:00:00 2001 From: Allis Tauri Date: Fri, 1 Apr 2022 17:04:43 +0300 Subject: [PATCH 16/16] Updated KSP AVC version file --- GameData/GroundConstruction/GroundConstruction.version | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/GameData/GroundConstruction/GroundConstruction.version b/GameData/GroundConstruction/GroundConstruction.version index 9cd95e6..87d4fca 100644 --- a/GameData/GroundConstruction/GroundConstruction.version +++ b/GameData/GroundConstruction/GroundConstruction.version @@ -7,19 +7,19 @@ { "MAJOR":2, "MINOR":7, - "PATCH":0, + "PATCH":1, "BUILD":0 }, "KSP_VERSION_MIN": { "MAJOR":1, - "MINOR":11, - "PATCH":1 + "MINOR":12, + "PATCH":3 }, "KSP_VERSION_MAX": { "MAJOR":1, - "MINOR":11, - "PATCH":1 + "MINOR":12, + "PATCH":3 } }