using System; using System.Linq; using BizHawk.Client.Common; using BizHawk.Common; namespace BizHawk.Client.EmuHawk { public sealed class ToolApi : ITool { public Type GetTool(string name) { var toolType = ReflectionUtil.GetTypeByName(name).FirstOrDefault(x => typeof(IToolForm).IsAssignableFrom(x) && !x.IsInterface); if (toolType != null) GlobalWin.Tools.Load(toolType); return GlobalWin.Tools.AvailableTools.FirstOrDefault(tool => tool.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)); } public object CreateInstance(string name) { var found = ReflectionUtil.GetTypeByName(name).FirstOrDefault(); return found != null ? Activator.CreateInstance(found) : null; } public void OpenCheats() => GlobalWin.Tools.Load(); public void OpenHexEditor() => GlobalWin.Tools.Load(); public void OpenRamWatch() => GlobalWin.Tools.LoadRamWatch(loadDialog: true); public void OpenRamSearch() => GlobalWin.Tools.Load(); public void OpenTasStudio() => GlobalWin.Tools.Load(); public void OpenToolBox() => GlobalWin.Tools.Load(); public void OpenTraceLogger() => GlobalWin.Tools.Load(); } }