diff --git a/Torch.API/Managers/IDependencyManager.cs b/Torch.API/Managers/IDependencyManager.cs
index 1f3f77e..36ceec7 100644
--- a/Torch.API/Managers/IDependencyManager.cs
+++ b/Torch.API/Managers/IDependencyManager.cs
@@ -38,25 +38,25 @@ namespace Torch.API.Managers
bool RemoveManager(IManager manager);
///
- /// Initializes the dependency manager, and all its registered managers.
+ /// Sorts the dependency manager, then attaches all its registered managers in
///
- void Init();
+ void Attach();
///
- /// Disposes the dependency manager, and all its registered managers.
+ /// Detaches all registered managers in
///
- void Dispose();
+ void Detach();
///
- /// The order that managers should be loaded in. (Dependencies, then dependents)
+ /// The order that managers should be attached in. (Dependencies, then dependents)
///
/// When trying to determine load order before this dependency manager is initialized
- IEnumerable LoadOrder { get; }
+ IEnumerable AttachOrder { get; }
///
- /// The order that managers should be unloaded in. (Dependents, then dependencies)
+ /// The order that managers should be detached in. (Dependents, then dependencies)
///
/// When trying to determine unload order before this dependency manager is initialized
- IEnumerable UnloadOrder { get; }
+ IEnumerable DetachOrder { get; }
}
}
diff --git a/Torch.API/Managers/IManager.cs b/Torch.API/Managers/IManager.cs
index 79b7952..3e1a951 100644
--- a/Torch.API/Managers/IManager.cs
+++ b/Torch.API/Managers/IManager.cs
@@ -12,13 +12,13 @@ namespace Torch.API.Managers
public interface IManager
{
///
- /// Initializes the manager. Called once this manager's dependencies have been initialized.
+ /// Attaches the manager to the session. Called once this manager's dependencies have been attached.
///
- void Init();
+ void Attach();
///
- /// Disposes the manager. Called before this manager's dependencies are disposed.
+ /// Detaches the manager from the session. Called before this manager's dependencies are detached.
///
- void Dispose();
+ void Detach();
}
}
diff --git a/Torch.Client/Program.cs b/Torch.Client/Program.cs
index 7fca9b0..1ff5f54 100644
--- a/Torch.Client/Program.cs
+++ b/Torch.Client/Program.cs
@@ -31,9 +31,6 @@ namespace Torch.Client
}
}
- private static readonly string[] _steamInstallDirectories = new[] {
- @"C:\Program Files\Steam\", @"C:\Program Files (x86)\Steam\"
- };
private const string _steamSpaceEngineersDirectory = @"steamapps\common\SpaceEngineers\";
private const string _spaceEngineersVerifyFile = SpaceEngineersBinaries + @"\SpaceEngineers.exe";
@@ -76,15 +73,18 @@ namespace Torch.Client
private static void SetupSpaceEngInstallAlias()
{
string spaceEngineersDirectory = null;
- foreach (string steamDir in _steamInstallDirectories)
+
+ // TODO look at Steam/config/Config.VDF? Has alternate directories.
+ var steamDir =
+ Microsoft.Win32.Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\Valve\\Steam", "SteamPath", null) as string;
+ if (steamDir != null)
{
spaceEngineersDirectory = Path.Combine(steamDir, _steamSpaceEngineersDirectory);
+ // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
if (File.Exists(Path.Combine(spaceEngineersDirectory, _spaceEngineersVerifyFile)))
- {
_log.Debug("Found Space Engineers in {0}", spaceEngineersDirectory);
- break;
- }
- _log.Debug("Couldn't find Space Engineers in {0}", spaceEngineersDirectory);
+ else
+ _log.Debug("Couldn't find Space Engineers in {0}", spaceEngineersDirectory);
}
if (spaceEngineersDirectory == null)
{
@@ -149,7 +149,7 @@ namespace Torch.Client
_log.Error("Unable to create junction link {0} => {1}", linkName, targetDir);
return cmd.ExitCode == 0;
}
-
+
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
var ex = (Exception)e.ExceptionObject;
diff --git a/Torch.Server/Managers/InstanceManager.cs b/Torch.Server/Managers/InstanceManager.cs
index 853f28b..c8d52b8 100644
--- a/Torch.Server/Managers/InstanceManager.cs
+++ b/Torch.Server/Managers/InstanceManager.cs
@@ -34,7 +34,7 @@ namespace Torch.Server.Managers
}
///
- public override void Init()
+ public override void Attach()
{
MyFileSystem.ExePath = Path.Combine(_filesystemManager.TorchDirectory, "DedicatedServer64");
MyFileSystem.Init("Content", Torch.Config.InstancePath);
diff --git a/Torch/Commands/CommandManager.cs b/Torch/Commands/CommandManager.cs
index 2285879..20b2101 100644
--- a/Torch/Commands/CommandManager.cs
+++ b/Torch/Commands/CommandManager.cs
@@ -28,7 +28,7 @@ namespace Torch.Commands
Prefix = prefix;
}
- public override void Init()
+ public override void Attach()
{
RegisterCommandModule(typeof(TorchCommands));
_chatManager.MessageRecieved += HandleCommand;
diff --git a/Torch/Managers/ChatManager.cs b/Torch/Managers/ChatManager.cs
index ef6783f..2d9216a 100644
--- a/Torch/Managers/ChatManager.cs
+++ b/Torch/Managers/ChatManager.cs
@@ -35,7 +35,7 @@ namespace Torch.Managers
}
- public override void Init()
+ public override void Attach()
{
try
{
diff --git a/Torch/Managers/DependencyManager.cs b/Torch/Managers/DependencyManager.cs
index 4896df1..a334ece 100644
--- a/Torch/Managers/DependencyManager.cs
+++ b/Torch/Managers/DependencyManager.cs
@@ -241,26 +241,26 @@ namespace Torch.Managers
///
/// Initializes the dependency manager, and all its registered managers.
///
- public void Init()
+ public void Attach()
{
if (_initialized)
throw new InvalidOperationException("Can't start the dependency manager more than once");
_initialized = true;
Sort();
foreach (ManagerInstance manager in _orderedManagers)
- manager.Instance.Init();
+ manager.Instance.Attach();
}
///
/// Disposes the dependency manager, and all its registered managers.
///
- public void Dispose()
+ public void Detach()
{
if (!_initialized)
throw new InvalidOperationException("Can't dispose an uninitialized dependency manager");
for (int i = _orderedManagers.Count - 1; i >= 0; i--)
{
- _orderedManagers[i].Instance.Dispose();
+ _orderedManagers[i].Instance.Detach();
foreach (DependencyInfo field in _orderedManagers[i].Dependencies)
field.Field.SetValue(_orderedManagers[i].Instance, null);
}
@@ -268,7 +268,7 @@ namespace Torch.Managers
}
///
- public IEnumerable LoadOrder
+ public IEnumerable AttachOrder
{
get
{
@@ -280,7 +280,7 @@ namespace Torch.Managers
}
///
- public IEnumerable UnloadOrder
+ public IEnumerable DetachOrder
{
get
{
diff --git a/Torch/Managers/Manager.cs b/Torch/Managers/Manager.cs
index 0357682..73c6ae3 100644
--- a/Torch/Managers/Manager.cs
+++ b/Torch/Managers/Manager.cs
@@ -63,12 +63,12 @@ namespace Torch.Managers
Torch = torchInstance;
}
- public virtual void Init()
+ public virtual void Attach()
{
}
- public virtual void Dispose()
+ public virtual void Detach()
{
}
diff --git a/Torch/Managers/MultiplayerManager.cs b/Torch/Managers/MultiplayerManager.cs
index 5cf0966..40349e3 100644
--- a/Torch/Managers/MultiplayerManager.cs
+++ b/Torch/Managers/MultiplayerManager.cs
@@ -65,7 +65,7 @@ namespace Torch.Managers
}
///
- public override void Init()
+ public override void Attach()
{
Torch.SessionLoaded += OnSessionLoaded;
_chatManager.MessageRecieved += Instance_MessageRecieved;
diff --git a/Torch/Managers/NetworkManager/NetworkManager.cs b/Torch/Managers/NetworkManager/NetworkManager.cs
index 8a4f947..a46fbd3 100644
--- a/Torch/Managers/NetworkManager/NetworkManager.cs
+++ b/Torch/Managers/NetworkManager/NetworkManager.cs
@@ -63,7 +63,7 @@ namespace Torch.Managers
///
/// Loads the network intercept system
///
- public override void Init()
+ public override void Attach()
{
Torch.SessionLoaded += OnSessionLoaded;
}
diff --git a/Torch/Managers/PluginManager.cs b/Torch/Managers/PluginManager.cs
index c03a28d..3f0108d 100644
--- a/Torch/Managers/PluginManager.cs
+++ b/Torch/Managers/PluginManager.cs
@@ -48,7 +48,7 @@ namespace Torch.Managers
///
/// Unloads all plugins.
///
- public override void Dispose()
+ public override void Detach()
{
foreach (var plugin in Plugins)
plugin.Dispose();
diff --git a/Torch/Managers/ScriptingManager.cs b/Torch/Managers/ScriptingManager.cs
index eccf904..11f73df 100644
--- a/Torch/Managers/ScriptingManager.cs
+++ b/Torch/Managers/ScriptingManager.cs
@@ -16,7 +16,7 @@ namespace Torch.Managers
{
private MyScriptWhitelist _whitelist;
- public void Init()
+ public void Attach()
{
_whitelist = MyScriptCompiler.Static.Whitelist;
MyScriptCompiler.Static.AddConditionalCompilationSymbols("TORCH");
@@ -41,7 +41,7 @@ namespace Torch.Managers
Log.Info(whitelist);*/
}
- public void Dispose()
+ public void Detach()
{
// TODO unregister whitelist patches
}
diff --git a/Torch/Managers/UpdateManager.cs b/Torch/Managers/UpdateManager.cs
index ca5ab88..c75a88a 100644
--- a/Torch/Managers/UpdateManager.cs
+++ b/Torch/Managers/UpdateManager.cs
@@ -19,7 +19,7 @@ namespace Torch.Managers
///
/// Handles updating of the DS and Torch plugins.
///
- public class UpdateManager : Manager, IDisposable
+ public class UpdateManager : Manager
{
private Timer _updatePollTimer;
private GitHubClient _gitClient = new GitHubClient(new ProductHeaderValue("Torch"));
@@ -34,7 +34,7 @@ namespace Torch.Managers
}
///
- public override void Init()
+ public override void Attach()
{
CheckAndUpdateTorch();
}
@@ -146,7 +146,7 @@ namespace Torch.Managers
}
///
- public override void Dispose()
+ public override void Detach()
{
_updatePollTimer?.Dispose();
}
diff --git a/Torch/TorchBase.cs b/Torch/TorchBase.cs
index a8bebec..519d7d1 100644
--- a/Torch/TorchBase.cs
+++ b/Torch/TorchBase.cs
@@ -250,7 +250,7 @@ namespace Torch
MySession.OnUnloading += OnSessionUnloading;
MySession.OnUnloaded += OnSessionUnloaded;
RegisterVRagePlugin();
- Managers.Init();
+ Managers.Attach();
_init = true;
}
@@ -318,7 +318,7 @@ namespace Torch
///
public virtual void Dispose()
{
- Managers.Dispose();
+ Managers.Detach();
}
///