From 40eab15d692236532fd72cb0a0fa21836f975af9 Mon Sep 17 00:00:00 2001 From: Westin Miller Date: Fri, 18 Aug 2017 16:19:59 -0700 Subject: [PATCH] More explanatory naming for Manager Init (Attach) and Dispose (Detach). Torch.Client uses the registry to discover Steam's installation directory. --- Torch.API/Managers/IDependencyManager.cs | 16 ++++++++-------- Torch.API/Managers/IManager.cs | 8 ++++---- Torch.Client/Program.cs | 18 +++++++++--------- Torch.Server/Managers/InstanceManager.cs | 2 +- Torch/Commands/CommandManager.cs | 2 +- Torch/Managers/ChatManager.cs | 2 +- Torch/Managers/DependencyManager.cs | 12 ++++++------ Torch/Managers/Manager.cs | 4 ++-- Torch/Managers/MultiplayerManager.cs | 2 +- .../Managers/NetworkManager/NetworkManager.cs | 2 +- Torch/Managers/PluginManager.cs | 2 +- Torch/Managers/ScriptingManager.cs | 4 ++-- Torch/Managers/UpdateManager.cs | 6 +++--- Torch/TorchBase.cs | 4 ++-- 14 files changed, 42 insertions(+), 42 deletions(-) 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(); } ///