Removed the Core parts, since they've been deprecated a long time.
Removed the Core parts, since they've been deprecated a long time.

file:a/CoreStrut.cs (deleted)
--- a/CoreStrut.cs
+++ /dev/null
@@ -1,250 +1,1 @@
-// QuantumStrutsContinued
-//
-// CoreStrut.cs
-// 
-// Continued from QuantumStruts by BoJaN.  Used by permission.
-//
-// ModuleManager patches © 2014 K3|Chris.  Used by permission.
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using System;
-using UnityEngine;
-
-namespace QuantumStrut
-{
-	class CoreStrut
-	{
-		public bool isDestroyed = false;
-		Material _material = null;
-
-		public Material Material
-		{
-			set
-			{
-				_material = value;
-				if (Material != null)
-					lr.material = Material;
-			}
-			get
-			{
-				return _material;
-			}
-		}
-
-		Color _startColor = Color.white;
-
-		public Color StartColor
-		{
-			set
-			{
-				_startColor = value;
-				lr.SetColors(StartColor, EndColor);
-			}
-			get
-			{
-				return _startColor;
-			}
-		}
-
-		Color _endColor = Color.white;
-
-		public Color EndColor
-		{
-			set
-			{
-				_endColor = value;
-				lr.SetColors(StartColor, EndColor);
-			}
-			get
-			{
-				return _endColor;
-			}
-		}
-
-		float _startSize = 0;
-
-		public float StartSize
-		{
-			set
-			{
-				_startSize = value;
-				lr.SetWidth(StartSize, EndSize);
-			}
-			get
-			{
-				return _startSize;
-			}
-		}
-
-		float _endSize = 0;
-
-		public float EndSize
-		{
-			set
-			{
-				_endSize = value;
-				lr.SetWidth(StartSize, EndSize);
-			}
-			get
-			{
-				return _endSize;
-			}
-		}
-
-		ConfigurableJoint joint;
-		public bool Active = true;
-		public bool Selected = false;
-		public Part parent = null;
-		public Vector3 parentOffset = Vector3.zero;
-		public Part target = null;
-		public Vector3 targetOffset = Vector3.zero;
-		GameObject LineObj;
-		LineRenderer lr = null;
-
-		public void print(object body, params object[] args)
-		{
-			string final = body.ToString();
-			for (int I = 0; I < args.Length; I++)
-			{
-				final = final.Replace("{" + I + "}", args[I].ToString());
-			}
-			MonoBehaviour.print("[AutoStrut] " + final);
-		}
-
-		void DrawLine(Vector3 origin, Vector3 end)
-		{
-			if (Util.isValid(lr))
-			{
-				lr.SetPosition(0, origin);
-				lr.SetPosition(1, end);
-			}
-		}
-
-		void createJoint()
-		{
-			if (!Util.isValid(joint))
-			{
-				joint = parent.gameObject.AddComponent<ConfigurableJoint>();
-				joint.connectedBody = target.rigidbody;
-
-				joint.anchor = new Vector3(
-					0,
-					0,
-					Vector3.Distance(
-						parent.transform.TransformPoint(parentOffset),
-						target.transform.TransformPoint(targetOffset)
-					) / 2
-				);
-				joint.axis = new Vector3(0, 0, 1);
-				joint.xMotion = ConfigurableJointMotion.Locked;
-				joint.yMotion = ConfigurableJointMotion.Locked;
-				joint.zMotion = ConfigurableJointMotion.Locked;
-				joint.angularXMotion = ConfigurableJointMotion.Locked;
-				joint.angularYMotion = ConfigurableJointMotion.Locked;
-				joint.angularZMotion = ConfigurableJointMotion.Locked;
-			}
-		}
-
-		void deleteJoint()
-		{
-			if (Util.isValid(joint))
-				GameObject.DestroyImmediate(joint);
-		}
-
-		public CoreStrut(Part parent, Vector3 parentOffset, Part target, Vector3 targetOffset)
-		{
-			this.parent = parent;
-			this.parentOffset = parentOffset;
-			this.target = target;
-			this.targetOffset = targetOffset;
-
-			createJoint();
-
-			LineObj = new GameObject();
-			LineObj.name = "quantumstrut";
-
-			lr = LineObj.AddComponent<LineRenderer>();
-			lr.useWorldSpace = true;
-
-			Material = QuantumStrut.LaserMaterial;
-			StartColor = Color.white;
-			EndColor = Color.white;
-			StartSize = 0.03f;
-			EndSize = 0.0075f;
-
-			lr.SetVertexCount(2);
-			lr.SetPosition(0, Vector3.zero);
-			lr.SetPosition(1, Vector3.zero);
-		}
-
-		public void Update()
-		{
-			if (Util.isValid(parent) && Util.isValid(target) && Util.isValid(parent.vessel) && parent.vessel.parts.Contains(target))
-			{
-				if (Active)
-				{
-					createJoint();
-					Vector3 start = parent.transform.TransformPoint(parentOffset);
-					Vector3 end = target.transform.TransformPoint(targetOffset);
-					if (Selected)
-						lr.SetColors(Color.blue, Color.blue);
-					else
-						lr.SetColors(StartColor, EndColor);
-					DrawLine(start, end);
-				}
-				else
-				{
-					deleteJoint();
-					DrawLine(Vector3.zero, Vector3.zero);
-				}
-			}
-			else
-			{
-				DrawLine(Vector3.zero, Vector3.zero);
-				Destroy();
-			}
-		}
-
-		public void Destroy()
-		{
-			DrawLine(Vector3.zero, Vector3.zero);
-			if (Util.isValid(joint))
-				GameObject.DestroyImmediate(joint);
-
-			if (Util.isValid(lr))
-				GameObject.DestroyImmediate(lr);
-
-			if (Util.isValid(LineObj))
-				GameObject.DestroyImmediate(LineObj);
-
-			joint = null;
-			LineObj = null;
-			lr = null;
-
-			parent = null;
-			target = null;
-			targetOffset = Vector3.zero;
-			isDestroyed = true;
-		}
-	}
-}

 Binary files a/GameData/QuantumStrutsContinued/Parts/QuantumStruts/quantumStrutCore/model.mu and /dev/null differ
 Binary files a/GameData/QuantumStrutsContinued/Parts/QuantumStruts/quantumStrutCore/model000.mbm and /dev/null differ
 Binary files a/GameData/QuantumStrutsContinued/Parts/QuantumStruts/quantumStrutCore/model001.mbm and /dev/null differ
