Cores: Fixed some 'new' method hiding to virtual/override.
Cores: Fixed some 'new' method hiding to virtual/override.

--- a/VOID_Core.cs
+++ b/VOID_Core.cs
@@ -70,6 +70,7 @@
 		public static void Reset()
 		{
 			_instance.StopGUI();
+			_instance.Dispose();
 			_instance = null;
 			_initialized = false;
 		}
@@ -348,18 +349,11 @@
 			}
 		}
 
-		protected ApplicationLauncher.AppScenes appIconVisibleScenes
-		{
-			get
-			{
-				if (this is VOID_EditorCore)
-				{
-					return ApplicationLauncher.AppScenes.VAB | ApplicationLauncher.AppScenes.SPH;
-				}
-				else
-				{
-					return ApplicationLauncher.AppScenes.FLIGHT;
-				}
+		protected virtual ApplicationLauncher.AppScenes appIconVisibleScenes
+		{
+			get
+			{
+				return ApplicationLauncher.AppScenes.FLIGHT;
 			}
 		}
 
@@ -443,7 +437,7 @@
 			}
 		}
 
-		public void OnGUI()
+		public virtual void OnGUI()
 		{
 			if (Event.current.type == EventType.Repaint)
 			{
@@ -497,7 +491,7 @@
 			}
 		}
 
-		public void Update()
+		public virtual void Update()
 		{
 			this.LoadBeforeUpdate();
 
@@ -548,7 +542,7 @@
 			this._updateTimer += Time.deltaTime;
 		}
 
-		public void FixedUpdate()
+		public virtual void FixedUpdate()
 		{
 			bool newPowerState = this.powerAvailable;
 
@@ -1065,6 +1059,20 @@
 			this.SetIconTexture(this.powerState | this.activeState);
 		}
 
+		public virtual void Dispose()
+		{
+			if (this.AppLauncherButton != null)
+			{
+				ApplicationLauncher.Instance.RemoveModApplication(this.AppLauncherButton);
+				this.AppLauncherButton = null;
+			}
+			if (this.ToolbarButton != null)
+			{
+				this.ToolbarButton.Destroy();
+				this.ToolbarButton = null;
+			}
+		}
+
 		protected enum IconState
 		{
 			PowerOff = 1,

--- a/VOID_EditorCore.cs
+++ b/VOID_EditorCore.cs
@@ -74,12 +74,20 @@
 			}
 		}
 
+		protected override ApplicationLauncher.AppScenes appIconVisibleScenes
+		{
+			get
+			{
+				return ApplicationLauncher.AppScenes.VAB | ApplicationLauncher.AppScenes.SPH;
+			}
+		}
+
 		public VOID_EditorCore() : base()
 		{
 			this._Name = "VOID Editor Core";
 		}
 
-		public new void OnGUI() {}
+		public override void OnGUI() {}
 
 		public override void DrawGUI()
 		{
@@ -100,7 +108,7 @@
 			base.DrawGUI();
 		}
 
-		public new void Update()
+		public override void Update()
 		{
 			foreach (IVOID_EditorModule module in this.Modules)
 			{
@@ -142,7 +150,7 @@
 			this.CheckAndSave ();
 		}
 
-		public new void FixedUpdate() {}
+		public override void FixedUpdate() {}
 	}
 }