From bfc262c8d1ee79a5481071918aebd10cc969ed0b Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Tue, 14 Sep 2021 19:32:37 +0300 Subject: [PATCH 01/35] welding --- Source/Welding.cs | 139 +++++++++++++++++++++++++++++++++ Source/WeldingData.cs | 9 +++ Source/WeldingNodeUtilities.cs | 82 +++++++++++++++++++ source/Kaboom.cs | 50 ++++++++++-- 4 files changed, 275 insertions(+), 5 deletions(-) create mode 100644 Source/Welding.cs create mode 100644 Source/WeldingData.cs create mode 100644 Source/WeldingNodeUtilities.cs diff --git a/Source/Welding.cs b/Source/Welding.cs new file mode 100644 index 0000000..87b3a56 --- /dev/null +++ b/Source/Welding.cs @@ -0,0 +1,139 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; +using System.Reflection; +using PreFlightTests; +using TestScripts; + +namespace Kaboom +{ + public class Welding + { + Vessel vessel; + Part part; + public Welding(Vessel vessel, Part part) + { + this.vessel = vessel; + this.part = part; + } + + public void MergeParts(bool compress) + { + if (vessel.rootPart == part) + { + ScreenMessages.PostScreenMessage("You cannot weld the root part!"); + return; + } + + var wData = LoadWeldingData(); + if (wData == null) + return; + + PerformWeld(wData, compress); + } + + private WeldingData LoadWeldingData(bool silent = false) + { + /********************** + * + * (root)-...-LPA==KGP==LPB + * + * LPA==LPB + * + **********************/ + + var wData = new WeldingData(); + wData.KaboomGluedPart = part; + + + if (part.attachNodes.Count == 2) + { + + wData.LinkedPartA = part.parent; + + foreach(var n in part.attachNodes) + if (n.attachedPart != part.parent) + wData.LinkedPartB = n.attachedPart; + } + + if (wData.LinkedPartA == null || wData.LinkedPartB == null) + { + if (!silent) + ScreenMessages.PostScreenMessage("This part need to have 2 parts on attachment nodes"); + return null; + } + + if (wData.KaboomGluedPart == vessel.rootPart) + { + if (!silent) + ScreenMessages.PostScreenMessage("This part is the root part! Cancelling"); + return null; + } + + return wData; + } + + + private Vector3 GetOffset(WeldingData wData) + { + var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); + var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); + + Vector3 offset = nodeA.position - nodeB.position; + Debug.Log("offset: " + offset); + return offset; + } + + private void PerformWeld(WeldingData wData, bool compress) + { + var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); + var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); + + var offset = GetOffset(wData); + + + WeldingNodeUtilities.DetachPart(wData.KaboomGluedPart); + + WeldingNodeUtilities.SwapLinks( + wData.LinkedPartA, + wData.KaboomGluedPart, + wData.LinkedPartB); + + WeldingNodeUtilities.SwapLinks( + wData.LinkedPartB, + wData.KaboomGluedPart, + wData.LinkedPartA); + + wData.KaboomGluedPart.SetCollisionIgnores(); + + WeldingNodeUtilities.SpawnStructures(wData.LinkedPartA, nodeA); + WeldingNodeUtilities.SpawnStructures(wData.LinkedPartB, nodeB); + + + if (compress) + { + WeldingNodeUtilities.MovePart(wData.LinkedPartB, offset); + } + + + PartJoint newJoint = PartJoint.Create( + wData.LinkedPartB, + wData.LinkedPartA, + nodeB, + nodeA, + AttachModes.STACK); + + wData.LinkedPartB.attachJoint = newJoint; + + SoftExplode(wData.KaboomGluedPart); + } + + private static void SoftExplode(Part thisPart) + { + thisPart.explosionPotential = 0.1f; + thisPart.explode(); + } + } +} diff --git a/Source/WeldingData.cs b/Source/WeldingData.cs new file mode 100644 index 0000000..93305e9 --- /dev/null +++ b/Source/WeldingData.cs @@ -0,0 +1,9 @@ +namespace Kaboom +{ + public class WeldingData + { + public Part LinkedPartA { get; set; } + public Part LinkedPartB { get; set; } + public Part KaboomGluedPart { get; set; } + } +} \ No newline at end of file diff --git a/Source/WeldingNodeUtilities.cs b/Source/WeldingNodeUtilities.cs new file mode 100644 index 0000000..dc833c2 --- /dev/null +++ b/Source/WeldingNodeUtilities.cs @@ -0,0 +1,82 @@ +using System.Linq; +using UnityEngine; +//using USITools; + +namespace Kaboom +{ + public static class WeldingNodeUtilities + { + public static void SpawnStructures(Part thisPart, AttachNode thisNode) + { + var structList = thisPart.FindModulesImplementing(); + foreach (var s in structList.Where(s => s.attachNodeNames.Contains(thisNode.id))) + { + s.SpawnStructure(); + } + } + + public static void DetachPart(Part thisPart) + { + thisPart.parent = null; + thisPart.attachJoint.DestroyJoint(); + thisPart.children.Clear(); + + foreach (var an in thisPart.attachNodes) + { + an.attachedPart = null; + } + thisPart.topNode.attachedPart = null; + } + + public static void MovePart(Part thisPart, Vector3 offset) + { + if (thisPart.Rigidbody != null && thisPart.physicalSignificance == Part.PhysicalSignificance.FULL) + thisPart.transform.position += offset; + + thisPart.UpdateOrgPosAndRot(thisPart.vessel.rootPart); + + foreach (var p in thisPart.children) + MovePart(p, offset); + } + + + public static void SwapLinks(Part thisPart, Part oldPart, Part newPart) + { + if (thisPart.parent != null && thisPart.parent == oldPart) + thisPart.parent = newPart; + + if(thisPart.topNode != null && thisPart.topNode.attachedPart == oldPart) + thisPart.topNode.attachedPart = newPart; + + if (thisPart.attachJoint != null) + { + if (thisPart.attachJoint.Child == oldPart || thisPart.attachJoint.Parent == oldPart) + { + thisPart.attachJoint.DestroyJoint(); + } + } + + foreach (var an in thisPart.attachNodes.Where(an => an.attachedPart == oldPart)) + { + an.attachedPart = newPart; + } + + if (!thisPart.children.Contains(oldPart)) + return; + + thisPart.children.Remove(oldPart); + thisPart.children.Add(newPart); + } + + public static float GetPartThickness(Part thisPart) + { + var diff = thisPart.attachNodes[0].position - thisPart.attachNodes[1].position; + return (diff).magnitude; + } + + public static AttachNode GetLinkingNode(Part p1, Part p2) + { + return p1.attachNodes.FirstOrDefault(an => an.attachedPart == p2); + } + } +} \ No newline at end of file diff --git a/source/Kaboom.cs b/source/Kaboom.cs index ce6b2d1..a606c64 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -3,6 +3,8 @@ using System.Linq; using System.Text; using UnityEngine; +using KSP.Localization; + namespace Kaboom { /// @@ -23,6 +25,32 @@ public class ModuleKaboom : PartModule [KSPField(isPersistant = true)] public double kaboomTime; + [KSPField(isPersistant = true)] + public bool isGlued = false; + + [KSPField(guiName = "Glued", guiActive = true, guiActiveEditor = true, + groupName = "Kaboom", groupStartCollapsed = true)] + public string gluedText = Localizer.Format("#autoLOC_6001071"); /*Disabled*/ + + + [KSPEvent(guiActive = true, guiActiveEditor = true, guiName = "Enable Glued", groupName = "Kaboom", active = true)] + public void GluedEvent() + { + isGlued = !isGlued; + if (isGlued) + { + gluedText = Events["GluedEvent"].guiName = Localizer.Format("#autoLOC_6001072")/*Enabled*/; + Events["GluedEvent"].guiName = "Disable Glued"; + } + + else + { + gluedText = Events["GluedEvent"].guiName = Localizer.Format("#autoLOC_6001071")/*Disabled*/; + Events["GluedEvent"].guiName = "Enable Glued"; + } + + } + [KSPEvent(guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiName = "Kaboom!", groupName = "Kaboom", active = true)] public void KaboomEvent() { @@ -36,8 +64,7 @@ public void CancelKaboomEvent() } [KSPAction("Kaboom!")] - public void KaboomAction(KSPActionParam param) -=> KaboomIt(); + public void KaboomAction(KSPActionParam _) => KaboomIt(); private void KaboomIt() { @@ -47,7 +74,7 @@ private void KaboomIt() if (delay == 0) { - part.explode(); + Proceed(); } else { @@ -57,6 +84,19 @@ private void KaboomIt() } } + private void Proceed() + { + if (isGlued) + { + var k = new Welding(vessel, part); + k.MergeParts(true); + } + else + { + part.explode(); + } + } + private void CancelKaboomIt() { Events["CancelKaboomEvent"].active = false; @@ -73,10 +113,10 @@ public override void OnUpdate() if (Planetarium.GetUniversalTime() >= kaboomTime) { timerActive = false; - part.explode(); + Proceed(); } } - base.OnUpdate(); + //base.OnUpdate(); } } } From 250e79b8b58da361144169460787a974ac859179 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Tue, 14 Sep 2021 19:39:47 +0300 Subject: [PATCH 02/35] Superglue --- source/Kaboom.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/source/Kaboom.cs b/source/Kaboom.cs index a606c64..eb96eab 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -28,27 +28,24 @@ public class ModuleKaboom : PartModule [KSPField(isPersistant = true)] public bool isGlued = false; - [KSPField(guiName = "Glued", guiActive = true, guiActiveEditor = true, - groupName = "Kaboom", groupStartCollapsed = true)] + [KSPField(guiName = "Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom")] public string gluedText = Localizer.Format("#autoLOC_6001071"); /*Disabled*/ - [KSPEvent(guiActive = true, guiActiveEditor = true, guiName = "Enable Glued", groupName = "Kaboom", active = true)] + [KSPEvent(guiName = "Enable Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom", active = true)] public void GluedEvent() { isGlued = !isGlued; if (isGlued) { gluedText = Events["GluedEvent"].guiName = Localizer.Format("#autoLOC_6001072")/*Enabled*/; - Events["GluedEvent"].guiName = "Disable Glued"; + Events["GluedEvent"].guiName = "Disable Superglue"; } - else { gluedText = Events["GluedEvent"].guiName = Localizer.Format("#autoLOC_6001071")/*Disabled*/; - Events["GluedEvent"].guiName = "Enable Glued"; + Events["GluedEvent"].guiName = "Enable Superglue"; } - } [KSPEvent(guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiName = "Kaboom!", groupName = "Kaboom", active = true)] From 21e76e436d8ac4836f181d5e6fc09d14b858107a Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Tue, 14 Sep 2021 20:22:59 +0300 Subject: [PATCH 03/35] copyright --- Source/Welding.cs | 6 +++++- Source/WeldingData.cs | 3 +++ Source/WeldingNodeUtilities.cs | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Source/Welding.cs b/Source/Welding.cs index 87b3a56..3f1d337 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -1,4 +1,7 @@ -using System; +// Based on the https://github.com/UmbraSpaceIndustries/Konstruction/tree/master/Source/Konstruction/Konstruction/Welding +// GPLV3 + +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,6 +12,7 @@ namespace Kaboom { + public class Welding { Vessel vessel; diff --git a/Source/WeldingData.cs b/Source/WeldingData.cs index 93305e9..c4433e9 100644 --- a/Source/WeldingData.cs +++ b/Source/WeldingData.cs @@ -1,3 +1,6 @@ +// Based on the https://github.com/UmbraSpaceIndustries/Konstruction/tree/master/Source/Konstruction/Konstruction/Welding +// GPLV3 + namespace Kaboom { public class WeldingData diff --git a/Source/WeldingNodeUtilities.cs b/Source/WeldingNodeUtilities.cs index dc833c2..0f9fd0b 100644 --- a/Source/WeldingNodeUtilities.cs +++ b/Source/WeldingNodeUtilities.cs @@ -1,3 +1,6 @@ +// Based on the https://github.com/UmbraSpaceIndustries/Konstruction/tree/master/Source/Konstruction/Konstruction/Welding +// GPLV3 + using System.Linq; using UnityEngine; //using USITools; From 1838a174ecb1726d9ec49020d6a7e42df766ed5e Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Tue, 14 Sep 2021 21:24:16 +0300 Subject: [PATCH 04/35] guiName = Toggle Superglue --- source/Kaboom.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/source/Kaboom.cs b/source/Kaboom.cs index eb96eab..bfd45ab 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -14,7 +14,7 @@ public class ModuleKaboom : PartModule { [KSPField(isPersistant = true, guiActiveEditor = true, guiActive = true, guiName = "Kaboom delay", groupDisplayName = "Switch Safety Cover", groupName = "Kaboom", groupStartCollapsed = true, - guiUnits = "Seconds"), + guiUnits = " Seconds"), UI_FloatRange(minValue = 0f, maxValue = 30f, stepIncrement = 1f)] public float delay = 0; @@ -28,23 +28,21 @@ public class ModuleKaboom : PartModule [KSPField(isPersistant = true)] public bool isGlued = false; - [KSPField(guiName = "Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom")] + [KSPField(isPersistant = true, guiName = "Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom")] public string gluedText = Localizer.Format("#autoLOC_6001071"); /*Disabled*/ - [KSPEvent(guiName = "Enable Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom", active = true)] + [KSPEvent(guiName = "Toggle Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom", active = true)] public void GluedEvent() { isGlued = !isGlued; if (isGlued) { - gluedText = Events["GluedEvent"].guiName = Localizer.Format("#autoLOC_6001072")/*Enabled*/; - Events["GluedEvent"].guiName = "Disable Superglue"; + gluedText = Localizer.Format("#autoLOC_6001072")/*Enabled*/; } else { - gluedText = Events["GluedEvent"].guiName = Localizer.Format("#autoLOC_6001071")/*Disabled*/; - Events["GluedEvent"].guiName = "Enable Superglue"; + gluedText = Localizer.Format("#autoLOC_6001071")/*Disabled*/; } } From 8d9c22fc7597a1acc289a9a4e34bcaaa7abc6a5b Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Tue, 14 Sep 2021 23:59:33 +0300 Subject: [PATCH 05/35] new offset; autocancel on glued kaboom problems --- Source/Welding.cs | 37 +++++++++++++++++++------------------ source/Kaboom.cs | 32 ++++++++++++++++++-------------- 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/Source/Welding.cs b/Source/Welding.cs index 3f1d337..8bd570f 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -1,14 +1,7 @@ // Based on the https://github.com/UmbraSpaceIndustries/Konstruction/tree/master/Source/Konstruction/Konstruction/Welding // GPLV3 -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; -using System.Reflection; -using PreFlightTests; -using TestScripts; namespace Kaboom { @@ -23,19 +16,20 @@ public Welding(Vessel vessel, Part part) this.part = part; } - public void MergeParts(bool compress) + public bool MergeParts(bool compress) { if (vessel.rootPart == part) { ScreenMessages.PostScreenMessage("You cannot weld the root part!"); - return; + return false; } var wData = LoadWeldingData(); if (wData == null) - return; + return false; - PerformWeld(wData, compress); + bool sucess = PerformWeld(wData, compress); + return sucess; } private WeldingData LoadWeldingData(bool silent = false) @@ -82,15 +76,20 @@ private WeldingData LoadWeldingData(bool silent = false) private Vector3 GetOffset(WeldingData wData) { - var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); - var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); + //var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); + //var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); + + // offset in wrong direction //Vector3 offset = nodeA.position - nodeB.position; + // nulref //Vector3 offset2 = nodeA.nodeTransform.localPosition - nodeB.nodeTransform.localPosition; - Vector3 offset = nodeA.position - nodeB.position; - Debug.Log("offset: " + offset); - return offset; + // works for a stack of simmetrical parts + Vector3 offset3 = wData.LinkedPartA.transform.localPosition - wData.LinkedPartB.transform.localPosition; + offset3.Normalize(); + offset3 *= WeldingNodeUtilities.GetPartThickness(wData.KaboomGluedPart); + return offset3; } - private void PerformWeld(WeldingData wData, bool compress) + private bool PerformWeld(WeldingData wData, bool compress) { var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); @@ -131,7 +130,9 @@ private void PerformWeld(WeldingData wData, bool compress) wData.LinkedPartB.attachJoint = newJoint; - SoftExplode(wData.KaboomGluedPart); + //SoftExplode(wData.KaboomGluedPart); + wData.KaboomGluedPart.explode(); + return true; } private static void SoftExplode(Part thisPart) diff --git a/source/Kaboom.cs b/source/Kaboom.cs index bfd45ab..241b146 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; -using KSP.Localization; +using KSP.Localization; namespace Kaboom { @@ -13,7 +8,7 @@ namespace Kaboom public class ModuleKaboom : PartModule { [KSPField(isPersistant = true, guiActiveEditor = true, guiActive = true, guiName = "Kaboom delay", - groupDisplayName = "Switch Safety Cover", groupName = "Kaboom", groupStartCollapsed = true, + groupDisplayName = "Kaboom Safety Cover", groupName = "Kaboom", groupStartCollapsed = true, guiUnits = " Seconds"), UI_FloatRange(minValue = 0f, maxValue = 30f, stepIncrement = 1f)] @@ -32,7 +27,8 @@ public class ModuleKaboom : PartModule public string gluedText = Localizer.Format("#autoLOC_6001071"); /*Disabled*/ - [KSPEvent(guiName = "Toggle Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom", active = true)] + [KSPEvent(guiName = "Toggle Superglue", groupName = "Kaboom", + guiActive = true, guiActiveEditor = true, active = true, guiActiveUncommand = true)] public void GluedEvent() { isGlued = !isGlued; @@ -46,13 +42,15 @@ public void GluedEvent() } } - [KSPEvent(guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiName = "Kaboom!", groupName = "Kaboom", active = true)] + [KSPEvent(guiName = "Kaboom!", groupName = "Kaboom", + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, active = true, guiActiveUncommand = true)] public void KaboomEvent() { KaboomIt(); } - [KSPEvent(guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiName = "Cancel Kaboom!", groupName = "Kaboom", active = false)] + [KSPEvent(guiName = "Cancel Kaboom!", groupName = "Kaboom", + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, active = false, guiActiveUncommand = true)] public void CancelKaboomEvent() { CancelKaboomIt(); @@ -69,7 +67,9 @@ private void KaboomIt() if (delay == 0) { - Proceed(); + bool success = Proceed(); + if (!success) + CancelKaboomIt(); } else { @@ -79,16 +79,18 @@ private void KaboomIt() } } - private void Proceed() + private bool Proceed() { if (isGlued) { var k = new Welding(vessel, part); - k.MergeParts(true); + bool success = k.MergeParts(true); + return success; } else { part.explode(); + return true; } } @@ -108,7 +110,9 @@ public override void OnUpdate() if (Planetarium.GetUniversalTime() >= kaboomTime) { timerActive = false; - Proceed(); + bool success = Proceed(); + if (!success) + CancelKaboomIt(); } } //base.OnUpdate(); From 52e42a7be485942721aa63ce40bb4701dae38af1 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Wed, 15 Sep 2021 00:49:14 +0300 Subject: [PATCH 06/35] update check on attachedParts --- Source/Welding.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Source/Welding.cs b/Source/Welding.cs index 8bd570f..f4189c0 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -32,7 +32,7 @@ public bool MergeParts(bool compress) return sucess; } - private WeldingData LoadWeldingData(bool silent = false) + private WeldingData LoadWeldingData() { /********************** * @@ -45,28 +45,28 @@ private WeldingData LoadWeldingData(bool silent = false) var wData = new WeldingData(); wData.KaboomGluedPart = part; + int attachedPartsCount = 0; + foreach (var n in part.attachNodes) + if (n.attachedPart != null) + attachedPartsCount++; - if (part.attachNodes.Count == 2) + //Debug.Log("attachedPartsCount: " + attachedPartsCount + " part.children.Count: " + part.children.Count); + + if (attachedPartsCount == 2 && part.children.Count == 1) { - wData.LinkedPartA = part.parent; - - foreach(var n in part.attachNodes) - if (n.attachedPart != part.parent) - wData.LinkedPartB = n.attachedPart; + wData.LinkedPartB = part.children[0]; } if (wData.LinkedPartA == null || wData.LinkedPartB == null) { - if (!silent) - ScreenMessages.PostScreenMessage("This part need to have 2 parts on attachment nodes"); + ScreenMessages.PostScreenMessage("This part need to have 2 parts on attachment nodes"); return null; } if (wData.KaboomGluedPart == vessel.rootPart) { - if (!silent) - ScreenMessages.PostScreenMessage("This part is the root part! Cancelling"); + ScreenMessages.PostScreenMessage("This part is the root part! Cancelling"); return null; } From dfe077765010202483572c07a8ca5cac984c5af2 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Wed, 15 Sep 2021 21:14:28 +0300 Subject: [PATCH 07/35] add settings: softExplode and red color of the cover --- Source/Welding.cs | 18 +++++++++--------- source/Kaboom.cs | 15 +++++++++++++-- source/Settings.cs | 26 +++++++++----------------- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/Source/Welding.cs b/Source/Welding.cs index f4189c0..3be82b1 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -1,6 +1,7 @@ // Based on the https://github.com/UmbraSpaceIndustries/Konstruction/tree/master/Source/Konstruction/Konstruction/Welding // GPLV3 +using System; using UnityEngine; namespace Kaboom @@ -79,8 +80,8 @@ private Vector3 GetOffset(WeldingData wData) //var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); //var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); - // offset in wrong direction //Vector3 offset = nodeA.position - nodeB.position; - // nulref //Vector3 offset2 = nodeA.nodeTransform.localPosition - nodeB.nodeTransform.localPosition; + //Vector3 offset = nodeA.position - nodeB.position; // offset in wrong direction, depends of angle of the craft? + //Vector3 offset2 = nodeA.nodeTransform.localPosition - nodeB.nodeTransform.localPosition; // // nulref // works for a stack of simmetrical parts Vector3 offset3 = wData.LinkedPartA.transform.localPosition - wData.LinkedPartB.transform.localPosition; @@ -96,7 +97,6 @@ private bool PerformWeld(WeldingData wData, bool compress) var offset = GetOffset(wData); - WeldingNodeUtilities.DetachPart(wData.KaboomGluedPart); WeldingNodeUtilities.SwapLinks( @@ -114,13 +114,11 @@ private bool PerformWeld(WeldingData wData, bool compress) WeldingNodeUtilities.SpawnStructures(wData.LinkedPartA, nodeA); WeldingNodeUtilities.SpawnStructures(wData.LinkedPartB, nodeB); - if (compress) { WeldingNodeUtilities.MovePart(wData.LinkedPartB, offset); } - PartJoint newJoint = PartJoint.Create( wData.LinkedPartB, wData.LinkedPartA, @@ -130,14 +128,16 @@ private bool PerformWeld(WeldingData wData, bool compress) wData.LinkedPartB.attachJoint = newJoint; - //SoftExplode(wData.KaboomGluedPart); - wData.KaboomGluedPart.explode(); + SoftExplode(wData.KaboomGluedPart); + return true; } - private static void SoftExplode(Part thisPart) + public static void SoftExplode(Part thisPart) { - thisPart.explosionPotential = 0.1f; + if (HighLogic.CurrentGame.Parameters.CustomParams().softExplode) + thisPart.explosionPotential = Math.Min(thisPart.explosionPotential, 0.1f); + thisPart.explode(); } } diff --git a/source/Kaboom.cs b/source/Kaboom.cs index 241b146..4066a42 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -8,7 +8,7 @@ namespace Kaboom public class ModuleKaboom : PartModule { [KSPField(isPersistant = true, guiActiveEditor = true, guiActive = true, guiName = "Kaboom delay", - groupDisplayName = "Kaboom Safety Cover", groupName = "Kaboom", groupStartCollapsed = true, + groupName = "Kaboom", groupStartCollapsed = true, guiUnits = " Seconds"), UI_FloatRange(minValue = 0f, maxValue = 30f, stepIncrement = 1f)] @@ -59,6 +59,17 @@ public void CancelKaboomEvent() [KSPAction("Kaboom!")] public void KaboomAction(KSPActionParam _) => KaboomIt(); + public override void OnStart(StartState state) + { + base.OnStart(state); + + if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) + Fields["delay"].group.displayName = "Kaboom Safety Cover"; + else + Fields["delay"].group.displayName = "Kaboom Safety Cover"; + + } + private void KaboomIt() { Events["CancelKaboomEvent"].active = true; @@ -89,7 +100,7 @@ private bool Proceed() } else { - part.explode(); + Welding.SoftExplode(part); return true; } } diff --git a/source/Settings.cs b/source/Settings.cs index 138ad8d..f5b3ed7 100644 --- a/source/Settings.cs +++ b/source/Settings.cs @@ -4,10 +4,10 @@ using System.Collections; using System.Reflection; -// This will add a tab to the Stock Settings in the Difficulty settings called "On Demand Fuel Cells" +// This will add a tab to the Stock Settings in the Difficulty settings // To use, reference the setting using the following: // -// HighLogic.CurrentGame.Parameters.CustomParams().needsECtoStart +// HighLogic.CurrentGame.Parameters.CustomParams() // // As it is set up, the option is disabled, so in order to enable it, the player would have // to deliberately go in and change it @@ -19,29 +19,21 @@ namespace Kaboom public class Options : GameParameters.CustomParameterNode { - public override string Title { get { return "Default Settings"; } } + public override string Title { get { return "Kaboom!"; } } public override GameParameters.GameMode GameMode { get { return GameParameters.GameMode.ANY; } } public override string Section { get { return "Kaboom!"; } } public override string DisplaySection { get { return "Kaboom!"; } } public override int SectionOrder { get { return 1; } } - [GameParameters.CustomParameterUI("Require EC to run", - toolTip = "if set to yes, the fuel cells will 'stall' if the vessels total electric charge reaches zero and will not function until vessel electric charge is above zero.", - newGameOnly = false, + [GameParameters.CustomParameterUI("Soft Explode", + toolTip = "Kaboom Explodes makes less fire", unlockedDuringMission = true )] - public bool needsECtoStart = false; + public bool softExplode = false; - [GameParameters.CustomParameterUI("Auto Fuel Mode Switch", - toolTip = "if current fuel mode becomes fuel deprived, will 'hunt' or 'search' for a fuel mode that has fuel.", - newGameOnly = false, - unlockedDuringMission = true)] - public bool autoSwitch = true; - - [GameParameters.CustomParameterUI("PAW Color", - toolTip = "allow color coding in ODC PAW (part action window) / part RMB (right menu button).", - newGameOnly = false, + [GameParameters.CustomParameterUI("PAW Safety Cover is Red", + toolTip = "Red color coding of Kaboom Safety Cover in the Part Action Window.\nUpdates after scene change.", unlockedDuringMission = true)] public bool coloredPAW = true; @@ -49,7 +41,7 @@ public class Options : GameParameters.CustomParameterNode // the "if false" to "if true" and set the values as you like -#if true +#if false public override bool HasPresets { get { return true; } } public override void SetDifficultyPreset(GameParameters.Preset preset) { From 921e952850e11eecc2ea27faeeee40e6a2155843 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 16 Sep 2021 01:33:15 +0300 Subject: [PATCH 08/35] Offset as diff of nodes, hooray! --- Source/Welding.cs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Source/Welding.cs b/Source/Welding.cs index 3be82b1..9c05a00 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -33,7 +33,7 @@ public bool MergeParts(bool compress) return sucess; } - private WeldingData LoadWeldingData() + public WeldingData LoadWeldingData() { /********************** * @@ -77,19 +77,23 @@ private WeldingData LoadWeldingData() private Vector3 GetOffset(WeldingData wData) { - //var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); - //var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); - - //Vector3 offset = nodeA.position - nodeB.position; // offset in wrong direction, depends of angle of the craft? - //Vector3 offset2 = nodeA.nodeTransform.localPosition - nodeB.nodeTransform.localPosition; // // nulref - - // works for a stack of simmetrical parts - Vector3 offset3 = wData.LinkedPartA.transform.localPosition - wData.LinkedPartB.transform.localPosition; - offset3.Normalize(); - offset3 *= WeldingNodeUtilities.GetPartThickness(wData.KaboomGluedPart); - return offset3; + //Vector3 offset1 = + //nodeA.owner.transform.rotation * nodeA.position + nodeA.owner.transform.position - + //nodeB.owner.transform.rotation * nodeB.position + nodeB.owner.transform.position; + //Vector3 offset2 = wData.LinkedPartA.transform.localPosition - wData.LinkedPartB.transform.localPosition; + //offset2.Normalize(); + //offset2 *= WeldingNodeUtilities.GetPartThickness(wData.KaboomGluedPart); + + var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartA); + var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartB); + + Vector3 offset = part.transform.rotation * (nodeA.position - nodeB.position); + + return offset; } + + private bool PerformWeld(WeldingData wData, bool compress) { var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); From 1ef3c57509c21d915af9b2b95a059faae421059c Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 16 Sep 2021 01:58:18 +0300 Subject: [PATCH 09/35] put text of KSPField onto KSPEvent, delete KSPField --- source/Kaboom.cs | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/source/Kaboom.cs b/source/Kaboom.cs index 4066a42..ccbd60b 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -23,23 +23,20 @@ public class ModuleKaboom : PartModule [KSPField(isPersistant = true)] public bool isGlued = false; - [KSPField(isPersistant = true, guiName = "Superglue", guiActive = true, guiActiveEditor = true, groupName = "Kaboom")] - public string gluedText = Localizer.Format("#autoLOC_6001071"); /*Disabled*/ - - - [KSPEvent(guiName = "Toggle Superglue", groupName = "Kaboom", + [KSPEvent(groupName = "Kaboom", guiActive = true, guiActiveEditor = true, active = true, guiActiveUncommand = true)] public void GluedEvent() { isGlued = !isGlued; + GUITextUpdate(); + } + + private void GUITextUpdate() + { if (isGlued) - { - gluedText = Localizer.Format("#autoLOC_6001072")/*Enabled*/; - } + Events["GluedEvent"].guiName = "Superglue: " + Localizer.Format("#autoLOC_6001072")/*Enabled*/; else - { - gluedText = Localizer.Format("#autoLOC_6001071")/*Disabled*/; - } + Events["GluedEvent"].guiName = "Superglue: " + Localizer.Format("#autoLOC_6001071")/*Disabled*/; } [KSPEvent(guiName = "Kaboom!", groupName = "Kaboom", @@ -66,7 +63,9 @@ public override void OnStart(StartState state) if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) Fields["delay"].group.displayName = "Kaboom Safety Cover"; else - Fields["delay"].group.displayName = "Kaboom Safety Cover"; + Fields["delay"].group.displayName = "Kaboom Safety Cover"; + + GUITextUpdate(); } From 3a3adea87092d7278fc4aa86b3f922248c043a36 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 16 Sep 2021 02:03:29 +0300 Subject: [PATCH 10/35] rename WeldingNodeUtilities to WeldingUtilities --- Source/Welding.cs | 20 +++++++++---------- ...ngNodeUtilities.cs => WeldingUtilities.cs} | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) rename Source/{WeldingNodeUtilities.cs => WeldingUtilities.cs} (98%) diff --git a/Source/Welding.cs b/Source/Welding.cs index 9c05a00..e8de509 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -84,8 +84,8 @@ private Vector3 GetOffset(WeldingData wData) //offset2.Normalize(); //offset2 *= WeldingNodeUtilities.GetPartThickness(wData.KaboomGluedPart); - var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartA); - var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartB); + var nodeA = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartA); + var nodeB = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartB); Vector3 offset = part.transform.rotation * (nodeA.position - nodeB.position); @@ -96,31 +96,31 @@ private Vector3 GetOffset(WeldingData wData) private bool PerformWeld(WeldingData wData, bool compress) { - var nodeA = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); - var nodeB = WeldingNodeUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); + var nodeA = WeldingUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); + var nodeB = WeldingUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); var offset = GetOffset(wData); - WeldingNodeUtilities.DetachPart(wData.KaboomGluedPart); + WeldingUtilities.DetachPart(wData.KaboomGluedPart); - WeldingNodeUtilities.SwapLinks( + WeldingUtilities.SwapLinks( wData.LinkedPartA, wData.KaboomGluedPart, wData.LinkedPartB); - WeldingNodeUtilities.SwapLinks( + WeldingUtilities.SwapLinks( wData.LinkedPartB, wData.KaboomGluedPart, wData.LinkedPartA); wData.KaboomGluedPart.SetCollisionIgnores(); - WeldingNodeUtilities.SpawnStructures(wData.LinkedPartA, nodeA); - WeldingNodeUtilities.SpawnStructures(wData.LinkedPartB, nodeB); + WeldingUtilities.SpawnStructures(wData.LinkedPartA, nodeA); + WeldingUtilities.SpawnStructures(wData.LinkedPartB, nodeB); if (compress) { - WeldingNodeUtilities.MovePart(wData.LinkedPartB, offset); + WeldingUtilities.MovePart(wData.LinkedPartB, offset); } PartJoint newJoint = PartJoint.Create( diff --git a/Source/WeldingNodeUtilities.cs b/Source/WeldingUtilities.cs similarity index 98% rename from Source/WeldingNodeUtilities.cs rename to Source/WeldingUtilities.cs index 0f9fd0b..e05ef9d 100644 --- a/Source/WeldingNodeUtilities.cs +++ b/Source/WeldingUtilities.cs @@ -7,7 +7,7 @@ namespace Kaboom { - public static class WeldingNodeUtilities + public static class WeldingUtilities { public static void SpawnStructures(Part thisPart, AttachNode thisNode) { From fe3cd4bf7c689835571f474860cfe27d1ec408fd Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 16 Sep 2021 02:07:33 +0300 Subject: [PATCH 11/35] move SoftExplode to WeldingUtilities --- Source/Welding.cs | 10 +--------- Source/WeldingUtilities.cs | 9 +++++++++ source/Kaboom.cs | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Source/Welding.cs b/Source/Welding.cs index e8de509..fce6caf 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -132,17 +132,9 @@ private bool PerformWeld(WeldingData wData, bool compress) wData.LinkedPartB.attachJoint = newJoint; - SoftExplode(wData.KaboomGluedPart); + WeldingUtilities.Explode(wData.KaboomGluedPart); return true; } - - public static void SoftExplode(Part thisPart) - { - if (HighLogic.CurrentGame.Parameters.CustomParams().softExplode) - thisPart.explosionPotential = Math.Min(thisPart.explosionPotential, 0.1f); - - thisPart.explode(); - } } } diff --git a/Source/WeldingUtilities.cs b/Source/WeldingUtilities.cs index e05ef9d..8e7d53e 100644 --- a/Source/WeldingUtilities.cs +++ b/Source/WeldingUtilities.cs @@ -1,6 +1,7 @@ // Based on the https://github.com/UmbraSpaceIndustries/Konstruction/tree/master/Source/Konstruction/Konstruction/Welding // GPLV3 +using System; using System.Linq; using UnityEngine; //using USITools; @@ -81,5 +82,13 @@ public static AttachNode GetLinkingNode(Part p1, Part p2) { return p1.attachNodes.FirstOrDefault(an => an.attachedPart == p2); } + + public static void Explode(Part thisPart) + { + if (HighLogic.CurrentGame.Parameters.CustomParams().softExplode) + thisPart.explosionPotential = Math.Min(thisPart.explosionPotential, 0.1f); + + thisPart.explode(); + } } } \ No newline at end of file diff --git a/source/Kaboom.cs b/source/Kaboom.cs index ccbd60b..26ec349 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -61,7 +61,7 @@ public override void OnStart(StartState state) base.OnStart(state); if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) - Fields["delay"].group.displayName = "Kaboom Safety Cover"; + Fields["delay"].group.displayName = "Kaboom Safety Cover"; else Fields["delay"].group.displayName = "Kaboom Safety Cover"; @@ -99,7 +99,7 @@ private bool Proceed() } else { - Welding.SoftExplode(part); + WeldingUtilities.Explode(part); return true; } } From 3e7eb45335a34580c2192d1ed66046f2f16337cb Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 16 Sep 2021 02:12:20 +0300 Subject: [PATCH 12/35] Options -> KaboomSettings --- Source/WeldingUtilities.cs | 2 +- source/Kaboom.cs | 2 +- source/Settings.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/WeldingUtilities.cs b/Source/WeldingUtilities.cs index 8e7d53e..f3678e3 100644 --- a/Source/WeldingUtilities.cs +++ b/Source/WeldingUtilities.cs @@ -85,7 +85,7 @@ public static AttachNode GetLinkingNode(Part p1, Part p2) public static void Explode(Part thisPart) { - if (HighLogic.CurrentGame.Parameters.CustomParams().softExplode) + if (HighLogic.CurrentGame.Parameters.CustomParams().softExplode) thisPart.explosionPotential = Math.Min(thisPart.explosionPotential, 0.1f); thisPart.explode(); diff --git a/source/Kaboom.cs b/source/Kaboom.cs index 26ec349..9c6f8bb 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -60,7 +60,7 @@ public override void OnStart(StartState state) { base.OnStart(state); - if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) + if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) Fields["delay"].group.displayName = "Kaboom Safety Cover"; else Fields["delay"].group.displayName = "Kaboom Safety Cover"; diff --git a/source/Settings.cs b/source/Settings.cs index f5b3ed7..1706aa5 100644 --- a/source/Settings.cs +++ b/source/Settings.cs @@ -17,7 +17,7 @@ namespace Kaboom // http://forum.kerbalspaceprogram.com/index.php?/topic/147576-modders-notes-for-ksp-12/#comment-2754813 // search for "Mod integration into Stock Settings - public class Options : GameParameters.CustomParameterNode + public class KaboomSettings : GameParameters.CustomParameterNode { public override string Title { get { return "Kaboom!"; } } public override GameParameters.GameMode GameMode { get { return GameParameters.GameMode.ANY; } } From b4df189f21b0fddbb7735147d80261ed5be3a08e Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 16 Sep 2021 13:40:50 +0300 Subject: [PATCH 13/35] spaces --- Source/Welding.cs | 15 ++++++--------- Source/WeldingUtilities.cs | 5 ++--- source/Kaboom.cs | 6 +++--- source/Settings.cs | 7 +++---- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/Source/Welding.cs b/Source/Welding.cs index fce6caf..a49dcff 100644 --- a/Source/Welding.cs +++ b/Source/Welding.cs @@ -29,11 +29,11 @@ public bool MergeParts(bool compress) if (wData == null) return false; - bool sucess = PerformWeld(wData, compress); + bool sucess = PerformWeld(wData, compress); return sucess; } - public WeldingData LoadWeldingData() + private WeldingData LoadWeldingData() { /********************** * @@ -74,7 +74,6 @@ public WeldingData LoadWeldingData() return wData; } - private Vector3 GetOffset(WeldingData wData) { //Vector3 offset1 = @@ -84,16 +83,14 @@ private Vector3 GetOffset(WeldingData wData) //offset2.Normalize(); //offset2 *= WeldingNodeUtilities.GetPartThickness(wData.KaboomGluedPart); - var nodeA = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartA); - var nodeB = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartB); + AttachNode a = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartA); + AttachNode b = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartB); + + Vector3 offset = part.transform.rotation * (a.position - b.position); - Vector3 offset = part.transform.rotation * (nodeA.position - nodeB.position); - return offset; } - - private bool PerformWeld(WeldingData wData, bool compress) { var nodeA = WeldingUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); diff --git a/Source/WeldingUtilities.cs b/Source/WeldingUtilities.cs index f3678e3..5ccf0b8 100644 --- a/Source/WeldingUtilities.cs +++ b/Source/WeldingUtilities.cs @@ -43,13 +43,12 @@ public static void MovePart(Part thisPart, Vector3 offset) MovePart(p, offset); } - public static void SwapLinks(Part thisPart, Part oldPart, Part newPart) { if (thisPart.parent != null && thisPart.parent == oldPart) thisPart.parent = newPart; - if(thisPart.topNode != null && thisPart.topNode.attachedPart == oldPart) + if (thisPart.topNode != null && thisPart.topNode.attachedPart == oldPart) thisPart.topNode.attachedPart = newPart; if (thisPart.attachJoint != null) @@ -91,4 +90,4 @@ public static void Explode(Part thisPart) thisPart.explode(); } } -} \ No newline at end of file +} diff --git a/source/Kaboom.cs b/source/Kaboom.cs index 9c6f8bb..9b14fff 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -23,7 +23,7 @@ public class ModuleKaboom : PartModule [KSPField(isPersistant = true)] public bool isGlued = false; - [KSPEvent(groupName = "Kaboom", + [KSPEvent(groupName = "Kaboom", guiActive = true, guiActiveEditor = true, active = true, guiActiveUncommand = true)] public void GluedEvent() { @@ -39,14 +39,14 @@ private void GUITextUpdate() Events["GluedEvent"].guiName = "Superglue: " + Localizer.Format("#autoLOC_6001071")/*Disabled*/; } - [KSPEvent(guiName = "Kaboom!", groupName = "Kaboom", + [KSPEvent(guiName = "Kaboom!", groupName = "Kaboom", guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, active = true, guiActiveUncommand = true)] public void KaboomEvent() { KaboomIt(); } - [KSPEvent(guiName = "Cancel Kaboom!", groupName = "Kaboom", + [KSPEvent(guiName = "Cancel Kaboom!", groupName = "Kaboom", guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, active = false, guiActiveUncommand = true)] public void CancelKaboomEvent() { diff --git a/source/Settings.cs b/source/Settings.cs index 1706aa5..b03b838 100644 --- a/source/Settings.cs +++ b/source/Settings.cs @@ -7,7 +7,7 @@ // This will add a tab to the Stock Settings in the Difficulty settings // To use, reference the setting using the following: // -// HighLogic.CurrentGame.Parameters.CustomParams() +// HighLogic.CurrentGame.Parameters.CustomParams() // // As it is set up, the option is disabled, so in order to enable it, the player would have // to deliberately go in and change it @@ -27,9 +27,8 @@ public class KaboomSettings : GameParameters.CustomParameterNode [GameParameters.CustomParameterUI("Soft Explode", - toolTip = "Kaboom Explodes makes less fire", - unlockedDuringMission = true - )] + toolTip = "Kaboom explosions make less fire", + unlockedDuringMission = true)] public bool softExplode = false; [GameParameters.CustomParameterUI("PAW Safety Cover is Red", From 6e3f398d43e3b5895f1260651ef0fdce484e933f Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Fri, 17 Sep 2021 03:29:49 -0500 Subject: [PATCH 14/35] Version 1.3.99.0 - BETA! # Version 1.3.99.0 - BETA! -