--- a/GameData/QuantumStrutsContinued/Parts/QuantumStruts/quantumStrutCore/part.cfg
+++ /dev/null
@@ -1,82 +1,1 @@
-// QuantumStrutsContinued
-// 
-// Continued from QuantumStruts by BoJaN.  Used by permission.
-//
-// ModuleManager patches © 2014 K3|Chris.  Used by permission.
-// 
-// Copyright © 2014, toadicus
-// All rights reserved.
-// 
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-// 
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-// 
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-// 
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-PART
-{
-// --- general parameters ---
-name = quantumStrutCore
-module = Part
-author = BoJaN
-
-// --- asset parameters ---
-mesh = model.mu
-scale = 1
-rescaleFactor = 1
-iconCenter = 0, 3, 0
-
-// --- node definitions ---
-// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z
-node_stack_top = 0, 0.1990267, 0, 0.0, 1.0, 0.0
-node_stack_bottom = 0, -0.1990267, 0, 0.0, 1.0, 0.0
-
-// --- FX definitions ---
-
-
-// --- editor parameters ---
-cost = 7500
-category = Utility
-subcategory = 0
-title = Quantum Core
-manufacturer = Bojantek Corporation
-description = A quantum core capable of sustaining a number of quantum struts.
-
-// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
-attachRules = 1,0,1,1,0
-
-// --- standard part parameters ---
-mass = 0.1
-dragModelType = default
-maximum_drag = 0.2
-minimum_drag = 0.2
-angularDrag = 2
-crashTolerance = 9
-maxTemp = 3400
-
-MODULE
-{
-    name = QuantumStrutCore
-	IsEnabled = true
-	PowerConsumption = 0.012
-	MaxStruts = 8
-	
-	Material = Particles/Additive
-	StartColor = 57, 146, 181
-	EndColor = 11, 29, 36
-	StartSize = 0.03
-	EndSize = 0.0075
-}
-}

