Compatibility with multi-mode engines.
[VesselSimulator.git] / KerbalEngineer / EngineerGlobals.cs
blob:a/KerbalEngineer/EngineerGlobals.cs -> blob:b/KerbalEngineer/EngineerGlobals.cs
--- a/KerbalEngineer/EngineerGlobals.cs
+++ b/KerbalEngineer/EngineerGlobals.cs
@@ -1,80 +1,83 @@
-// Name:    Kerbal Engineer Redux
-// Author:  CYBUTEK
-// License: Attribution-NonCommercial-ShareAlike 3.0 Unported
-
-using System.Diagnostics;
-using System.IO;
-using System.Reflection;
-using UnityEngine;
+// 
+//     Copyright (C) 2015 CYBUTEK
+// 
+//     This program is free software: you can redistribute it and/or modify
+//     it under the terms of the GNU General Public License as published by
+//     the Free Software Foundation, either version 3 of the License, or
+//     (at your option) any later version.
+// 
+//     This program is distributed in the hope that it will be useful,
+//     but WITHOUT ANY WARRANTY; without even the implied warranty of
+//     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//     GNU General Public License for more details.
+// 
+//     You should have received a copy of the GNU General Public License
+//     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+// 
 
 namespace KerbalEngineer
 {
-    public class EngineerGlobals
+    using System.IO;
+    using System.Reflection;
+
+    public static class EngineerGlobals
     {
-        #region Properties
+        /// <summary>
+        ///     Current version of the Kerbal Engineer assembly.
+        /// </summary>
+        public const string ASSEMBLY_VERSION = "1.0.19.3";
+
+        private static string assemblyFile;
+        private static string assemblyName;
+        private static string assemblyPath;
+        private static string settingsPath;
 
         /// <summary>
-        /// Current version of the Kerbal Engineer assembly.
-        /// </summary>
-        public const string AssemblyVersion = "1.0.0.0";
-
-        private static string _assemblyFile;
-        /// <summary>
-        /// Gets the Kerbal Engineer assembly's path including the file name.
+        ///     Gets the Kerbal Engineer assembly's path including the file name.
         /// </summary>
         public static string AssemblyFile
         {
             get
             {
-                if (_assemblyFile == null)
-                    _assemblyFile = Assembly.GetExecutingAssembly().Location;
-
-                return _assemblyFile;
+                return assemblyFile ?? (assemblyFile = Assembly.GetExecutingAssembly().Location);
             }
         }
 
-        private static string _assemblyName;
         /// <summary>
-        /// Gets the Kerbal Engineer assembly's file name.
+        ///     Gets the Kerbal Engineer assembly's file name.
         /// </summary>
         public static string AssemblyName
         {
             get
             {
-                if (_assemblyName == null)
-                    _assemblyName = new FileInfo(AssemblyFile).Name;
-
-                return _assemblyName;
+                return assemblyName ?? (assemblyName = new FileInfo(AssemblyFile).Name);
             }
         }
 
-        private static string _assemblyPath;
         /// <summary>
-        /// Gets the Kerbal Engineer assembly's path excluding the file name.
+        ///     Gets the Kerbal Engineer assembly's path excluding the file name.
         /// </summary>
         public static string AssemblyPath
         {
             get
             {
-                if (_assemblyPath == null)
-                    _assemblyPath = AssemblyFile.Replace(new FileInfo(AssemblyFile).Name, "");
-
-                return _assemblyPath;
+                return assemblyPath ?? (assemblyPath = AssemblyFile.Replace(new FileInfo(AssemblyFile).Name, ""));
             }
         }
 
-        #endregion
-
-        #region Methods
-
-        private static int _windowID = int.MaxValue;
-        public static int GetNextWindowID()
+        /// <summary>
+        ///     Gets the settings directory path.
+        /// </summary>
+        public static string SettingsPath
         {
-            _windowID--;
-            return _windowID;
+            get
+            {
+                if (string.IsNullOrEmpty(settingsPath))
+                {
+                    settingsPath = Path.Combine(AssemblyPath, "Settings");
+                }
+                return settingsPath;
+            }
         }
-
-        #endregion
     }
 }
-