DO A CLEAN INSTALL: DELETE EXISTING THEN RE-INSTALL

-

BETA SOFTWARE - CAVEAT EMPTOR

- usual spring cleaning and automation - update folder structure - update to modern back-end automation - resolves issue #6 ## Update - recompile for KSP 1.12.2 - update to .NET 4.7.2 - update to C# 9.0 - renamed ModuleKaboom.cs to Kaboom.cs --- Changelog.cfg | 20 +++ GameData/Kaboom/Changelog.cfg | 85 ++++++++++ GameData/Kaboom/Kaboom.version | 42 +++++ GameData/Kaboom/Readme.htm | 157 ++++++++++++++++++ GameData/Kaboom/plugins/Kaboom.dll | Bin 9728 -> 18944 bytes Kaboom.version | 4 +- Readme.htm | 157 ++++++++++++++++++ json/code.json | 2 +- json/ksp.json | 2 +- json/mod.json | 2 +- source/Kaboom.cs | 2 +- source/Properties/AssemblyInfo.cs | 2 +- source/Properties/Version.cs | 35 ++-- source/{ => Support}/Config.cs | 0 source/{ => Support}/InstallChecker.cs | 0 source/{Logging.cs => Support/Loggingv1.cs} | 0 source/{Logs.cs => Support/Logsv1.cs} | 0 source/{ => Support}/Settings.cs | 0 .../TechCheckerv1.cs} | 18 +- {Source => source/Welding}/Welding.cs | 0 {Source => source/Welding}/WeldingData.cs | 0 .../Welding}/WeldingUtilities.cs | 0 source/bin/Debug/Kaboom.xml | 13 -- 23 files changed, 496 insertions(+), 45 deletions(-) create mode 100644 GameData/Kaboom/Changelog.cfg create mode 100644 GameData/Kaboom/Kaboom.version create mode 100644 GameData/Kaboom/Readme.htm create mode 100644 Readme.htm rename source/{ => Support}/Config.cs (100%) rename source/{ => Support}/InstallChecker.cs (100%) rename source/{Logging.cs => Support/Loggingv1.cs} (100%) rename source/{Logs.cs => Support/Logsv1.cs} (100%) rename source/{ => Support}/Settings.cs (100%) rename source/{TechChecker.cs => Support/TechCheckerv1.cs} (94%) rename {Source => source/Welding}/Welding.cs (100%) rename {Source => source/Welding}/WeldingData.cs (100%) rename {Source => source/Welding}/WeldingUtilities.cs (100%) delete mode 100644 source/bin/Debug/Kaboom.xml diff --git a/Changelog.cfg b/Changelog.cfg index 5f94578..3c5552f 100644 --- a/Changelog.cfg +++ b/Changelog.cfg @@ -10,6 +10,26 @@ KERBALCHANGELOG license = GPLv2 author = russnash37, zer0Kerbal VERSION + { + version = 1.3.99.0 + versionName = BETA TEST + change = update folder structure + change = update to modern back-end automation + CHANGE + { + change = Updated + subchange = recompile for KSP 1.12.2 + subchange = update to .NET 4.7.2 + subchange = update to C# + subchange = updated Version.tt to 2.0.0.2 + } + CHANGE + { + change = Issues Resolved + subchange = - resolves issue # + } + } + VERSION { version = 1.3.0.0 versionName = Moar Booms! diff --git a/GameData/Kaboom/Changelog.cfg b/GameData/Kaboom/Changelog.cfg new file mode 100644 index 0000000..3c5552f --- /dev/null +++ b/GameData/Kaboom/Changelog.cfg @@ -0,0 +1,85 @@ +// Changelog.cfg v1.0.0.0 +// Kaboom! +// created: 2020 02 25 +// updated: 15 Jul 2021 + +KERBALCHANGELOG +{ + showChangelog = True + modName = Kaboom! + license = GPLv2 + author = russnash37, zer0Kerbal + VERSION + { + version = 1.3.99.0 + versionName = BETA TEST + change = update folder structure + change = update to modern back-end automation + CHANGE + { + change = Updated + subchange = recompile for KSP 1.12.2 + subchange = update to .NET 4.7.2 + subchange = update to C# + subchange = updated Version.tt to 2.0.0.2 + } + CHANGE + { + change = Issues Resolved + subchange = - resolves issue # + } + } + VERSION + { + version = 1.3.0.0 + versionName = Moar Booms! + change = update folder structure + change = update to modern back-end automation + CHANGE + { + change = Updated + subchange = recompile for KSP 1.12.x + subchange = update to .NET 4.7.2 + subchange = update to C# 9.0 + subchange = renamed ModuleKaboom.cs to Kaboom.cs + } + CHANGE + { + change = Issues Resolved + subchange = - resolves issue #6 + } + } + VERSION + { + version = 1.2.0.0 + versionName = Now with more BOOM! + change = >>-- adoption by zer0Kerbal --<< + change = recompile for KSP 1.7.3 with .NET 3.5 + change = usual spring cleaning and automation + change = Add red switch safety plate to PAW + change = create new thread + } + VERSION + { + version = 1.1.3 + versionName = for Kerbal Space Program 1.4.3 + change = Released on 2017-06-25 + change = Updated for compatibility with KSP 1.3. + } + VERSION + { + version = 1.1.2 + versionName = for Kerbal Space Program 1.2 + change = Released on 2016-10-16 + change = Updated to support KSP 1.2 + } + VERSION + { + version = 1.1.1 + versionName = for Kerbal Space Program 1.1.3 + change = Released on 2016-07-09 + } +} + +// GPLv2 +// zer0Kerbal \ No newline at end of file diff --git a/GameData/Kaboom/Kaboom.version b/GameData/Kaboom/Kaboom.version new file mode 100644 index 0000000..a0e68f5 --- /dev/null +++ b/GameData/Kaboom/Kaboom.version @@ -0,0 +1,42 @@ +{ + "NAME" : "Kaboom", + "URL" : "https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/Kaboom.version", + "DOWNLOAD" : "https://www.curseforge.com/kerbal/ksp-mods/kabooom/files/3392488", + "CHANGE_LOG_URL" : "https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/Changelog.cfg", + "GITHUB" : + { + "USERNAME" : "zer0Kerbal", + "REPOSITORY" : "Kaboom", + "ALLOW_PRE_RELEASE" : false + }, + "VERSION" : + { + "MAJOR" : 1, + "MINOR" : 3, + "PATCH" : 99, + "BUILD" : 0 + }, + "KSP_VERSION" : + { + "MAJOR" : 1, + "MINOR" : 12, + "PATCH" : 2 + }, + "KSP_VERSION_MIN" : + { + "MAJOR" : 1, + "MINOR" : 7, + "PATCH" : 1 + }, + "KSP_VERSION_MAX" : + { + "MAJOR" : 1, + "MINOR" : 12, + "PATCH" : 9999 + }, + "INSTALL_LOC" : + { + "NAME" : "Kaboom", + "DIRECTORY" : "Kaboom" + } +} diff --git a/GameData/Kaboom/Readme.htm b/GameData/Kaboom/Readme.htm new file mode 100644 index 0000000..2dffc04 --- /dev/null +++ b/GameData/Kaboom/Readme.htm @@ -0,0 +1,157 @@ + + +