file:a/QuantumStrutCore.cs (deleted)
--- a/QuantumStrutCore.cs
+++ /dev/null
@@ -1,508 +1,1 @@
-// QuantumStrutsContinued
-//
-// QuantumStrutCore.cs
-// 
-// Continued from QuantumStruts by BoJaN.  Used by permission.
-//
-// ModuleManager patches © 2014 K3|Chris.  Used by permission.
-//
-// Copyright © 2014, toadicus
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-//    this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation and/or other
-//    materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-using KSP;
-using KSP.IO;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using UnityEngine;
-
-namespace QuantumStrut
-{
-	class QuantumStrutCore : PartModule
-	{
-		GameObject lineObj = null;
-		LineRenderer lr = null;
-		ConfigNode nodeToLoad = null;
-		bool Placing = false;
-		bool Deleting = false;
-		List<CoreStrut> struts = new List<CoreStrut>();
-		Part startPart = null;
-		Vector3 startOffset = Vector3.zero;
-		Part endPart = null;
-		Vector3 endOffset = Vector3.zero;
-		public Material material = null;
-		public Color startColor = Color.white;
-		public Color endColor = Color.white;
-
-		#region Fields
-
-		[KSPField(isPersistant = true)]
-		public bool IsEnabled = true;
-		[KSPField(isPersistant = false)]
-		public float PowerConsumption = 0;
-		[KSPField(isPersistant = false)]
-		public int MaxStruts = 8;
-		[KSPField(isPersistant = false)]
-		public string Material = "Particles/Additive";
-		[KSPField(isPersistant = false)]
-		public Vector3 StartColor = Vector3.zero;
-		[KSPField(isPersistant = false)]
-		public Vector3 EndColor = Vector3.zero;
-		[KSPField(isPersistant = false)]
-		public float StartSize = 0.03f;
-		[KSPField(isPersistant = false)]
-		public float EndSize = 0.0075f;
-
-		#endregion
-
-		#region Actions
-
-		[KSPAction("Toggle")]
-		public void ToggleCore(KSPActionParam param)
-		{
-			IsEnabled = !IsEnabled;
-		}
-
-		[KSPAction("Activate")]
-		public void ActivateCore(KSPActionParam param)
-		{
-			IsEnabled = true;
-		}
-
-		[KSPAction("Deactivate")]
-		public void DeactivateCore(KSPActionParam param)
-		{
-			IsEnabled = false;
-		}
-
-		#endregion
-
-		#region Events
-
-		[KSPEvent(
-			guiActive = true,
-			guiName = "Place Strut",
-			active = false,
-			externalToEVAOnly = true,
-			guiActiveUnfocused = true,
-			unfocusedRange = 5
-		)]
-		public void BeginPlace()
-		{
-			startPart = null;
-			startOffset = Vector3.zero;
-			endPart = null;
-			endOffset = Vector3.zero;
-			Placing = true;
-		}
-
-		[KSPEvent(
-			guiActive = true,
-			guiName = "Remove Strut",
-			active = false,
-			externalToEVAOnly = true,
-			guiActiveUnfocused = true,
-			unfocusedRange = 2500
-		)]
-		public void BeginDelete()
-		{
-			Deleting = true;
-		}
-
-		[KSPEvent(guiActive = true, guiName = "Activate", active = true)]
-		public void ActivateCore()
-		{
-			IsEnabled = true;
-		}
-
-		[KSPEvent(guiActive = true, guiName = "Deactivate", active = false)]
-		public void DeactivateCore()
-		{
-			IsEnabled = false;
-		}
-
-		#endregion
-
-		public Vector3 StringToVector3(string str)
-		{
-			string[] vals = str.Split(',');
-			float x = (float)Convert.ToDecimal(vals[0]);
-			float y = (float)Convert.ToDecimal(vals[1]);
-			float z = (float)Convert.ToDecimal(vals[2]);
-			return new Vector3(x, y, z);
-		}
-
-		public Color Vector3toColor(Vector3 vec)
-		{
-			return new Color(vec.x / 255, vec.y / 255, vec.z / 255);
-		}
-
-		Part partFromGameObject(GameObject ob)
-		{
-			GameObject o = ob;
-
-			while (o)
-			{
-				Part p = Part.FromGO(o);
-				if (p && p != null)
-				{
-					return p;
-				}
-
-				if (o.transform.parent)
-					o = o.transform.parent.gameObject;
-				else
-					return null;
-			}
-			return null;
-		}
-
-		Part partFromRaycast(RaycastHit hit)
-		{
-			return partFromGameObject(hit.collider.gameObject);
-		}
-
-		bool isValid(UnityEngine.Object obj)
-		{
-			return (obj && obj != null);
-		}
-
-		void InitLaser()
-		{
-			if (!isValid(lr))
-			{
-				lineObj = new GameObject();
-
-				lr = lineObj.AddComponent<LineRenderer>();
-				lr.useWorldSpace = true;
-
-				lr.material = new Material(Shader.Find("Particles/Additive"));
-				lr.SetColors(Color.white, Color.white);
-				lr.SetWidth(0.03f, 0.03f);
-
-				lr.SetVertexCount(2);
-				lr.SetPosition(0, Vector3.zero);
-				lr.SetPosition(1, Vector3.zero);
-				lr.castShadows = false;
-				lr.receiveShadows = true;
-			}
-		}
-
-		void DestroyLaser()
-		{
-			if (isValid(lr))
-				LineRenderer.DestroyImmediate(lr);
-			if (isValid(lineObj))
-				GameObject.DestroyImmediate(lineObj);
-		}
-
-		float GetEnergy()
-		{
-			double energy = 0;
-			foreach (Part p in part.vessel.parts)
-			{
-				foreach (PartResource r in p.Resources)
-				{
-					if (r.resourceName == "ElectricCharge")
-						energy += r.amount;
-				}
-			}
-			return (float)energy;
-		}
-
-		void AddStrut(Part a, Vector3 aO, Part b, Vector3 bO)
-		{
-			CoreStrut s = new CoreStrut(a, aO, b, bO);
-			s.Material = material;
-			s.StartColor = startColor;
-			s.EndColor = endColor;
-			s.StartSize = StartSize;
-			s.EndSize = EndSize;
-			struts.Add(s);
-		}
-
-		public override string GetInfo()
-		{
-			return "Max Struts: " + MaxStruts + "\nRequires:\n- ElectricCharge (" + PowerConsumption + "/s.)\n\n Energy cost is per-strut.";
-		}
-
-		public override void OnStart(PartModule.StartState state)
-		{
-			try
-			{
-				material = new Material(Shader.Find(Material.Trim()));
-			}
-			catch
-			{
-				material = null;
-			}
-
-			startColor = Vector3toColor(StartColor);
-			endColor = Vector3toColor(EndColor);
-			base.OnStart(state);
-		}
-
-		public override void OnSave(ConfigNode node)
-		{
-			foreach (CoreStrut strut in struts)
-			{
-				if (!strut.isDestroyed)
-				{
-					ConfigNode n = node.AddNode("QuantumStrut");
-					n.AddValue("parent", part.vessel.parts.IndexOf(strut.parent));
-					n.AddValue(
-						"parentOffset",
-						strut.parentOffset.x + "," + strut.parentOffset.y + "," + strut.parentOffset.z
-					);
-					n.AddValue("target", part.vessel.parts.IndexOf(strut.target));
-					n.AddValue(
-						"targetOffset",
-						strut.targetOffset.x + "," + strut.targetOffset.y + "," + strut.targetOffset.z
-					);
-				}
-			}
-
-			base.OnSave(node);
-		}
-
-		public override void OnLoad(ConfigNode node)
-		{
-			if (nodeToLoad == null)
-				nodeToLoad = node;
-
-			base.OnLoad(node);
-		}
-
-		void printObj(object obj)
-		{
-			using (KSP.IO.TextWriter writer = TextWriter.CreateForType<string>("obj.cs"))
-			{
-				string str = printProperties(obj, TypeDescriptor.GetProperties(obj), 0);
-				writer.Write(str);
-				print(str);
-			}
-		}
-
-		string printProperties(object obj, PropertyDescriptorCollection collection, int I)
-		{
-			if (I > 2)
-				return "";
-
-			string prefix = "";
-			string str = "";
-			for (int T = 0; T < I; T++)
-			{
-				prefix += "    ";
-			}
-
-			str += "\n" + prefix + "#region";
-			foreach (PropertyDescriptor d in collection)
-			{
-				str += "\n" + prefix + d.Name + " = " + d.GetValue(obj);
-				str += printProperties(obj, d.GetChildProperties(obj), I + 1);
-			}
-			str += "\n" + prefix + "#endregion";
-			return str;
-		}
-
-		public override void OnUpdate()
-		{
-			bool eva = isValid(Util.Kerbal);
-			Events["ActivateCore"].active = !IsEnabled;
-			Events["DeactivateCore"].active = IsEnabled;
-			Events["BeginPlace"].active = !Placing && !Deleting && struts.Count < MaxStruts && eva;
-			Events["BeginDelete"].active = !Deleting && !Placing && struts.Count > 0 && eva;
-
-			if (nodeToLoad != null)
-			{
-				foreach (ConfigNode strut in nodeToLoad.GetNodes("QuantumStrut"))
-				{
-					Part parent = part.vessel.parts[Convert.ToInt32(strut.GetValue("parent"))];
-					Vector3 parentOffset = StringToVector3(strut.GetValue("parentOffset"));
-					Part target = part.vessel.parts[Convert.ToInt32(strut.GetValue("target"))];
-					Vector3 targetOffset = StringToVector3(strut.GetValue("targetOffset"));
-
-					if (isValid(parent) && isValid(target))
-						AddStrut(parent, parentOffset, target, targetOffset);
-				}
-				nodeToLoad = null;
-			}
-
-			if (eva)
-			{
-				InitLaser();
-				if (Placing)
-				{
-					RaycastHit info = new RaycastHit();
-					Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
-					bool hit = Physics.Raycast(ray, out info, Mathf.Infinity);
-					if (isValid(startPart))
-					{
-						Vector3 pos = startPart.transform.TransformPoint(startOffset);
-						ray = new Ray(pos, (info.point - pos).normalized);
-						hit = Physics.Raycast(ray, out info, 10);
-					}
-
-					if (Input.GetMouseButtonUp(0))
-					{
-						if (hit)
-						{
-							if (!isValid(startPart))
-							{
-								startPart = partFromRaycast(info);
-								if (isValid(startPart))
-									startOffset = startPart.transform.InverseTransformPoint(info.point);
-							}
-							else if (!isValid(endPart))
-							{
-								Part p = partFromRaycast(info);
-								if (isValid(p))
-								{
-									if (p != startPart && startPart.vessel.parts.Contains(p))
-									{
-										endPart = p;
-										endOffset = endPart.transform.InverseTransformPoint(info.point);
-
-										AddStrut(startPart, startOffset, endPart, endOffset);
-									}
-									Placing = false;
-								}
-							}
-						}
-					}
-
-					if (isValid(startPart))
-					{
-						if (hit)
-						{
-							Part p = partFromRaycast(info);
-							Color c = Color.red;
-
-							if (isValid(p))
-							{
-								if (startPart.vessel.parts.Contains(p) && p != startPart)
-									c = Color.green;
-							}
-
-							lr.SetColors(c, c);
-							lr.SetPosition(0, startPart.transform.TransformPoint(startOffset));
-							lr.SetPosition(1, info.point);
-						}
-						else
-						{
-							lr.SetColors(Color.red, Color.red);
-							lr.SetPosition(0, startPart.transform.TransformPoint(startOffset));
-							lr.SetPosition(1, ray.GetPoint(10));
-						}
-					}
-				}
-				else
-				{
-					lr.SetPosition(0, Vector3.zero);
-					lr.SetPosition(1, Vector3.zero);
-				}
-
-				if (Deleting)
-				{
-					RaycastHit info = new RaycastHit();
-					Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
-					bool hit = Physics.Raycast(ray, out info, Mathf.Infinity);
-
-					CoreStrut closest = null;
-					float closestDist = Mathf.Infinity;
-					foreach (CoreStrut strut in struts)
-					{
-						strut.Selected = false;
-						if (hit)
-						{
-							Vector3 start = strut.parent.transform.TransformPoint(strut.parentOffset);
-							float d = Vector3.Distance(start, info.point);
-
-							if (d < 0.05 && d < closestDist)
-							{
-								closest = strut;
-								closestDist = d;
-							}
-						}
-					}
-
-					if (closest != null)
-						closest.Selected = true;
-
-					if (Input.GetMouseButtonUp(0))
-					{
-						if (closest != null)
-						{
-							closest.Destroy();
-							struts.Remove(closest);
-						}
-						Deleting = false;
-					}
-				}
-			}
-			else
-			{
-				DestroyLaser();
-			}
-
-			foreach (CoreStrut s in struts.ToArray())
-			{
-				if (IsEnabled)
-				{
-					if (s.Active)
-					{
-						if (PowerConsumption == 0 || (GetEnergy() > PowerConsumption * TimeWarp.fixedDeltaTime && part.RequestResource(
-							                      "ElectricCharge",
-							                      PowerConsumption * TimeWarp.fixedDeltaTime
-						                      ) > 0))
-						{
-							s.Active = true;
-						}
-						else
-						{
-							s.Active = false;
-						}
-					}
-					else
-					{
-						if (GetEnergy() > 5 * TimeWarp.fixedDeltaTime && part.RequestResource(
-							                      "ElectricCharge",
-							                      5 * TimeWarp.fixedDeltaTime
-						                      ) > 0)
-						{
-							s.Active = true;
-						}
-					}
-				}
-				else
-				{
-					s.Active = false;
-				}
-
-				s.Update();
-				if (s.isDestroyed)
-					struts.Remove(s);
-			}
-			base.OnUpdate();
-		}
-	}
-}
-

--- a/QuantumStrutsContinued.csproj
+++ b/QuantumStrutsContinued.csproj
@@ -72,9 +72,7 @@
   </PropertyGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <ItemGroup>
-    <Compile Include="CoreStrut.cs" />
     <Compile Include="QuantumStrut.cs" />
-    <Compile Include="QuantumStrutCore.cs" />
     <Compile Include="Strut.cs" />
     <Compile Include="Util.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
@@ -108,7 +106,6 @@
   <ItemGroup>
     <None Include="GameData\QuantumStrutsContinued\KASifyQSC.cfg" />
     <None Include="GameData\QuantumStrutsContinued\Parts\QuantumStruts\quantumStrut\part.cfg" />
-    <None Include="GameData\QuantumStrutsContinued\Parts\QuantumStruts\quantumStrutCore\part.cfg" />
     <None Include="GameData\QuantumStrutsContinued\Parts\QuantumStruts\strutGun\part.cfg" />
   </ItemGroup>
 </Project>