Return the tool from IToolApi.GetTool instead of its type

also affects Lua client.gettool; this has been broken for quite a while
This commit is contained in:
YoshiRulz 2020-12-22 18:44:23 +10:00
parent 5a098055d7
commit a5fd5f5d78
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 14 additions and 5 deletions

View File

@ -6,14 +6,23 @@ namespace BizHawk.Client.Common
public interface IToolApi : IExternalApi
{
IEnumerable<Type> AvailableTools { get; }
Type GetTool(string name);
object CreateInstance(string name);
IToolForm GetTool(string name);
void OpenCheats();
void OpenHexEditor();
void OpenRamWatch();
void OpenRamSearch();
void OpenRamWatch();
void OpenTasStudio();
void OpenToolBox();
void OpenTraceLogger();
}
}

View File

@ -15,11 +15,11 @@ namespace BizHawk.Client.EmuHawk
public ToolApi(ToolManager toolManager) => _toolManager = toolManager;
public Type GetTool(string name)
public IToolForm GetTool(string name)
{
var toolType = Util.GetTypeByName(name).FirstOrDefault(x => typeof(IToolForm).IsAssignableFrom(x) && !x.IsInterface);
if (toolType != null) _toolManager.Load(toolType);
return _toolManager.AvailableTools.FirstOrDefault(tool => tool.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase));
if (toolType == null) return null;
return _toolManager.Load(toolType);
}
public object CreateInstance(string name)