Download on Curseforge or Github or SpaceDock. Also available on CKAN.

+

Kaboom! (BOOM)

+

Adopted by @zer0Kerbal, originally by @russnash37

+

Another way to not go to space today!

+

What can me more Kerbal than more Explosions!

+

Mod Version
+KSP version KSP-AVC License GPLv2
+Curseforge CKAN GitHub SpaceDock
+Code Validate AVC .version files

+

Kaboom!

+
+

What is Kaboom!?

+

Kaboom! is a very simple mod for KSP that allows the destruction of individual parts:

+
    +
  • Kaboom parts either through the right-click menu or via action groups.
  • +
  • Parts can be kaboomed either immediately or via a tweakable delay timer of up to 30 seconds.
  • +
  • Kabooms can also be set by kerbals on EVA.
  • +
+
+

Future planned features:

+
    +
  • KaboOoming of parts via staging.
  • +
+
+

View full album

+
+

Kaboom!

+
+

Installation Directions:

+ +

Changelog Summary

+
    +
  • See ChangeLog for full details of mod changes
  • +
+

Known Issues

+
    +
  • See Known Issues for full details of feature requests, and known issues
  • +
+

Dependencies

+ +

Recommends

+ +

Suggests

+ +

Supports

+ +

Conflicts

+
    +
  • +none
  • +
+

Replaces

+ +

Tags

+
    +
  • +plugin, config
  • +
+
+

red box below is a link to forum post on how to get support
+How to get support

+
+

License

+ +

Source: GitHub
+License: License GPLv2

+
+

*** All bundled mods are distributed under their own licenses***
+*** All art assets (textures, models, animations) are distributed under their own licenses***

+
+

Original

+

Author: @RussNash37
+Thread
+Download
+Source: GitHub
+License: License WTFPL

+
+

Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license.

+
+
+ + +

+

[^1]: Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

+
v1.3.0.0 original: 11 Aug 2018 0K updated: 17 Jul 2021 zed'K
+ + + + + diff --git a/GameData/Kaboom/plugins/Kaboom.dll b/GameData/Kaboom/plugins/Kaboom.dll index f450d26ec01adebe2764044bef215fc906aa429a..3ca38d467e6ffea3711abb5ddd9f1df5e1cb066f 100644 GIT binary patch literal 18944 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 + +

Download on Curseforge or Github or SpaceDock. Also available on CKAN.

+

Kaboom! (BOOM)

+

Adopted by @zer0Kerbal, originally by @russnash37

+

Another way to not go to space today!

+

What can me more Kerbal than more Explosions!

+

Mod Version
+KSP version KSP-AVC License GPLv2
+Curseforge CKAN GitHub SpaceDock
+Code Validate AVC .version files

+

Kaboom!

+
+

What is Kaboom!?

+

Kaboom! is a very simple mod for KSP that allows the destruction of individual parts:

+
    +
  • Kaboom parts either through the right-click menu or via action groups.
  • +
  • Parts can be kaboomed either immediately or via a tweakable delay timer of up to 30 seconds.
  • +
  • Kabooms can also be set by kerbals on EVA.
  • +
+
+

Future planned features:

+
    +
  • KaboOoming of parts via staging.
  • +
+
+

View full album

+
+

Kaboom!

+
+

Installation Directions:

+ +

Changelog Summary

+
    +
  • See ChangeLog for full details of mod changes
  • +
+

Known Issues

+
    +
  • See Known Issues for full details of feature requests, and known issues
  • +
+

Dependencies

+ +

Recommends

+ +

Suggests

+ +

Supports

+ +

Conflicts

+
    +
  • +none
  • +
+

Replaces

+ +

Tags

+
    +
  • +plugin, config
  • +
+
+

red box below is a link to forum post on how to get support
+How to get support

+
+

License

+ +

Source: GitHub
+License: License GPLv2

+
+

*** All bundled mods are distributed under their own licenses***
+*** All art assets (textures, models, animations) are distributed under their own licenses***

+
+

Original

+

Author: @RussNash37
+Thread
+Download
+Source: GitHub
+License: License WTFPL

+
+

Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license.

+
+
+ + +

+

[^1]: Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

+
v1.3.0.0 original: 11 Aug 2018 0K updated: 17 Jul 2021 zed'K
+ + + + + diff --git a/json/code.json b/json/code.json index b340c03..0a8bf37 100644 --- a/json/code.json +++ b/json/code.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "label": "Code", "labelColor": "66ccff", - "message": "<.Net 4.7.2> ", + "message": "˂˂.Net 4.7.2˃˃ ˂˂Unity 2019.2.2f1˃˃ ˂˂C#˃˃", "color": "darkblue", "style": "plastic" } diff --git a/json/ksp.json b/json/ksp.json index c38cbba..3dcbf69 100644 --- a/json/ksp.json +++ b/json/ksp.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "label": "KSP", "labelColor": "darkblue", - "message": "1.12.1", + "message": "1.12.2", "color": "66ccff", "style": "plastic" } diff --git a/json/mod.json b/json/mod.json index 3a6ff01..206f77e 100644 --- a/json/mod.json +++ b/json/mod.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "label": "Kaboom", "labelColor": "darkgreen", - "message": "1.3.0.0", + "message": "1.3.99.0", "color": "orange", "style": "plastic" } diff --git a/source/Kaboom.cs b/source/Kaboom.cs index 9b14fff..f51c997 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -108,7 +108,7 @@ private void CancelKaboomIt() { Events["CancelKaboomEvent"].active = false; Events["KaboomEvent"].active = true; - ScreenMessages.PostScreenMessage("Kaboom cancelled.", 5.0f, ScreenMessageStyle.UPPER_CENTER); + ScreenMessages.PostScreenMessage("Kaboom canceled.", 5.0f, ScreenMessageStyle.UPPER_CENTER); timerActive = false; } diff --git a/source/Properties/AssemblyInfo.cs b/source/Properties/AssemblyInfo.cs index a49d409..89769ea 100644 --- a/source/Properties/AssemblyInfo.cs +++ b/source/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("rushnash37, zer0Kerbal")] [assembly: AssemblyProduct("Kaboom!")] -[assembly: AssemblyCopyright("Copyright © 2020 All Rights Reserved")] +[assembly: AssemblyCopyright("Copyright © 2020, 2021 All Rights Reserved")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/source/Properties/Version.cs b/source/Properties/Version.cs index b233ff5..93a3994 100644 --- a/source/Properties/Version.cs +++ b/source/Properties/Version.cs @@ -1,24 +1,27 @@ -//<17> +//17 // -// Automatically generated code. Any changes will be lost! - using System.Reflection; +// This code was generated by a tool. Any changes made manually will be lost +// the next time this code is regenerated. +// + +using System.Reflection; - //[assembly: AssemblyFileVersion("1.3.0.0")] - [assembly: AssemblyVersion("1.3.0.0")] +[assembly: AssemblyFileVersion("1.3.99.17")] +[assembly: AssemblyVersion("1.3.99.0")] namespace Kaboom { - public static class Version - { - public const int major = 1; - public const int minor = 3; - public const int patch = 0; - public const int build = 0; - public const string Number = "1.3.0.0"; + public static class Version + { + public const int major = 1; + public const int minor = 3; + public const int patch = 99; + public const int build = 0; + public const string Number = "1.3.99.0"; #if DEBUG - public const string Text = Number + " DEBUG"; + public const string Text = Number + " DEBUG"; #else - public const string Text = Number + ""; + public const string Text = Number + ""; #endif - } -} + } +} \ No newline at end of file diff --git a/source/Config.cs b/source/Support/Config.cs similarity index 100% rename from source/Config.cs rename to source/Support/Config.cs diff --git a/source/InstallChecker.cs b/source/Support/InstallChecker.cs similarity index 100% rename from source/InstallChecker.cs rename to source/Support/InstallChecker.cs diff --git a/source/Logging.cs b/source/Support/Loggingv1.cs similarity index 100% rename from source/Logging.cs rename to source/Support/Loggingv1.cs diff --git a/source/Logs.cs b/source/Support/Logsv1.cs similarity index 100% rename from source/Logs.cs rename to source/Support/Logsv1.cs diff --git a/source/Settings.cs b/source/Support/Settings.cs similarity index 100% rename from source/Settings.cs rename to source/Support/Settings.cs diff --git a/source/TechChecker.cs b/source/Support/TechCheckerv1.cs similarity index 94% rename from source/TechChecker.cs rename to source/Support/TechCheckerv1.cs index 04ee512..3e15017 100644 --- a/source/TechChecker.cs +++ b/source/Support/TechCheckerv1.cs @@ -13,7 +13,7 @@ public static bool TechAvailable get; set; } - + public static bool RealChutes { get; @@ -103,14 +103,14 @@ private void CheckRealChutes() } } - private void OnShowUI() - { - Kaboom.HideUI = false; - } + //private void OnShowUI() + //{ + // Kaboom.HideUI = false; + //} - private void OnHideUI() - { - Kaboom.HideUI = true; - } + //private void OnHideUI() + //{ + // Kaboom.HideUI = true; + //} } } diff --git a/Source/Welding.cs b/source/Welding/Welding.cs similarity index 100% rename from Source/Welding.cs rename to source/Welding/Welding.cs diff --git a/Source/WeldingData.cs b/source/Welding/WeldingData.cs similarity index 100% rename from Source/WeldingData.cs rename to source/Welding/WeldingData.cs diff --git a/Source/WeldingUtilities.cs b/source/Welding/WeldingUtilities.cs similarity index 100% rename from Source/WeldingUtilities.cs rename to source/Welding/WeldingUtilities.cs diff --git a/source/bin/Debug/Kaboom.xml b/source/bin/Debug/Kaboom.xml deleted file mode 100644 index c2c6c23..0000000 --- a/source/bin/Debug/Kaboom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - Kaboom - - - - - - - - - From 2290ee4d741421cbf2fe9adbc08f76272cb43170 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Mon, 20 Sep 2021 14:06:43 +0300 Subject: [PATCH 15/35] fix kabooming by kerbal --- source/Kaboom.cs | 18 ++++++++++-------- source/Repo-Kaboom112.csproj | 4 ++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/source/Kaboom.cs b/source/Kaboom.cs index f51c997..1c207d8 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -1,4 +1,5 @@ using KSP.Localization; +using UnityEngine; namespace Kaboom { @@ -7,11 +8,10 @@ namespace Kaboom ///
public class ModuleKaboom : PartModule { - [KSPField(isPersistant = true, guiActiveEditor = true, guiActive = true, guiName = "Kaboom delay", - groupName = "Kaboom", groupStartCollapsed = true, - guiUnits = " Seconds"), + [KSPField(isPersistant = true, + guiName = "Kaboom delay", groupName = "Kaboom", groupStartCollapsed = true, guiUnits = " Seconds", + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiActiveEditor = true), UI_FloatRange(minValue = 0f, maxValue = 30f, stepIncrement = 1f)] - public float delay = 0; [KSPField(isPersistant = true)] @@ -24,7 +24,8 @@ public class ModuleKaboom : PartModule public bool isGlued = false; [KSPEvent(groupName = "Kaboom", - guiActive = true, guiActiveEditor = true, active = true, guiActiveUncommand = true)] + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiActiveEditor = true, + active = true, guiActiveUncommand = true)] public void GluedEvent() { isGlued = !isGlued; @@ -40,14 +41,16 @@ private void GUITextUpdate() } [KSPEvent(guiName = "Kaboom!", groupName = "Kaboom", - guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, active = true, guiActiveUncommand = true)] + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, + active = true, guiActiveUncommand = true)] public void KaboomEvent() { KaboomIt(); } [KSPEvent(guiName = "Cancel Kaboom!", groupName = "Kaboom", - guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, active = false, guiActiveUncommand = true)] + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, + active = false, guiActiveUncommand = true)] public void CancelKaboomEvent() { CancelKaboomIt(); @@ -66,7 +69,6 @@ public override void OnStart(StartState state) Fields["delay"].group.displayName = "Kaboom Safety Cover"; GUITextUpdate(); - } private void KaboomIt() diff --git a/source/Repo-Kaboom112.csproj b/source/Repo-Kaboom112.csproj index edbcbce..56dcc88 100644 --- a/source/Repo-Kaboom112.csproj +++ b/source/Repo-Kaboom112.csproj @@ -58,6 +58,10 @@ True Version.tt + + + + From 50b64b1470628c5cd6c9d38d3b04786eb2e5cff7 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Mon, 20 Sep 2021 18:20:22 +0300 Subject: [PATCH 16/35] fix decouple of decouplers on glued kaboom; Invoke() with delay instead of OnUpdate --- source/Kaboom.cs | 48 +++++++++++++++--------------------------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/source/Kaboom.cs b/source/Kaboom.cs index 1c207d8..bfb5030 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -14,12 +14,6 @@ public class ModuleKaboom : PartModule UI_FloatRange(minValue = 0f, maxValue = 30f, stepIncrement = 1f)] public float delay = 0; - [KSPField(isPersistant = true)] - public bool timerActive = false; - - [KSPField(isPersistant = true)] - public double kaboomTime; - [KSPField(isPersistant = true)] public bool isGlued = false; @@ -75,35 +69,40 @@ private void KaboomIt() { Events["CancelKaboomEvent"].active = true; Events["KaboomEvent"].active = false; - part.force_activate(); if (delay == 0) { - bool success = Proceed(); - if (!success) - CancelKaboomIt(); + Proceed(); } else { + float delay_scaled = delay; + + if (TimeWarp.WarpMode == TimeWarp.Modes.HIGH) + delay_scaled /= TimeWarp.CurrentRate; + + Invoke("Proceed", delay_scaled); ScreenMessages.PostScreenMessage("Kaboom set for " + delay + " seconds.", 5.0f, ScreenMessageStyle.UPPER_CENTER); - kaboomTime = Planetarium.GetUniversalTime() + delay; - timerActive = true; } } - private bool Proceed() + private void Proceed() { + bool success; if (isGlued) { var k = new Welding(vessel, part); - bool success = k.MergeParts(true); - return success; + success = k.MergeParts(true); } else { + part.force_activate(); WeldingUtilities.Explode(part); - return true; + success = true; } + + if (!success) + CancelKaboomIt(); } private void CancelKaboomIt() @@ -111,23 +110,6 @@ private void CancelKaboomIt() Events["CancelKaboomEvent"].active = false; Events["KaboomEvent"].active = true; ScreenMessages.PostScreenMessage("Kaboom canceled.", 5.0f, ScreenMessageStyle.UPPER_CENTER); - timerActive = false; - } - - public override void OnUpdate() - { - base.OnUpdate(); - if (timerActive) - { - if (Planetarium.GetUniversalTime() >= kaboomTime) - { - timerActive = false; - bool success = Proceed(); - if (!success) - CancelKaboomIt(); - } - } - //base.OnUpdate(); } } } From 682d527745fe84298647d27cfe3528f526641b35 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Mon, 20 Sep 2021 18:29:42 +0300 Subject: [PATCH 17/35] increase unfocusedRange to 10, same as EVA Construction Mode range --- source/Kaboom.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/Kaboom.cs b/source/Kaboom.cs index bfb5030..2e22036 100644 --- a/source/Kaboom.cs +++ b/source/Kaboom.cs @@ -10,7 +10,7 @@ public class ModuleKaboom : PartModule { [KSPField(isPersistant = true, guiName = "Kaboom delay", groupName = "Kaboom", groupStartCollapsed = true, guiUnits = " Seconds", - guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiActiveEditor = true), + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 10f, guiActiveEditor = true), UI_FloatRange(minValue = 0f, maxValue = 30f, stepIncrement = 1f)] public float delay = 0; @@ -18,7 +18,7 @@ public class ModuleKaboom : PartModule public bool isGlued = false; [KSPEvent(groupName = "Kaboom", - guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, guiActiveEditor = true, + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 10f, guiActiveEditor = true, active = true, guiActiveUncommand = true)] public void GluedEvent() { @@ -35,7 +35,7 @@ private void GUITextUpdate() } [KSPEvent(guiName = "Kaboom!", groupName = "Kaboom", - guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 10f, active = true, guiActiveUncommand = true)] public void KaboomEvent() { @@ -43,7 +43,7 @@ public void KaboomEvent() } [KSPEvent(guiName = "Cancel Kaboom!", groupName = "Kaboom", - guiActive = true, guiActiveUnfocused = true, unfocusedRange = 5f, + guiActive = true, guiActiveUnfocused = true, unfocusedRange = 10f, active = false, guiActiveUncommand = true)] public void CancelKaboomEvent() { From d15d5ba02e69c378c13f413dd9b5c6581bb356cd Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 14:49:35 -0500 Subject: [PATCH 18/35] rename Patches to Compatibility :file_folder: # folder rename - Patches to Compatibility :file_folder: --- GameData/Kaboom/{Patches => Compatability}/Kaboom.cfg | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Kaboom/{Patches => Compatability}/Kaboom.cfg (100%) diff --git a/GameData/Kaboom/Patches/Kaboom.cfg b/GameData/Kaboom/Compatability/Kaboom.cfg similarity index 100% rename from GameData/Kaboom/Patches/Kaboom.cfg rename to GameData/Kaboom/Compatability/Kaboom.cfg From 3ec24eff31e0cbecca9a6fc469c549871c5b7bf6 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 14:50:03 -0500 Subject: [PATCH 19/35] Create license-original.txt added explicit original license file. --- license-original.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 license-original.txt diff --git a/license-original.txt b/license-original.txt new file mode 100644 index 0000000..d1ec4e0 --- /dev/null +++ b/license-original.txt @@ -0,0 +1 @@ +Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license. \ No newline at end of file From 90a9b46be438049cc38f2ce1e933c92a73caba10 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 14:50:08 -0500 Subject: [PATCH 20/35] Delete Readme.htm --- Readme.htm | 157 ----------------------------------------------------- 1 file changed, 157 deletions(-) delete mode 100644 Readme.htm diff --git a/Readme.htm b/Readme.htm deleted file mode 100644 index 2dffc04..0000000 --- a/Readme.htm +++ /dev/null @@ -1,157 +0,0 @@ - - -

Download on Curseforge or Github or SpaceDock. Also available on CKAN.

-

Kaboom! (BOOM)

-

Adopted by @zer0Kerbal, originally by @russnash37

-

Another way to not go to space today!

-

What can me more Kerbal than more Explosions!

-

Mod Version
-KSP version KSP-AVC License GPLv2
-Curseforge CKAN GitHub SpaceDock
-Code Validate AVC .version files

-

Kaboom!

-
-

What is Kaboom!?

-

Kaboom! is a very simple mod for KSP that allows the destruction of individual parts:

-
    -
  • Kaboom parts either through the right-click menu or via action groups.
  • -
  • Parts can be kaboomed either immediately or via a tweakable delay timer of up to 30 seconds.
  • -
  • Kabooms can also be set by kerbals on EVA.
  • -
-
-

Future planned features:

-
    -
  • KaboOoming of parts via staging.
  • -
-
-

View full album

-
-

Kaboom!

-
-

Installation Directions:

- -

Changelog Summary

-
    -
  • See ChangeLog for full details of mod changes
  • -
-

Known Issues

-
    -
  • See Known Issues for full details of feature requests, and known issues
  • -
-

Dependencies

- -

Recommends

- -

Suggests

- -

Supports

- -

Conflicts

-
    -
  • -none
  • -
-

Replaces

- -

Tags

-
    -
  • -plugin, config
  • -
-
-

red box below is a link to forum post on how to get support
-How to get support

-
-

License

- -

Source: GitHub
-License: License GPLv2

-
-

*** All bundled mods are distributed under their own licenses***
-*** All art assets (textures, models, animations) are distributed under their own licenses***

-
-

Original

-

Author: @RussNash37
-Thread
-Download
-Source: GitHub
-License: License WTFPL

-
-

Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license.

-
-
- - -

-

[^1]: Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

-
v1.3.0.0 original: 11 Aug 2018 0K updated: 17 Jul 2021 zed'K
- - - - - From 7589147652a86b8e28cc903be9c814b5b1cd11d6 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 20:01:53 -0500 Subject: [PATCH 21/35] Update Readme.md --- Readme.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Readme.md b/Readme.md index 1d3467e..3f20d17 100644 --- a/Readme.md +++ b/Readme.md @@ -13,7 +13,7 @@ updated: 17 Jul 2021 --> ## *What can me more Kerbal than more Explosions!* ![Mod Version][shield:mod:latest] -![KSP version][shield:ksp] ![KSP-AVC][shield:kspavc] ![License GPLv2][shield:license] +![KSP version][shield:ksp] ![KSP-AVC][shield:kspavc] ![License GPLv2][LIC:shd] ![Curseforge][shield:curseforge] ![CKAN][shield:ckan] ![GitHub][shield:github] ![SpaceDock][shield:spacedock] ![Code][shield:code] ![Validate AVC .version files][shield:avcvalid] @@ -94,7 +94,7 @@ Future planned features: ### License #### aka Legal Mumbo Jumbo Source: [GitHub][MOD:github:repo] -License: ![License GPLv2][shield:license] +License: ![License GPLv2][LIC:shd] > *** All bundled mods are distributed under their own licenses*** > *** All art assets (textures, models, animations) are distributed under their own licenses*** ### Original @@ -102,7 +102,7 @@ Author: [@RussNash37][LINK:russnash37] [Thread][MOD:original:thread] [Download][MOD:original:download] Source: [GitHub][MOD:original:source] -License: ![License WTFPL][shield:license:original] ![][LOGO:wtfpl] +License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] > Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license. *** @@ -128,7 +128,7 @@ License: ![License WTFPL][shield:license:original] ![][LOGO:wtfpl] [MOD:original:source]: https://github.com/russnash/Kaboom [MOD:original:thread]: https://forum.kerbalspaceprogram.com/index.php?/topic/94674-* -[shield:license:original]: https://img.shields.io/badge/License-WTFPL-red?backgroud=black?style=plastic "WTFPL" +[LIC:shd:original]: https://img.shields.io/badge/License-WTFPL-red?backgroud=black?style=plastic "WTFPL" [MOD:original:download]: https://github.com/russnash/Kaboom/releases/latest [LOGO:wtfpl]: https://www.wtfpl.net/wp-content/uploads/2012/12/wtfpl-badge-4.png "WTFPL" @@ -150,12 +150,12 @@ License: ![License WTFPL][shield:license:original] ![][LOGO:wtfpl] [shield:ksp]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Komplexity/master/json/ksp.json&logo=data:image/webp;base64,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 -[shield:license]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/license.json&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAF+mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTA0LTA1VDIxOjM5OjE3LTA1OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wNC0wNVQyMTo0MDozNy0wNTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wNC0wNVQyMTo0MDozNy0wNTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjOWUxZTY1Yi03Y2IxLTQ4NGQtYTIyZi1kNWZlZGVmNTUzYjAiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1YmY2YjU0MC02M2EyLTlkNDYtODU3OC1jOWRjYjA4ZWQ3NjMiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNjk0NThmNi0xZTRiLWNjNDYtYjYzOC00YTBmYTRjNjMxYzQiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA2OTQ1OGY2LTFlNGItY2M0Ni1iNjM4LTRhMGZhNGM2MzFjNCIgc3RFdnQ6d2hlbj0iMjAyMC0wNC0wNVQyMTozOToxNy0wNTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjOWUxZTY1Yi03Y2IxLTQ4NGQtYTIyZi1kNWZlZGVmNTUzYjAiIHN0RXZ0OndoZW49IjIwMjAtMDQtMDVUMjE6NDA6MzctMDU6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz77pP21AAACXUlEQVQ4y4VUPWhiQRB+ihAFhShqY4JNGksbe8H6TtDGFMJxFqnuijss5bCQ2CtWamFjIYKIjZw/RAk2FoIgWpjEnCeIohfxB39mb2Z5inhJbmDYnZ1vvpmdN/sE4V85Q/2MmpJIJE2lUjmglWzx/Ez4jzhRey6Xi6XTafb4+MjG4zFfyaZz8ou4V+XbxcUFq1QqTBR4RbmfcIQ/Jfig1+vZbrc7BJMcExzbo9GIER7jPu4J5Kjzfr/PCWq1Gmw2Gw6eTqfw/PwMLy8v3F6tVkTA9/V6nUgWYrzwxev1ssFgwLCBgDZcXV3Ber0Gh8PBbalUCoVCAe7v70Gj0eyTMLvdTkRfiaSUz+fZ5eUl2Gw2GA6HHLxYLOD8/Bxub28hGAyCTqeDeDwOlIh8VE0ulyOSkoBN+hWJRJhMJoPtdgvdbhdarRZgf8BgMEA0GoVwOMwJE4kEaLVaWC6XnASvyrDKvmA2m+exWIzJ5XLu8Pl8/Artdhvwk/I9aTabhXK5DAqF4tDg2WzG0F4IarX6d7PZpLIgFApxJ+0pwGKxgMfjOTSTKiEfzg1vtljJgHpy1+v1WDKZ5ACVSsWzPT09AX5G8Pv9h8yZTOZQmdVqhVQqRcnviMTrdrv5dGGDIRAIwMPDAw+qVqt8v5fJZALFYpGCodPpMKfTSSReIlGhbrEHb03pgeT4DGeICLZiPJdro9HI5vM5Ow08lr2PcISnuNPR/2EymVij0Xj37ZCfcIR/6xF+Qh3f3NywUqnEXzBOLl/JpnPyi7h3RY36HfUn/kv6OHB/aCVbPFefBvwFqoJzo/34MwsAAAAASUVORK5CYII= +[LIC:shd]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/license.json?logo=gnu&logoColor=A42E2B [shield:code]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/code.json "Code" [shield:curseforge]: https://img.shields.io/badge/CurseForge-Listed-blue.svg?labelColor=black&style=plastic&logo=curseforge -[shield:ckan]: https://img.shields.io/badge/CKAN-Indexed-blue.svg?labelColor=black&style=plastic +[shield:ckan]: https://img.shields.io/badge/CKAN-Kaboom-blue.svg?labelColor=black&style=plastic [shield:github]: https://img.shields.io/badge/Github-Indexed-blue.svg?labelColor=black&style=plastic&logo=github [shield:spacedock]: https://img.shields.io/badge/SpaceDock-Listed-blue?labelColor=black&style=plastic&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzFBMUExQTt9Cgkuc3Qxe2ZpbGw6IzA1Nzg5Mzt9Cgkuc3Qye2ZpbGw6IzA3QUNEMjt9Cjwvc3R5bGU+CjxwYXRoIGlkPSJYTUxJRF8xXyIgY2xhc3M9InN0MCIgZD0iTTQwMCwwLjZIMTAwYy01NSwwLTEwMCw0NS0xMDAsMTAwVjQwMGMwLDU1LDQ1LDEwMCwxMDAsMTAwaDMwMGM1NSwwLDEwMC00NSwxMDAtMTAwVjEwMC42CglDNTAwLDQ1LjYsNDU1LDAuNiw0MDAsMC42eiIvPgo8ZyBpZD0iWE1MSURfNl8iPgoJPGcgaWQ9IlhNTElEXzlfIj4KCQk8cGF0aCBpZD0iWE1MSURfMTdfIiBjbGFzcz0ic3QxIiBkPSJNMTgzLjMsMTY1LjljNi40LTMuNiwxNi45LTMuNiwyMy4zLDBMNDY3LjQsMzE0YzYuNCwzLjYsNi40LDkuNiwwLDEzLjJMMjA2LjYsNDc0LjQKCQkJYy02LjQsMy42LTE3LjcsNi42LTI1LDYuNmgtNDQuOGMtNy40LDAtOC4xLTMtMS43LTYuNmwyNjEtMTQ3LjJjNi40LTMuNiw2LjQtOS42LDAtMTMuMkwxNzEsMTg2Yy02LjQtMy42LTYuNC05LjYsMC0xMy4yCgkJCUwxODMuMywxNjUuOXoiLz4KCTwvZz4KCTxnIGlkPSJYTUxJRF84XyI+CgkJPHBhdGggaWQ9IlhNTElEXzE2XyIgY2xhc3M9InN0MiIgZD0iTTMxOC44LDE5Yy03LjQsMC0xOC42LDIuOC0yNSw2LjRMMzMsMTczLjRjLTYuNCwzLjYtNi40LDkuNSwwLDEzLjFsMjYwLjcsMTQ3LjEKCQkJYzYuNCwzLjYsMTYuOSwzLjYsMjMuMywwbDEyLjMtN2M2LjQtMy42LDYuNC05LjUsMC0xMy4ybC0yMjUuMS0xMjdjLTYuNC0zLjYtNi40LTkuNSwwLTEzLjJMMzY1LjYsMjUuNGM2LjQtMy42LDUuNi02LjQtMS43LTYuNAoJCQlIMzE4Ljh6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg== "SpaceDock" From d703617091e0e1635125a91c9f790eafbb845fe0 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 20:02:53 -0500 Subject: [PATCH 22/35] Update readme.md --- Readme.md => readme.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Readme.md => readme.md (100%) diff --git a/Readme.md b/readme.md similarity index 100% rename from Readme.md rename to readme.md From f0b6df40f7841fe00a5f61b49bc9b5a2961a6ef4 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 20:04:27 -0500 Subject: [PATCH 23/35] Update Readme.md --- Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index 3f20d17..e31cc2f 100644 --- a/Readme.md +++ b/Readme.md @@ -150,7 +150,7 @@ License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] [shield:ksp]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Komplexity/master/json/ksp.json&logo=data:image/webp;base64,UklGRpAGAABXRUJQVlA4TIQGAAAvH8AHEE0obNsGDakwXkT/Q4chj76jn1yYjSRjH6H+6xQqRUkkSc5ckHD+NUUVhx4+RNu2bTTl/3OTVhD6H8u6fF8dDYm40CK7N0CjAxK52rYtjfQRAvGNjbu7V+vuLp2fwhzA6gG4li6de+nuO+4uJBlkwoTA//90kENgtZZs27ZpO2Oufa5vbNsq2Sw6qaa9r3n/kZJTex/wSrFt27o62kuSJNuqrdTa1+/7uLu7uzQZAk0mRN/mAz2CAbi723vvy5WztxxIAAiw+dh2bdvWZJuT12y1bdu2bdu2bbs3AQABlsED+y50lDqLE4pf/Uxe8KO77HFes9hvxu1p3O2Q09LVg0NVjo7Z5U6AvwBSOfivKdQTujOnXNG8hzNhqYSMMHJ+MwWWyTSjNUoP1jWHp1ZNmgB8TMH3Tl33mvoVb8uIj3umyIJLsAmYoCIqUCVMCN5WrW78Qi+AkeaGOkWFk3QbRmIWHpIZSURXDxhJVlJiYZ6kLEgeEjIRCBmxebhCTWlTJNaXLystGysVToPOAFJJjqSPNOXftSVbXPQjxrzVaFNzXvBonWJlonIVTJabAfjZ0Jxufl5GPntEHKjB7PIXtg6eYHywJn3hTdijjXUain94KjfCfg1hM3AZRR4N16VMXBrsDVYDCjOIMmGFsAab8rdY7+kIw0BgtRgL1DKJeuNZdQ9f5RAGGfOQfZxexj7t37RkjNp4rPDIHOJVyPBF+XHKsnQk4SWRBl8Wot74WtkBqidQggbyj2vW1WEFG6JfUZ8UxhVzOmAUdKTYZ3yxR2QwIIAQdA9YgiRBZWyCguiOER9y9IauiyGqR0EayVLiEVwmXmF5+Z2jfohj8i1q8ybRahCBAXZBCBUqLgAACQFzp5M/o5wzCDcCJZEOF9EzggM7NEd18c1Q85gPBldtg6mwB1N+hzyTSFp5jWM+WpCRBEBAjIaUxJI80o3s6vDYJ7gNXuAUfOacvsLvLhNIMaMwh8GccsXjtuiK+wkxZ/kVdOCzoCeAOn+N7H1rU1YT35MgAWY9yD5wMWI7j7G976bSh8LxDx2jI3IJRAnJ+RQQIU7gABnLd3vKSyMAd71mq7HgV3AJ+Sxh5Bz5O0z/gbTiNT8DxQssrrv7Uyx9Y7q6BQVUoIGonF/FfoC/RqwVHlviCRSABDvLaCUfZlz1cNENn6adNTz+AF8v8KWQAFL+QMkpCthFkpvvq7+2/to6AIBhyvPdrUr3g1XwBEJPMeP/98SxWWvs3nHIhgNnsY1RWVyw+Guh5IZLgj9WzPi/iEk9gPPGLAni3aRlsqlGQ9jP4z9Q/s/xi3dw486abm6Bqi2l3qu9e9tQsdVMdG4zbVYqp5wJcBSA2W6sNmkwxuNk+nw3r4MFi/4EkTAhiRFk70jkqNDiWbDK65OLIn0s0wD/ucAp3XwVSsSNBAqjFUIXwFE0MihZQ6utQYV2oR+tShO7Ad6bswY3xd7qe0VrVxK9ZjueQy4TPnF8MCQGjoxSugSFgFMV4LiVwgsn/i+gXZ2FzplAduxnn0/OlW0uqf+M64MRPqzwrl+PnpKQSaXS49Ui7n2/ctFtHtAtiprzxq6WniwESvW5yUG1Xx6/8Hx8NKELwKZK15pV/EvXvm9ZMlx0aKUO98iUPaWvst/n8ZbOmkvGhcOQRWf5zj9dk9cfpad5oHN3Rns/wsuvy2puxz1Ziu96Q7/SOWoROzvNzFo5Z5+1BDej3OjQ/XymEkW9jr0em5g5SdX8VC2gf9xJb/RWCC5bIKWDgWcYf+K9Kje3zbQBh/F448wMLoICeUyJ330nXlPmawiRT/sblG4vWrbErgQaMzYbZcwbhSaNrwH+Tqa04jqrd3JZTvwbFxHFSVMAv5UZdEq+tQUupcis/5+MZNsxk9b8TPa7cMqdzzrh9FtD5v+vPACvJy7nDT69IP/Yx6EywGdTFsD5iU7bqkovJogzTjQm3iFTyp4jV4bjVKdcnv5/JrhokmpnGAIA4D/AXYCfVgoBXnrDkCqqCHRG529HeYB51Jy1z6nlW/gnVmzyxmVHxnQrxXxelcI0yN85udPl+//t2rzKzA+oluPTNjp6qY1PVduFVdo8ya+8E6p8KOZR+bLj6Vju9oi5dar0erTS8Z1x3/IITU3vyDRLiZWBZVH6CbqURTeLptD3pEPIR4W4QlHfTnRJzZBRJ8MlI8LmmEXLAdAxsqIYbSDGTt65GfF0cUL6aQQ= -[LIC:shd]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/license.json?logo=gnu&logoColor=A42E2B +[LIC:shd]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/license.json&logoColor=A42E2B&logo=gnu [shield:code]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/code.json "Code" @@ -200,4 +200,4 @@ License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] [LINK:imgur:0]: https://imgur.com/a/jvizF "Kaboom! on Imgur" [IMG:hero:0]: https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/img/HeroLogo_400x400.png "KaBoOom!" -[IMG:hero:1]: https://i.imgur.com/CCPTqdY.png "KaBoOom!" \ No newline at end of file +[IMG:hero:1]: https://i.imgur.com/CCPTqdY.png "KaBoOom!" From 0c3baa6fa4ee0cb4fa18ff8e109c2c75052033a6 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:45:18 -0500 Subject: [PATCH 24/35] Version 1.3.99.1 - BETA Two MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### `Code' - thank you to ['@flart'](https://forum.kerbalspaceprogram.com/index.php?/profile/181486-flart/) @yalov - Invoke() with delay instead of OnUpdate(). - scale delay on timewarp. Parts are able to kaboom while timewarp - fix decoupling of decouplers on glued kaboom - fix missing title and fields for kabooming by kerbal within range - increase range to 10, same as EVA Construction Mode range ![](https://i.imgur.com/gFaxXfN.jpeg) ### Updates - renamed [Patches] folder to [Compatibility] - ✔ resolves issue #12 --- Changelog.cfg | 58 +++++-- GameData/Kaboom/Changelog.cfg | 58 +++++-- GameData/Kaboom/Compatability/Kaboom.cfg | 2 +- GameData/Kaboom/Kaboom.version | 2 +- GameData/Kaboom/Readme.htm | 14 +- .../Kaboom/license-original.txt | 0 GameData/Kaboom/plugins/Kaboom.dll | Bin 18944 -> 18944 bytes Kaboom.version | 2 +- Readme.htm | 161 ++++++++++++++++++ json/mod.json | 2 +- readme.md | 63 ++++--- source/Properties/Version.cs | 10 +- 12 files changed, 306 insertions(+), 66 deletions(-) rename license-original.txt => GameData/Kaboom/license-original.txt (100%) create mode 100644 Readme.htm diff --git a/Changelog.cfg b/Changelog.cfg index 3c5552f..144fda3 100644 --- a/Changelog.cfg +++ b/Changelog.cfg @@ -1,7 +1,7 @@ -// Changelog.cfg v1.0.0.0 +// Changelog.cfg v1.1.1.0 // Kaboom! // created: 2020 02 25 -// updated: 15 Jul 2021 +// updated: 20 Sep 2021 KERBALCHANGELOG { @@ -11,28 +11,62 @@ KERBALCHANGELOG author = russnash37, zer0Kerbal VERSION { - version = 1.3.99.0 - versionName = BETA TEST + version = 1.3.99.1 + versionName = BETA TEST 2 + versionDate = 2021-09-20 + versionKSP = 1.12.2 change = update folder structure change = update to modern back-end automation CHANGE { - change = Updated - subchange = recompile for KSP 1.12.2 - subchange = update to .NET 4.7.2 - subchange = update to C# - subchange = updated Version.tt to 2.0.0.2 + type = `Code' 📝 ✨ + change = thank you to ['@flart'](https://forum.kerbalspaceprogram.com/index.php?/profile/181486-flart/) @yalov + change = Invoke() with delay instead of OnUpdate(). + subChange = scale delay on timewarp. Parts are able to kaboom while timewarp + change = fix decoupling of decouplers on glued kaboom + change = fix missing title and fields for kabooming by kerbal within range + subChange = increase range to 10, same as EVA Construction Mode range } CHANGE { - change = Issues Resolved - subchange = - resolves issue # + type = Issues Resolved ℹ️ ❌ + change = ✔ resolves issue #12 } + CHANGE + { + type = Change + change = renamed [Patches] folder to [Compatibility] + } + } + VERSION + { + version = 1.3.99.0 + versionName = BETA TEST 1 + versionDate = 2021-09-16 + versionKSP = 1.12.2 + change = update folder structure + change = update to modern back-end automation + CHANGE + { + type = `Code' 📝 ✨ + change = Updated 📝 ✨ + subchange = recompile for KSP 1.12.2 + subchange = update to .NET 4.7.2 + subchange = update to C# + subchange = updated Version.tt to 2.0.0.2 + } + CHANGE + { + change = Issues Resolved ℹ️ ❌ + subchange = ✔ resolves issue # + } } VERSION { version = 1.3.0.0 versionName = Moar Booms! + versionDate = 2021-07-18 + versionKSP = 1.12.2 change = update folder structure change = update to modern back-end automation CHANGE @@ -81,5 +115,5 @@ KERBALCHANGELOG } } -// GPLv2 +// GPLv2 BY // zer0Kerbal \ No newline at end of file diff --git a/GameData/Kaboom/Changelog.cfg b/GameData/Kaboom/Changelog.cfg index 3c5552f..144fda3 100644 --- a/GameData/Kaboom/Changelog.cfg +++ b/GameData/Kaboom/Changelog.cfg @@ -1,7 +1,7 @@ -// Changelog.cfg v1.0.0.0 +// Changelog.cfg v1.1.1.0 // Kaboom! // created: 2020 02 25 -// updated: 15 Jul 2021 +// updated: 20 Sep 2021 KERBALCHANGELOG { @@ -11,28 +11,62 @@ KERBALCHANGELOG author = russnash37, zer0Kerbal VERSION { - version = 1.3.99.0 - versionName = BETA TEST + version = 1.3.99.1 + versionName = BETA TEST 2 + versionDate = 2021-09-20 + versionKSP = 1.12.2 change = update folder structure change = update to modern back-end automation CHANGE { - change = Updated - subchange = recompile for KSP 1.12.2 - subchange = update to .NET 4.7.2 - subchange = update to C# - subchange = updated Version.tt to 2.0.0.2 + type = `Code' 📝 ✨ + change = thank you to ['@flart'](https://forum.kerbalspaceprogram.com/index.php?/profile/181486-flart/) @yalov + change = Invoke() with delay instead of OnUpdate(). + subChange = scale delay on timewarp. Parts are able to kaboom while timewarp + change = fix decoupling of decouplers on glued kaboom + change = fix missing title and fields for kabooming by kerbal within range + subChange = increase range to 10, same as EVA Construction Mode range } CHANGE { - change = Issues Resolved - subchange = - resolves issue # + type = Issues Resolved ℹ️ ❌ + change = ✔ resolves issue #12 } + CHANGE + { + type = Change + change = renamed [Patches] folder to [Compatibility] + } + } + VERSION + { + version = 1.3.99.0 + versionName = BETA TEST 1 + versionDate = 2021-09-16 + versionKSP = 1.12.2 + change = update folder structure + change = update to modern back-end automation + CHANGE + { + type = `Code' 📝 ✨ + change = Updated 📝 ✨ + subchange = recompile for KSP 1.12.2 + subchange = update to .NET 4.7.2 + subchange = update to C# + subchange = updated Version.tt to 2.0.0.2 + } + CHANGE + { + change = Issues Resolved ℹ️ ❌ + subchange = ✔ resolves issue # + } } VERSION { version = 1.3.0.0 versionName = Moar Booms! + versionDate = 2021-07-18 + versionKSP = 1.12.2 change = update folder structure change = update to modern back-end automation CHANGE @@ -81,5 +115,5 @@ KERBALCHANGELOG } } -// GPLv2 +// GPLv2 BY // zer0Kerbal \ No newline at end of file diff --git a/GameData/Kaboom/Compatability/Kaboom.cfg b/GameData/Kaboom/Compatability/Kaboom.cfg index 28c9f59..8a82f63 100644 --- a/GameData/Kaboom/Compatability/Kaboom.cfg +++ b/GameData/Kaboom/Compatability/Kaboom.cfg @@ -12,5 +12,5 @@ } } -// GPLv2 +// GPLv2 BY // zer0Kerbal \ No newline at end of file diff --git a/GameData/Kaboom/Kaboom.version b/GameData/Kaboom/Kaboom.version index a0e68f5..f03f17e 100644 --- a/GameData/Kaboom/Kaboom.version +++ b/GameData/Kaboom/Kaboom.version @@ -14,7 +14,7 @@ "MAJOR" : 1, "MINOR" : 3, "PATCH" : 99, - "BUILD" : 0 + "BUILD" : 1 }, "KSP_VERSION" : { diff --git a/GameData/Kaboom/Readme.htm b/GameData/Kaboom/Readme.htm index 2dffc04..71ad99f 100644 --- a/GameData/Kaboom/Readme.htm +++ b/GameData/Kaboom/Readme.htm @@ -9,8 +9,8 @@

Adopted by Another way to not go to space today!

What can me more Kerbal than more Explosions!

Mod Version
-KSP version KSP-AVC License GPLv2
-Curseforge CKAN GitHub SpaceDock
+KSP version KSP-AVC License GPLv2
+Curseforge CKAN GitHub SpaceDock
Code Validate AVC .version files

Kaboom!


@@ -127,10 +127,14 @@

Tags

red box below is a link to forum post on how to get support
How to get support


+

Credits

+
+

'@flart' @yalov - superglue '@RussNash37' original author

+

License

Source: GitHub
-License: License GPLv2

+License: License GPLv2

*** All bundled mods are distributed under their own licenses***
*** All art assets (textures, models, animations) are distributed under their own licenses***

@@ -140,11 +144,11 @@

Original

Thread
Download
Source: GitHub
-License: License WTFPL

+License: License WTFPL

Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license.

-

+

diff --git a/license-original.txt b/GameData/Kaboom/license-original.txt similarity index 100% rename from license-original.txt rename to GameData/Kaboom/license-original.txt diff --git a/GameData/Kaboom/plugins/Kaboom.dll b/GameData/Kaboom/plugins/Kaboom.dll index 3ca38d467e6ffea3711abb5ddd9f1df5e1cb066f..d67bf9498d72afd05602cadccf4efd42aa714780 100644 GIT binary patch delta 7372 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 diff --git a/Kaboom.version b/Kaboom.version index a0e68f5..f03f17e 100644 --- a/Kaboom.version +++ b/Kaboom.version @@ -14,7 +14,7 @@ "MAJOR" : 1, "MINOR" : 3, "PATCH" : 99, - "BUILD" : 0 + "BUILD" : 1 }, "KSP_VERSION" : { diff --git a/Readme.htm b/Readme.htm new file mode 100644 index 0000000..71ad99f --- /dev/null +++ b/Readme.htm @@ -0,0 +1,161 @@ + + +

Download on Curseforge or Github or SpaceDock. Also available on CKAN.

+

Kaboom! (BOOM)

+

Adopted by @zer0Kerbal, originally by @russnash37

+

Another way to not go to space today!

+

What can me more Kerbal than more Explosions!

+

Mod Version
+KSP version KSP-AVC License GPLv2
+Curseforge CKAN GitHub SpaceDock
+Code Validate AVC .version files

+

Kaboom!

+
+

What is Kaboom!?

+

Kaboom! is a very simple mod for KSP that allows the destruction of individual parts:

+
    +
  • Kaboom parts either through the right-click menu or via action groups.
  • +
  • Parts can be kaboomed either immediately or via a tweakable delay timer of up to 30 seconds.
  • +
  • Kabooms can also be set by kerbals on EVA.
  • +
+
+

Future planned features:

+
    +
  • KaboOoming of parts via staging.
  • +
+
+

View full album

+
+

Kaboom!

+
+

Installation Directions:

+ +

Changelog Summary

+
    +
  • See ChangeLog for full details of mod changes
  • +
+

Known Issues

+
    +
  • See Known Issues for full details of feature requests, and known issues
  • +
+

Dependencies

+ +

Recommends

+ +

Suggests

+ +

Supports

+ +

Conflicts

+
    +
  • +none
  • +
+

Replaces

+ +

Tags

+
    +
  • +plugin, config
  • +
+
+

red box below is a link to forum post on how to get support
+How to get support

+
+

Credits

+
+

'@flart' @yalov - superglue '@RussNash37' original author

+
+

License

+ +

Source: GitHub
+License: License GPLv2

+
+

*** All bundled mods are distributed under their own licenses***
+*** All art assets (textures, models, animations) are distributed under their own licenses***

+
+

Original

+

Author: @RussNash37
+Thread
+Download
+Source: GitHub
+License: License WTFPL

+
+

Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license.

+
+
+ + +

+

[^1]: Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

+
v1.3.0.0 original: 11 Aug 2018 0K updated: 17 Jul 2021 zed'K
+ + + + + diff --git a/json/mod.json b/json/mod.json index 206f77e..bba3ede 100644 --- a/json/mod.json +++ b/json/mod.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "label": "Kaboom", "labelColor": "darkgreen", - "message": "1.3.99.0", + "message": "1.3.99.1", "color": "orange", "style": "plastic" } diff --git a/readme.md b/readme.md index e31cc2f..bbf517a 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ Kaboom! (BOOM) created: 11 Aug 2018 updated: 17 Jul 2021 --> - + ## Download on [Curseforge][MOD:curseforge] or [Github][MOD:github] or [SpaceDock][MOD:spacedock]. Also available on [CKAN][CKAN:url]. @@ -30,11 +30,11 @@ Kaboom! is a very simple mod for KSP that allows the destruction of individual p Future planned features: - KaboOoming of parts via staging. -*** +*** [View full album][LINK:imgur:0] -*** +*** ![Kaboom!][IMG:hero:1] *** @@ -89,7 +89,12 @@ Future planned features: *red box below is a link to forum post on how to get support* [![How to get support][image:get-support]][thread:getsupport] -*** +*** + +### Credits + +> ['@flart'](https://forum.kerbalspaceprogram.com/index.php?/profile/181486-flart/) @yalov - superglue +> ['@RussNash37'][LINK:russnash37] original author ### License #### aka Legal Mumbo Jumbo @@ -102,9 +107,10 @@ Author: [@RussNash37][LINK:russnash37] [Thread][MOD:original:thread] [Download][MOD:original:download] Source: [GitHub][MOD:original:source] -License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] +License: ![License WTFPL][LIC:shd:org] ![][LIC:log:orig] > Kaboom! is released under an open license, feel free to modify and re-release Kaboom! just be sure to link back to the original version and to also include this license. -*** +> +> *** [![][image:curseforge]][MOD:curseforge] [![][image:github]][MOD:github] [![][image:spacedock]][MOD:spacedock] @@ -115,23 +121,21 @@ License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] [MOD:license]: https://github.com/zer0Kerbal/Kaboom/blob/master/LICENSE "Licence" -[MOD:contributing]: https://github.com/zer0Kerbal/Kaboom/blob/master/.github/CONTRIBUTING.md "Contributing" -[MOD:issues]: https://github.com/zer0Kerbal/Kaboom/issues "Issues" -[MOD:wiki]: https://github.com/zer0Kerbal/Kaboom/ "Wiki" -[MOD:known]: https://github.com/zer0Kerbal/Kaboom/wiki/Known-Issues "Know Issues" -[MOD:forum]: https://forum.kerbalspaceprogram.com/index.php?/topic/191045-* "KSP Forum" -[MOD:github:repo]: https://github.com/zer0Kerbal/Kaboom/ "Github" -[MOD:changelog]: https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/Changelog.cfg "Changelog" -[KSP:website]: https://kerbalspaceprogram.com/ "KSP Website" +[MOD:contributing]: https://github.com/zer0Kerbal/Kaboom/blob/master/.github/CONTRIBUTING.md "Contributing" +[MOD:issues]: https://github.com/zer0Kerbal/Kaboom/issues "Issues" +[MOD:wiki]: https://github.com/zer0Kerbal/Kaboom/ "Wiki" +[MOD:known]: https://github.com/zer0Kerbal/Kaboom/wiki/Known-Issues "Know Issues" +[MOD:forum]: https://forum.kerbalspaceprogram.com/index.php?/topic/191045-* "KSP Forum" +[MOD:github:repo]: https://github.com/zer0Kerbal/Kaboom/ "Github" +[MOD:changelog]: https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/Changelog.cfg "Changelog" +[KSP:website]: https://kerbalspaceprogram.com/ "KSP Website" [MOD:original:source]: https://github.com/russnash/Kaboom [MOD:original:thread]: https://forum.kerbalspaceprogram.com/index.php?/topic/94674-* -[LIC:shd:original]: https://img.shields.io/badge/License-WTFPL-red?backgroud=black?style=plastic "WTFPL" [MOD:original:download]: https://github.com/russnash/Kaboom/releases/latest -[LOGO:wtfpl]: https://www.wtfpl.net/wp-content/uploads/2012/12/wtfpl-badge-4.png "WTFPL" [MOD:github]: https://github.com/zer0Kerbal/Kaboom/releases/latest "GitHub" [MOD:spacedock]: https://spacedock.info/mod/833 @@ -146,22 +150,25 @@ License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] [CKAN:img]: https://i.postimg.cc/x8XSVg4R/sj507JC.png [shield:mod:latest]: https://img.shields.io/github/v/release/zer0Kerbal/Kaboom?include_prereleases?style=plastic -[shield:mod]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/mod.json +[shield:mod]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/mod.json -[shield:ksp]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Komplexity/master/json/ksp.json&logo=data:image/webp;base64,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 +[shield:ksp]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Komplexity/master/json/ksp.json&logo=data:image/webp;base64,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 [LIC:shd]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/license.json&logoColor=A42E2B&logo=gnu -[shield:code]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/code.json "Code" +[LIC:shd:org]: https://img.shields.io/badge/License-WTFPL-red?backgroud=black?style=plastic "WTFPL" +[LIC:log:orig]: http://www.wtfpl.net/wp-content/uploads/2012/12/wtfpl-badge-4.png "WTFPL" + +[shield:code]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/json/code.json "Code" [shield:curseforge]: https://img.shields.io/badge/CurseForge-Listed-blue.svg?labelColor=black&style=plastic&logo=curseforge [shield:ckan]: https://img.shields.io/badge/CKAN-Kaboom-blue.svg?labelColor=black&style=plastic -[shield:github]: https://img.shields.io/badge/Github-Indexed-blue.svg?labelColor=black&style=plastic&logo=github +[shield:github]: https://img.shields.io/badge/Github-Indexed-blue.svg?labelColor=black&style=plastic&logo=github -[shield:spacedock]: https://img.shields.io/badge/SpaceDock-Listed-blue?labelColor=black&style=plastic&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzFBMUExQTt9Cgkuc3Qxe2ZpbGw6IzA1Nzg5Mzt9Cgkuc3Qye2ZpbGw6IzA3QUNEMjt9Cjwvc3R5bGU+CjxwYXRoIGlkPSJYTUxJRF8xXyIgY2xhc3M9InN0MCIgZD0iTTQwMCwwLjZIMTAwYy01NSwwLTEwMCw0NS0xMDAsMTAwVjQwMGMwLDU1LDQ1LDEwMCwxMDAsMTAwaDMwMGM1NSwwLDEwMC00NSwxMDAtMTAwVjEwMC42CglDNTAwLDQ1LjYsNDU1LDAuNiw0MDAsMC42eiIvPgo8ZyBpZD0iWE1MSURfNl8iPgoJPGcgaWQ9IlhNTElEXzlfIj4KCQk8cGF0aCBpZD0iWE1MSURfMTdfIiBjbGFzcz0ic3QxIiBkPSJNMTgzLjMsMTY1LjljNi40LTMuNiwxNi45LTMuNiwyMy4zLDBMNDY3LjQsMzE0YzYuNCwzLjYsNi40LDkuNiwwLDEzLjJMMjA2LjYsNDc0LjQKCQkJYy02LjQsMy42LTE3LjcsNi42LTI1LDYuNmgtNDQuOGMtNy40LDAtOC4xLTMtMS43LTYuNmwyNjEtMTQ3LjJjNi40LTMuNiw2LjQtOS42LDAtMTMuMkwxNzEsMTg2Yy02LjQtMy42LTYuNC05LjYsMC0xMy4yCgkJCUwxODMuMywxNjUuOXoiLz4KCTwvZz4KCTxnIGlkPSJYTUxJRF84XyI+CgkJPHBhdGggaWQ9IlhNTElEXzE2XyIgY2xhc3M9InN0MiIgZD0iTTMxOC44LDE5Yy03LjQsMC0xOC42LDIuOC0yNSw2LjRMMzMsMTczLjRjLTYuNCwzLjYtNi40LDkuNSwwLDEzLjFsMjYwLjcsMTQ3LjEKCQkJYzYuNCwzLjYsMTYuOSwzLjYsMjMuMywwbDEyLjMtN2M2LjQtMy42LDYuNC05LjUsMC0xMy4ybC0yMjUuMS0xMjdjLTYuNC0zLjYtNi40LTkuNSwwLTEzLjJMMzY1LjYsMjUuNGM2LjQtMy42LDUuNi02LjQtMS43LTYuNAoJCQlIMzE4Ljh6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg== "SpaceDock" +[shield:spacedock]: https://img.shields.io/badge/SpaceDock-Listed-blue?labelColor=black&style=plastic&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzFBMUExQTt9Cgkuc3Qxe2ZpbGw6IzA1Nzg5Mzt9Cgkuc3Qye2ZpbGw6IzA3QUNEMjt9Cjwvc3R5bGU+CjxwYXRoIGlkPSJYTUxJRF8xXyIgY2xhc3M9InN0MCIgZD0iTTQwMCwwLjZIMTAwYy01NSwwLTEwMCw0NS0xMDAsMTAwVjQwMGMwLDU1LDQ1LDEwMCwxMDAsMTAwaDMwMGM1NSwwLDEwMC00NSwxMDAtMTAwVjEwMC42CglDNTAwLDQ1LjYsNDU1LDAuNiw0MDAsMC42eiIvPgo8ZyBpZD0iWE1MSURfNl8iPgoJPGcgaWQ9IlhNTElEXzlfIj4KCQk8cGF0aCBpZD0iWE1MSURfMTdfIiBjbGFzcz0ic3QxIiBkPSJNMTgzLjMsMTY1LjljNi40LTMuNiwxNi45LTMuNiwyMy4zLDBMNDY3LjQsMzE0YzYuNCwzLjYsNi40LDkuNiwwLDEzLjJMMjA2LjYsNDc0LjQKCQkJYy02LjQsMy42LTE3LjcsNi42LTI1LDYuNmgtNDQuOGMtNy40LDAtOC4xLTMtMS43LTYuNmwyNjEtMTQ3LjJjNi40LTMuNiw2LjQtOS42LDAtMTMuMkwxNzEsMTg2Yy02LjQtMy42LTYuNC05LjYsMC0xMy4yCgkJCUwxODMuMywxNjUuOXoiLz4KCTwvZz4KCTxnIGlkPSJYTUxJRF84XyI+CgkJPHBhdGggaWQ9IlhNTElEXzE2XyIgY2xhc3M9InN0MiIgZD0iTTMxOC44LDE5Yy03LjQsMC0xOC42LDIuOC0yNSw2LjRMMzMsMTczLjRjLTYuNCwzLjYtNi40LDkuNSwwLDEzLjFsMjYwLjcsMTQ3LjEKCQkJYzYuNCwzLjYsMTYuOSwzLjYsMjMuMywwbDEyLjMtN2M2LjQtMy42LDYuNC05LjUsMC0xMy4ybC0yMjUuMS0xMjdjLTYuNC0zLjYtNi40LTkuNSwwLTEzLjJMMzY1LjYsMjUuNGM2LjQtMy42LDUuNi02LjQtMS43LTYuNAoJCQlIMzE4Ljh6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg== "SpaceDock" -[shield:avcvalid]: https://github.com/zer0Kerbal/Kaboom/actions/workflows/AVC-VersionFileValidator.yml/badge.svg?branch=master "https://github.com/zer0Kerbal/Kaboom/actions/workflows/AVC-VersionFileValidator.yml" -[shield:kspavc]: https://img.shields.io/badge/KSP-AVC--supported-brightgreen.svg?style=plastic +[shield:avcvalid]: https://github.com/zer0Kerbal/Kaboom/actions/workflows/AVC-VersionFileValidator.yml/badge.svg?branch=master "https://github.com/zer0Kerbal/Kaboom/actions/workflows/AVC-VersionFileValidator.yml" +[shield:kspavc]: https://img.shields.io/badge/KSP-AVC--supported-brightgreen.svg?style=plastic [thread:ODFC]: https://forum.kerbalspaceprogram.com/index.php?/topic/187625-* "On Demand Fuel Cells" @@ -184,9 +191,9 @@ License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] [thread:SL!]: https://forum.kerbalspaceprogram.com/index.php?/topic/191045-* "SimpleLogistics!" [thread:NSSC]: https://forum.kerbalspaceprogram.com/index.php?/topic/191504-* "Not So SimpleConstructon!" [thread:BIO]: https://forum.kerbalspaceprogram.com/index.php?/topic/191426-* "Biomatic" -[thread:MK]: https://forum.kerbalspaceprogram.com/index.php?/topic/191525-* "MoarKerbals" -[thread:KPLX]: https://forum.kerbalspaceprogram.com/index.php?/topic/202749-* "Komplexity" -[thread:B9S]: https://forum.kerbalspaceprogram.com/index.php?/topic/190870-* "B9 Stock Patches" +[thread:MK]: https://forum.kerbalspaceprogram.com/index.php?/topic/191525-* "MoarKerbals" +[thread:KPLX]: https://forum.kerbalspaceprogram.com/index.php?/topic/202749-* "Komplexity" +[thread:B9S]: https://forum.kerbalspaceprogram.com/index.php?/topic/190870-* "B9 Stock Patches" [thread:mm]: https://forum.kerbalspaceprogram.com/index.php?/topic/50533-* "ModuleManager" [thread:kcl]: https://forum.kerbalspaceprogram.com/index.php?/topic/179207-* "Kerbal Change Log" @@ -197,7 +204,7 @@ License: ![License WTFPL][LIC:shd:original] ![][LOGO:wtfpl] [LINK:zer0Kerbal]: https://forum.kerbalspaceprogram.com/index.php?/profile/190933-zer0kerbal/ "zer0Kerbal" [LINK:russnash37]: https://forum.kerbalspaceprogram.com/index.php?/profile/77512-russnash37/ "RussNash37" - -[LINK:imgur:0]: https://imgur.com/a/jvizF "Kaboom! on Imgur" + +[LINK:imgur:0]: https://imgur.com/a/jvizF "Kaboom! on Imgur" [IMG:hero:0]: https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/img/HeroLogo_400x400.png "KaBoOom!" [IMG:hero:1]: https://i.imgur.com/CCPTqdY.png "KaBoOom!" diff --git a/source/Properties/Version.cs b/source/Properties/Version.cs index 93a3994..bc0289b 100644 --- a/source/Properties/Version.cs +++ b/source/Properties/Version.cs @@ -1,4 +1,4 @@ -//17 +//18 // // This code was generated by a tool. Any changes made manually will be lost // the next time this code is regenerated. @@ -6,8 +6,8 @@ using System.Reflection; -[assembly: AssemblyFileVersion("1.3.99.17")] -[assembly: AssemblyVersion("1.3.99.0")] +[assembly: AssemblyFileVersion("1.3.99.18")] +[assembly: AssemblyVersion("1.3.99.1")] namespace Kaboom { @@ -16,8 +16,8 @@ public static class Version public const int major = 1; public const int minor = 3; public const int patch = 99; - public const int build = 0; - public const string Number = "1.3.99.0"; + public const int build = 1; + public const string Number = "1.3.99.1"; #if DEBUG public const string Text = Number + " DEBUG"; #else From 227b77e065102a05ad0fc358b5ce45047d8cd06f Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:45:34 -0500 Subject: [PATCH 25/35] Update license.json --- json/license.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/license.json b/json/license.json index fb64c0b..4b0888b 100644 --- a/json/license.json +++ b/json/license.json @@ -1,8 +1,8 @@ { "schemaVersion": 1, "label": "License", - "labelColor": "black", + "labelColor": "white", "message": "GPLv2", - "color": "red", + "color": "A42E2B", "style": "plastic" } From 3a9355fadab389c1d53dc312c7425721dc623e4d Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Mon, 20 Sep 2021 23:11:34 -0500 Subject: [PATCH 26/35] Update readme.md --- readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/readme.md b/readme.md index bbf517a..aff2885 100644 --- a/readme.md +++ b/readme.md @@ -26,6 +26,9 @@ Kaboom! is a very simple mod for KSP that allows the destruction of individual p - Kaboom parts either through the right-click menu or via action groups. - Parts can be kaboomed either immediately or via a tweakable delay timer of up to 30 seconds. - Kabooms can also be set by kerbals on EVA. +- Another very helpful feature is to destroy parts in Stock Inventory, because there is no way to destroy parts, that you can't put out of inventory, like Jetpacks, personal parachutes, etc +- Currently KaboOm does not work on asteroids and comets. :( + *** Future planned features: From 61ea4bbeda237c4894614dbc42d5da95f5d5b94d Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 7 Oct 2021 19:15:12 +0300 Subject: [PATCH 27/35] WeldingDockingPorts --- Source/Welding/WeldingDockingPorts.cs | 107 ++++++++++++++++++++++++ source/Repo-Kaboom112.csproj | 1 + source/Welding/Welding.cs | 114 ++++++++++++++++++-------- source/Welding/WeldingData.cs | 2 + source/Welding/WeldingUtilities.cs | 11 +++ 5 files changed, 203 insertions(+), 32 deletions(-) create mode 100644 Source/Welding/WeldingDockingPorts.cs diff --git a/Source/Welding/WeldingDockingPorts.cs b/Source/Welding/WeldingDockingPorts.cs new file mode 100644 index 0000000..b6fd0f8 --- /dev/null +++ b/Source/Welding/WeldingDockingPorts.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; +using System.Reflection; +using PreFlightTests; +using TestScripts; + +namespace Kaboom +{ + public static class WeldingDockingPorts + { + public static Vector3 GetOffset(WeldingData wData) + { + var totalThickness = 0f; + var objA = new GameObject(); + var objB = new GameObject(); + + var transformA = objA.transform; + var transformB = objB.transform; + + transformA.localPosition = wData.DockingPortA.transform.localPosition; + transformB.localPosition = wData.DockingPortB.transform.localPosition; + + var offset = + transformA.localPosition - transformB.localPosition; + + offset.Normalize(); + + totalThickness += WeldingUtilities.GetPartThickness(wData.DockingPortA); + totalThickness += WeldingUtilities.GetPartThickness(wData.DockingPortB); + + offset *= totalThickness; + + return offset; + } + + + public static void PerformWeld(WeldingData wData, bool compress) + { + var nodeA = WeldingUtilities.GetLinkingNode(wData.LinkedPartA, wData.DockingPortA); + var nodeB = WeldingUtilities.GetLinkingNode(wData.LinkedPartB, wData.DockingPortB); + + var offset = GetOffset(wData); + + WeldingUtilities.DetachPart(wData.DockingPortA); + WeldingUtilities.DetachPart(wData.DockingPortB); + + WeldingUtilities.SwapLinks( + wData.LinkedPartA, + wData.DockingPortA, + wData.LinkedPartB); + WeldingUtilities.SwapLinks( + wData.LinkedPartB, + wData.DockingPortB, + wData.LinkedPartA); + + wData.DockingPortB.SetCollisionIgnores(); + wData.DockingPortA.SetCollisionIgnores(); + + WeldingUtilities.SpawnStructures(wData.LinkedPartA, nodeA); + WeldingUtilities.SpawnStructures(wData.LinkedPartB, nodeB); + + + if (compress) + WeldingUtilities.MovePart(wData.LinkedPartB, offset); + + PartJoint newJoint = PartJoint.Create( + wData.LinkedPartB, + wData.LinkedPartA, + nodeB, + nodeA, + AttachModes.STACK); + + wData.LinkedPartB.attachJoint = newJoint; + + WeldingUtilities.Explode(wData.DockingPortA); + WeldingUtilities.Explode(wData.DockingPortB); + } + + + public static Part FindAttachedPart(Part p, Part xp) + { + //Debug.Log(string.Format("Finding attached part for {0} but excluding {1}", p.partInfo.title, xp.partInfo.title)); + //Debug.Log(string.Format("Part {0} has {1} attachment node(s)", p.partInfo.title, p.attachNodes.Count)); + foreach (var an in p.attachNodes) + { + //Debug.Log(string.Format("Looking at node {0}", an.id)); + if (an.attachedPart != null && an.attachedPart != xp) + { + //Debug.Log(string.Format("Returning {0}", an.attachedPart.partInfo.title)); + return an.attachedPart; + } + } + + //Debug.Log(string.Format("Part {0} parent part is {1}", p.partInfo.title, p.parent)); + //Debug.Log(string.Format("Part {0} has {1} children", p.partInfo.title, p.children.Count)); + + + if (p.parent != null) + return p.parent; + + return p.children.Count() == 1 ? p.children[0] : null; + } + } +} diff --git a/source/Repo-Kaboom112.csproj b/source/Repo-Kaboom112.csproj index 56dcc88..8861c5f 100644 --- a/source/Repo-Kaboom112.csproj +++ b/source/Repo-Kaboom112.csproj @@ -61,6 +61,7 @@ +
diff --git a/source/Welding/Welding.cs b/source/Welding/Welding.cs index a49dcff..4c2c8ac 100644 --- a/source/Welding/Welding.cs +++ b/source/Welding/Welding.cs @@ -3,6 +3,7 @@ using System; using UnityEngine; +using UniLinq; namespace Kaboom { @@ -33,6 +34,8 @@ public bool MergeParts(bool compress) return sucess; } + + private WeldingData LoadWeldingData() { /********************** @@ -44,20 +47,54 @@ private WeldingData LoadWeldingData() **********************/ var wData = new WeldingData(); - wData.KaboomGluedPart = part; + int attachedPartsCount = 0; foreach (var n in part.attachNodes) if (n.attachedPart != null) + { + //Debug.Log("n.attachedPart: " + n.attachedPart.partInfo.title); attachedPartsCount++; + } + //Debug.Log("part.parent: " + part.parent.partInfo.title); //Debug.Log("attachedPartsCount: " + attachedPartsCount + " part.children.Count: " + part.children.Count); if (attachedPartsCount == 2 && part.children.Count == 1) { + wData.KaboomGluedPart = part; wData.LinkedPartA = part.parent; wData.LinkedPartB = part.children[0]; } + else if (WeldingUtilities.IsWeldablePort(part)) + { + if (WeldingUtilities.IsWeldablePort(part.parent)) + { + //Debug.Log("Both Ports"); + wData.DockingPortA = part.parent; + wData.DockingPortB = part; + } + else if (part.children != null && part.children.Count > 0) + { + //Debug.Log("Both Ports Otherwise"); + foreach (var p in part.children.Where(WeldingUtilities.IsWeldablePort)) + { + wData.DockingPortA = part; + wData.DockingPortB = p; + break; + } + } + + if (wData.DockingPortA != null && wData.DockingPortB != null) + { + ScreenMessages.PostScreenMessage( + "Docked vessels detected, unable to explode the pocking port.\n" + + "Trying to explode both docking ports" + ); + wData.LinkedPartA = WeldingDockingPorts.FindAttachedPart(wData.DockingPortA, wData.DockingPortB); + wData.LinkedPartB = WeldingDockingPorts.FindAttachedPart(wData.DockingPortB, wData.DockingPortA); + } + } if (wData.LinkedPartA == null || wData.LinkedPartB == null) { @@ -83,53 +120,66 @@ private Vector3 GetOffset(WeldingData wData) //offset2.Normalize(); //offset2 *= WeldingNodeUtilities.GetPartThickness(wData.KaboomGluedPart); - AttachNode a = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartA); - AttachNode b = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartB); - - Vector3 offset = part.transform.rotation * (a.position - b.position); + Vector3 offset; + + if (wData.KaboomGluedPart) + { + AttachNode a = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartA); + AttachNode b = WeldingUtilities.GetLinkingNode(wData.KaboomGluedPart, wData.LinkedPartB); + offset = part.transform.rotation * (a.position - b.position); + } + else + { + offset = WeldingDockingPorts.GetOffset(wData); + } return offset; } private bool PerformWeld(WeldingData wData, bool compress) { - var nodeA = WeldingUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); - var nodeB = WeldingUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); + if (wData.KaboomGluedPart) + { + var nodeA = WeldingUtilities.GetLinkingNode(wData.LinkedPartA, wData.KaboomGluedPart); + var nodeB = WeldingUtilities.GetLinkingNode(wData.LinkedPartB, wData.KaboomGluedPart); - var offset = GetOffset(wData); + var offset = GetOffset(wData); - WeldingUtilities.DetachPart(wData.KaboomGluedPart); + WeldingUtilities.DetachPart(wData.KaboomGluedPart); - WeldingUtilities.SwapLinks( - wData.LinkedPartA, - wData.KaboomGluedPart, - wData.LinkedPartB); + WeldingUtilities.SwapLinks( + wData.LinkedPartA, + wData.KaboomGluedPart, + wData.LinkedPartB); - WeldingUtilities.SwapLinks( - wData.LinkedPartB, - wData.KaboomGluedPart, - wData.LinkedPartA); + WeldingUtilities.SwapLinks( + wData.LinkedPartB, + wData.KaboomGluedPart, + wData.LinkedPartA); - wData.KaboomGluedPart.SetCollisionIgnores(); + wData.KaboomGluedPart.SetCollisionIgnores(); - WeldingUtilities.SpawnStructures(wData.LinkedPartA, nodeA); - WeldingUtilities.SpawnStructures(wData.LinkedPartB, nodeB); + WeldingUtilities.SpawnStructures(wData.LinkedPartA, nodeA); + WeldingUtilities.SpawnStructures(wData.LinkedPartB, nodeB); - if (compress) - { - WeldingUtilities.MovePart(wData.LinkedPartB, offset); - } + if (compress) + { + WeldingUtilities.MovePart(wData.LinkedPartB, offset); + } - PartJoint newJoint = PartJoint.Create( - wData.LinkedPartB, - wData.LinkedPartA, - nodeB, - nodeA, - AttachModes.STACK); + PartJoint newJoint = PartJoint.Create( + wData.LinkedPartB, + wData.LinkedPartA, + nodeB, + nodeA, + AttachModes.STACK); - wData.LinkedPartB.attachJoint = newJoint; + wData.LinkedPartB.attachJoint = newJoint; - WeldingUtilities.Explode(wData.KaboomGluedPart); + WeldingUtilities.Explode(wData.KaboomGluedPart); + } + else + WeldingDockingPorts.PerformWeld(wData, compress); return true; } diff --git a/source/Welding/WeldingData.cs b/source/Welding/WeldingData.cs index c4433e9..e6b3f6d 100644 --- a/source/Welding/WeldingData.cs +++ b/source/Welding/WeldingData.cs @@ -8,5 +8,7 @@ public class WeldingData public Part LinkedPartA { get; set; } public Part LinkedPartB { get; set; } public Part KaboomGluedPart { get; set; } + public Part DockingPortA { get; set; } + public Part DockingPortB { get; set; } } } \ No newline at end of file diff --git a/source/Welding/WeldingUtilities.cs b/source/Welding/WeldingUtilities.cs index 5ccf0b8..82a472d 100644 --- a/source/Welding/WeldingUtilities.cs +++ b/source/Welding/WeldingUtilities.cs @@ -89,5 +89,16 @@ public static void Explode(Part thisPart) thisPart.explode(); } + + public static bool IsWeldablePort(Part p) + { + if (p == null) + return false; + + if (!p.FindModulesImplementing().Any()) + return false; + + return true; + } } } From 587d0d7cf0c83df8b4f09840df078373bbb19c95 Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Thu, 7 Oct 2021 19:50:27 +0300 Subject: [PATCH 28/35] longer ScreenMessage --- source/Welding/Welding.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Welding/Welding.cs b/source/Welding/Welding.cs index 4c2c8ac..5cb3359 100644 --- a/source/Welding/Welding.cs +++ b/source/Welding/Welding.cs @@ -89,7 +89,7 @@ private WeldingData LoadWeldingData() { ScreenMessages.PostScreenMessage( "Docked vessels detected, unable to explode the pocking port.\n" + - "Trying to explode both docking ports" + "Trying to explode both docking ports",5 ); wData.LinkedPartA = WeldingDockingPorts.FindAttachedPart(wData.DockingPortA, wData.DockingPortB); wData.LinkedPartB = WeldingDockingPorts.FindAttachedPart(wData.DockingPortB, wData.DockingPortA); From ea94a9519262cda2df71fd0446a858476de3209f Mon Sep 17 00:00:00 2001 From: Alexander Yalov Date: Fri, 8 Oct 2021 10:57:29 +0300 Subject: [PATCH 29/35] remove using --- Source/Welding/WeldingDockingPorts.cs | 9 ++------- source/Welding/Welding.cs | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Source/Welding/WeldingDockingPorts.cs b/Source/Welding/WeldingDockingPorts.cs index b6fd0f8..f14dd13 100644 --- a/Source/Welding/WeldingDockingPorts.cs +++ b/Source/Welding/WeldingDockingPorts.cs @@ -1,11 +1,6 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using UnityEngine; -using System.Reflection; -using PreFlightTests; -using TestScripts; + namespace Kaboom { @@ -101,7 +96,7 @@ public static Part FindAttachedPart(Part p, Part xp) if (p.parent != null) return p.parent; - return p.children.Count() == 1 ? p.children[0] : null; + return p.children.Count == 1 ? p.children[0] : null; } } } diff --git a/source/Welding/Welding.cs b/source/Welding/Welding.cs index 5cb3359..4a1340d 100644 --- a/source/Welding/Welding.cs +++ b/source/Welding/Welding.cs @@ -3,7 +3,7 @@ using System; using UnityEngine; -using UniLinq; +using System.Linq; namespace Kaboom { From a893dd4d8bbe2d039d30e7609d86a38088b397e8 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Sun, 10 Oct 2021 01:50:01 -0500 Subject: [PATCH 30/35] Version 1.3.99.2 - BETA III # Version 1.3.99.2 - BETA III - 08 Oct 2021 - Beta Release for Kerbal Space Program [KSP 1.12.2] *** ### Added - Localization [en-us.cfg] - ***your localization here*** ### `Code' - thank you to ['@flart'](https://forum.kerbalspaceprogram.com/index.php?/profile/181486-flart/) @yalov - if glued kaboom is enabled and there was in-flight docking, docking ports kaboom together - longer ScreenMessage - remove unnecessary usings - update .csproj ### Status - Issues/MileStones - closes #14 - Beta One: 1.3.99.0 (file version 1.3.99.17) - updates #33 - Localization project - contributed by zer0kerbal - updates #22 - Localization - en-us.cfg (English) - all but one string - contributed by zer0kerbal - closes #26 - [ImgBot] Optimize images - contributed by imgbot[bot] - closes #27 - WeldingDockingPorts documentation, contributed by yalov - closes #29 - upstream for 1.3.99.2-Beta-3 - contributed by zer0Kerbal - closes #31 - Merge pull request #29 from zer0Kerbal/master upstream - contributed by zer0Kerbal - closes #9 - compile for KSP 1.12.2 - .NET 4.7.2 - C# 10.0 - contributed by zer0Kerbal - Bug - opened #32 - Kaboom Safety Cover not localized - *** Possible future changes *** - #33, #20, #21, #22 - more localizations - #25 - auto destruct during launch - #17, #18 - bigger boom, bigger badda-boom - #16 - boom stick - #1 - staging --- COPYING.WTFPL | 15 + Changelog.cfg | 50 ++- GPLv2.txt | 2 + GameData/Kaboom/COPYING.WTFPL | 15 + GameData/Kaboom/Changelog.cfg | 50 ++- GameData/Kaboom/GPLv2.txt | 2 + GameData/Kaboom/Kaboom.version | 4 +- GameData/Kaboom/Localization/en-us.cfg | 52 ++- GameData/Kaboom/Readme.htm | 245 +++++++++----- GameData/Kaboom/doc/1.3.99.2-beta-3.md | 35 ++ GameData/Kaboom/plugins/Kaboom.dll | Bin 18944 -> 25088 bytes Kaboom.version | 4 +- Readme.htm | 245 +++++++++----- doc/1.3.99.2-beta-3.md | 35 ++ img/SuperKlue-after.png | Bin 0 -> 1010055 bytes img/SuperKlue-before.png | Bin 0 -> 1320834 bytes json/code.json | 2 +- json/license.json | 2 + json/mod.json | 8 +- license-original.txt | 1 + readme.md | 447 +++++++++++++++++-------- source/Asset/Kaboom.version | 42 +++ source/Asset/en-us.cfg | 54 +++ source/Kaboom.cs | 22 +- source/Properties/Version.cs | 10 +- source/Properties/Version.tt | 2 +- source/Repo-Kaboom112.csproj | 1 + source/Repo-Kaboom112.csproj.bak | 89 +++++ source/Support/Settings.cs | 27 +- source/Welding/Welding.cs | 16 +- 30 files changed, 1122 insertions(+), 355 deletions(-) create mode 100644 COPYING.WTFPL create mode 100644 GameData/Kaboom/COPYING.WTFPL create mode 100644 GameData/Kaboom/doc/1.3.99.2-beta-3.md create mode 100644 doc/1.3.99.2-beta-3.md create mode 100644 img/SuperKlue-after.png create mode 100644 img/SuperKlue-before.png create mode 100644 license-original.txt create mode 100644 source/Asset/Kaboom.version create mode 100644 source/Asset/en-us.cfg create mode 100644 source/Repo-Kaboom112.csproj.bak diff --git a/COPYING.WTFPL b/COPYING.WTFPL new file mode 100644 index 0000000..72c9762 --- /dev/null +++ b/COPYING.WTFPL @@ -0,0 +1,15 @@ +http://www.wtfpl.net/faq/ + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2014 RussNash37 (russnash37@gmail.com) + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/Changelog.cfg b/Changelog.cfg index 144fda3..57de44b 100644 --- a/Changelog.cfg +++ b/Changelog.cfg @@ -2,13 +2,61 @@ // Kaboom! // created: 2020 02 25 // updated: 20 Sep 2021 - KERBALCHANGELOG { showChangelog = True modName = Kaboom! license = GPLv2 author = russnash37, zer0Kerbal + VERSION + { + version = 1.3.99.2-BETA-3 + versionDate = 2021-10-09 + versionKSP = 1.12.2 + change = #26 - [ImgBot] Optimize images Mod-enhancement, In progress, upstream- contributed by imgbot[bot] + change = #27 - WeldingDockingPorts documentation, priority-0, In progress, code-issue- contributed by yalov + change = #29 - upstream for 1.3.99.2-Beta-3 upstream- contributed by zer0Kerbal + change = #31 - Merge pull request #29 from zer0Kerbal/master upstream- contributed by zer0Kerbal + change = #14 - Beta One: 1.3.99.0 (file version 1.3.99.17) documentation, Mod-enhancement, In progress, betareport, code-issue + CHANGE + { + type = Added + change = Localization + subChange = [en-us.cfg] + subChange = code localized + } + CHANGE + { + type = Code + change = SuperKlue in-flight docking ports + subChange = thank you to ['@flart'](https://forum.kerbalspaceprogram.com/index.php?/profile/181486-flart/) @yalov + subChange = if glued kaboom is enabled and there was in-flight docking, docking ports kaboom together + subChange = longer ScreenMessage + subChange = remove unnecessary usings + subChange = update .csproj + } + CHANGE + { + type = Status + change = Issues/MileStones + subChange = closes #14 - Beta One: 1.3.99.0 (file version 1.3.99.17) + subChange = updates #33 - Localization project - contributed by zer0kerbal + subChange = updates #22 - Localization - en-us.cfg (English) - all but one string - contributed by zer0kerbal + subChange = closes #26 - [ImgBot] Optimize images - contributed by imgbot[bot] + subChange = closes #27 - WeldingDockingPorts documentation, contributed by yalov + subChange = closes #29 - upstream for 1.3.99.2-Beta-3 - contributed by zer0Kerbal + subChange = closes #31 - Merge pull request #29 from zer0Kerbal/master upstream - contributed by zer0Kerbal + subChange = closes #9 - compile for KSP 1.12.2 - .NET 4.7.2 - C# 10.0 - contributed by zer0Kerbal + Change = Bug + subChange = opened #32 - Kaboom Safety Cover not localized + Change = Possible future changes + subChange = #33, #20, #21, #22 - more localizations + subChange = #25 - auto destruct during launch + subChange = #17, #18 - bigger boom, bigger badda-boom + subChange = #16 - boom stick + subChange = #1 - staging + } + } VERSION { version = 1.3.99.1 diff --git a/GPLv2.txt b/GPLv2.txt index 7a0ecdf..31b1e93 100644 --- a/GPLv2.txt +++ b/GPLv2.txt @@ -1,3 +1,5 @@ +Kaboom! (c) 2017, 2021 zer0Kerbal (zer0Kerbal@hotmail.com) + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 diff --git a/GameData/Kaboom/COPYING.WTFPL b/GameData/Kaboom/COPYING.WTFPL new file mode 100644 index 0000000..72c9762 --- /dev/null +++ b/GameData/Kaboom/COPYING.WTFPL @@ -0,0 +1,15 @@ +http://www.wtfpl.net/faq/ + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2014 RussNash37 (russnash37@gmail.com) + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/GameData/Kaboom/Changelog.cfg b/GameData/Kaboom/Changelog.cfg index 144fda3..57de44b 100644 --- a/GameData/Kaboom/Changelog.cfg +++ b/GameData/Kaboom/Changelog.cfg @@ -2,13 +2,61 @@ // Kaboom! // created: 2020 02 25 // updated: 20 Sep 2021 - KERBALCHANGELOG { showChangelog = True modName = Kaboom! license = GPLv2 author = russnash37, zer0Kerbal + VERSION + { + version = 1.3.99.2-BETA-3 + versionDate = 2021-10-09 + versionKSP = 1.12.2 + change = #26 - [ImgBot] Optimize images Mod-enhancement, In progress, upstream- contributed by imgbot[bot] + change = #27 - WeldingDockingPorts documentation, priority-0, In progress, code-issue- contributed by yalov + change = #29 - upstream for 1.3.99.2-Beta-3 upstream- contributed by zer0Kerbal + change = #31 - Merge pull request #29 from zer0Kerbal/master upstream- contributed by zer0Kerbal + change = #14 - Beta One: 1.3.99.0 (file version 1.3.99.17) documentation, Mod-enhancement, In progress, betareport, code-issue + CHANGE + { + type = Added + change = Localization + subChange = [en-us.cfg] + subChange = code localized + } + CHANGE + { + type = Code + change = SuperKlue in-flight docking ports + subChange = thank you to ['@flart'](https://forum.kerbalspaceprogram.com/index.php?/profile/181486-flart/) @yalov + subChange = if glued kaboom is enabled and there was in-flight docking, docking ports kaboom together + subChange = longer ScreenMessage + subChange = remove unnecessary usings + subChange = update .csproj + } + CHANGE + { + type = Status + change = Issues/MileStones + subChange = closes #14 - Beta One: 1.3.99.0 (file version 1.3.99.17) + subChange = updates #33 - Localization project - contributed by zer0kerbal + subChange = updates #22 - Localization - en-us.cfg (English) - all but one string - contributed by zer0kerbal + subChange = closes #26 - [ImgBot] Optimize images - contributed by imgbot[bot] + subChange = closes #27 - WeldingDockingPorts documentation, contributed by yalov + subChange = closes #29 - upstream for 1.3.99.2-Beta-3 - contributed by zer0Kerbal + subChange = closes #31 - Merge pull request #29 from zer0Kerbal/master upstream - contributed by zer0Kerbal + subChange = closes #9 - compile for KSP 1.12.2 - .NET 4.7.2 - C# 10.0 - contributed by zer0Kerbal + Change = Bug + subChange = opened #32 - Kaboom Safety Cover not localized + Change = Possible future changes + subChange = #33, #20, #21, #22 - more localizations + subChange = #25 - auto destruct during launch + subChange = #17, #18 - bigger boom, bigger badda-boom + subChange = #16 - boom stick + subChange = #1 - staging + } + } VERSION { version = 1.3.99.1 diff --git a/GameData/Kaboom/GPLv2.txt b/GameData/Kaboom/GPLv2.txt index 7a0ecdf..31b1e93 100644 --- a/GameData/Kaboom/GPLv2.txt +++ b/GameData/Kaboom/GPLv2.txt @@ -1,3 +1,5 @@ +Kaboom! (c) 2017, 2021 zer0Kerbal (zer0Kerbal@hotmail.com) + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 diff --git a/GameData/Kaboom/Kaboom.version b/GameData/Kaboom/Kaboom.version index f03f17e..8ca7521 100644 --- a/GameData/Kaboom/Kaboom.version +++ b/GameData/Kaboom/Kaboom.version @@ -1,5 +1,5 @@ { - "NAME" : "Kaboom", + "NAME" : "Kaboom! (BOOM)", "URL" : "https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/Kaboom.version", "DOWNLOAD" : "https://www.curseforge.com/kerbal/ksp-mods/kabooom/files/3392488", "CHANGE_LOG_URL" : "https://raw.githubusercontent.com/zer0Kerbal/Kaboom/master/Changelog.cfg", @@ -14,7 +14,7 @@ "MAJOR" : 1, "MINOR" : 3, "PATCH" : 99, - "BUILD" : 1 + "BUILD" : 2 }, "KSP_VERSION" : { diff --git a/GameData/Kaboom/Localization/en-us.cfg b/GameData/Kaboom/Localization/en-us.cfg index 35ed2f9..8cef58c 100644 --- a/GameData/Kaboom/Localization/en-us.cfg +++ b/GameData/Kaboom/Localization/en-us.cfg @@ -1,26 +1,56 @@ +// Changelog.cfg v1.1.1.0 +// Kaboom! (BOOM) +// created: 25 Feb 2020 +// updated: 05 Oct 2021 + // Auto generated by KSPDev Localization tool at: 8/28/2021 4:44:57 PM -// Total strings: 5 -// Total words: 7 Localization { en-us { - // ********** Type: Kaboom.ModuleKaboom, KSP Actions + #BOOM-modname = Kaboom! + #BOOM-modnameV = Kaboom! v<<0>> - #Kaboom_ModuleKaboom_KaboomAction = Kaboom! - - // ********** Type: Kaboom.ModuleKaboom, KSP Events - - #Kaboom_ModuleKaboom_CancelKaboomEvent = Cancel Kaboom! - #Kaboom_ModuleKaboom_KaboomEvent = Kaboom! + // ********** Type: Kaboom.ModuleKaboom, KSP Fields + #BOOM-GroupName = Kaboom + #BOOM-delay = Kaboom delay + #BOOM-KaboomEvent = Kaboom! + #BOOM-Cancel = Cancel Kaboom! + #BOOM-SafetyCover = Kaboom Safety Cover + #BOOM-KaboomItMsg = Kaboom set for <<0>> seconds. + #BOOM-CancelKoboomIt = Kaboom canceled. + + // ********** Type: Kaboom.Welding + #BOOM-MergePartsMsg = You cannot weld the root part! <<0>> + #BOOM-WeldingData-A = Docked vessels detected, unable to explode the pocking port.\nTrying to explode both docking ports + #BOOM-WeldingData-B = This part need to have 2 parts on attachment nodes + #BOOM-WeldingData-C = This part is the root part! Cancelling // ********** Type: Kaboom.ModuleKaboom, KSP Fields + #BOOM-GluedEvent = Superklue - #Kaboom_ModuleKaboom_delay = Kaboom delay - #Kaboom_ModuleKaboom_delay_Units = Seconds + #BOOM-ModuleKaboom-delay = Kaboom delay + #BOOM-ModuleKaboom-delay-Units = Seconds // ********** Global strings + #BOOM-settings-titl = Kaboom! Settings + #BOOM-settings-sect = Kaboom! (BOOM) + #BOOM-settings-disp = Kaboom! + #BOOM-settings-softExplode = Soft Explode + #BOOM-settings-softExplode-tt = Kaboom explosions make less fire + + #BOOM-settings-coloredPaw = PAW Safety Cover is Red + #BOOM-settings-coloredPaw-tt = Red color coding of Kaboom Safety Cover in the Part Action Window.\nUpdates after scene change. + + #BOOM-settings-xDebug = Debug? + #BOOM-settings-xDebug-tt = Enable for debug features (if any) (default = false/off) + + #BOOM-settings-xLogging = Extra Logging? + #BOOM-settings-xLogging-tt = Enable this for extra logging features (if any) (default = false/off)\ngame performance will probably be negatively effected. } } + +// GPLv2 BY +// zer0Kerbal \ No newline at end of file diff --git a/GameData/Kaboom/Readme.htm b/GameData/Kaboom/Readme.htm index 71ad99f..85a4fc3 100644 --- a/GameData/Kaboom/Readme.htm +++ b/GameData/Kaboom/Readme.htm @@ -1,91 +1,143 @@ - +updated: 08 Oct 2021 --> -

Download on Curseforge or Github or SpaceDock. Also available on CKAN.

+

Download on Curseforge or Github or SpaceDock.

+
Available on CKAN as Kaboom.

Kaboom! (BOOM)

+

Another way to not go to space today! What can me more Kerbal than more Explosions!

Adopted by @zer0Kerbal, originally by @russnash37

-

Another way to not go to space today!

-

What can me more Kerbal than more Explosions!

-

Mod Version
-KSP version KSP-AVC License GPLv2
-Curseforge CKAN GitHub SpaceDock
-Code Validate AVC .version files

-

Kaboom!

+

[Mod Version][MOD:url] KSP version License GPLv2
+Curseforge CKAN GitHub SpaceDock

+

Code KSP-AVC Validate AVC .version files

+
brought to you by KGEx

+

Description

What is Kaboom!?

Kaboom! is a very simple mod for KSP that allows the destruction of individual parts:

+

Features

+
    +
  • NEW SuperKlue parts together in flight!
  • +
  • aka Glued Kaboom aka Kaboom Kryowelding aka Kyanoakrylate
  • Kaboom parts either through the right-click menu or via action groups.
  • -
  • Parts can be kaboomed either immediately or via a tweakable delay timer of up to 30 seconds.
  • +
  • Parts can be Kaboomed either immediately or via a tweakable delay timer of up to 30 seconds.
  • Kabooms can also be set by kerbals on EVA.
  • +
  • Another very helpful feature is to destroy parts in Stock Inventory, because there is no way to destroy parts, that you can't put out of inventory, like Jetpacks, personal parachutes, etc
  • +
  • Currently KaboOm does not work on asteroids and comets. :(
  • +
  • This mod adds no parts
+
+
+

Flag
+Kaboom! View full album


-

Future planned features:

+

Cabin notes

+
+
    +
  • The mod contains two parts, a command/parachute and Heatshield/cargo-bay.
  • +
  • Future Plans: lol. Except compatibility patches, keep it working with future KSP updates.
      -
    • KaboOoming of parts via staging.
    • +
    • #33, #20, #21, #22 - more localizations
    • +
    • #25 - auto destruct during launch
    • +
    • #17, #18 - bigger boom, bigger badda-boom
    • +
    • #16 - boom stick
    • +
    • #1 - staging
    • +
  • +
  • Community Tech Tree integration and Tech Tree Balancing (need feedback and assistance)
  • +
  • Have a request? Glad to have them, kindly submit through GitHub.
+

-

View full album

+

Localization work in progress

+
+
    +
  • + English
  • +
  • +your translation here
  • +
+

HELP WANTED - See the README in the Localization folder for instructions for adding or improving translations. GitHub push is the best way to contribute. Additions and corrections solicited and welcome!

+

-

Kaboom!

+

How to support this and other great mods by zer0Kerbal

+

Support Github Sponsor Patreon Buy zer0Kerbal a snack


-

Installation Directions:

- -

Changelog Summary

+

See More

    -
  • See ChangeLog for full details of mod changes
  • +
  • Discussions and news on this mod: See Discussions or KSP Forums
  • +
  • Changelog Summary for more details of changes : See ChangeLog
  • +
  • Known Issues for more details of feature requests and known issues : See Known Issues
-

Known Issues

+
+

Installation Directions

    -
  • See Known Issues for full details of feature requests, and known issues
  • +
  • Use
    +CKAN

Dependencies

Recommends

Suggests

+

Mods that benefit KaboOom! (BOOM)

+

Other fun mods by zed'K

+

Supports

Conflicts

-