GlobalWin.MainForm begone
This commit is contained in:
parent
590a2fc245
commit
bb2e82c94a
|
@ -21,7 +21,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private static ApiContainer? _luaContainer;
|
||||
|
||||
private static ApiContainer Register(IEmulatorServiceProvider serviceProvider, Action<string> logCallback)
|
||||
private static ApiContainer Register(
|
||||
MainForm mainForm,
|
||||
IEmulatorServiceProvider serviceProvider,
|
||||
Action<string> logCallback)
|
||||
{
|
||||
var libDict = new Dictionary<Type, IExternalApi>();
|
||||
foreach (var api in Assembly.GetAssembly(typeof(ApiSubsetContainer)).GetTypes()
|
||||
|
@ -30,7 +33,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
&& typeof(IExternalApi).IsAssignableFrom(t)
|
||||
&& ServiceInjector.IsAvailable(serviceProvider, t)))
|
||||
{
|
||||
var instance = api.GetConstructor(CtorParamTypesA)?.Invoke(new object[] { logCallback, GlobalWin.DisplayManager, GlobalWin.InputManager, GlobalWin.MainForm })
|
||||
var instance = api.GetConstructor(CtorParamTypesA)?.Invoke(new object[] { logCallback, GlobalWin.DisplayManager, GlobalWin.InputManager, mainForm })
|
||||
?? api.GetConstructor(CtorParamTypesB)?.Invoke(new object[] { logCallback })
|
||||
?? Activator.CreateInstance(api);
|
||||
ServiceInjector.UpdateServices(serviceProvider, instance);
|
||||
|
@ -42,10 +45,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
return new ApiContainer(libDict);
|
||||
}
|
||||
|
||||
public static IExternalApiProvider Restart(IEmulatorServiceProvider newServiceProvider)
|
||||
=> new BasicApiProvider(_container = Register(newServiceProvider, Console.WriteLine));
|
||||
public static IExternalApiProvider Restart(MainForm mainForm, IEmulatorServiceProvider newServiceProvider)
|
||||
=> new BasicApiProvider(_container = Register(mainForm, newServiceProvider, Console.WriteLine));
|
||||
|
||||
public static ApiContainer RestartLua(IEmulatorServiceProvider newServiceProvider, Action<string> logCallback)
|
||||
=> _luaContainer = Register(newServiceProvider, logCallback);
|
||||
public static ApiContainer RestartLua(MainForm mainForm, IEmulatorServiceProvider newServiceProvider, Action<string> logCallback)
|
||||
=> _luaContainer = Register(mainForm, newServiceProvider, logCallback);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public static class GlobalWin
|
||||
{
|
||||
public static MainForm MainForm;
|
||||
public static ToolManager Tools;
|
||||
|
||||
public static IEmulator Emulator { get; set; }
|
||||
|
|
|
@ -276,7 +276,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public MainForm(string[] args)
|
||||
{
|
||||
GlobalWin.MainForm = this;
|
||||
GlobalWin.ClientApi = new EmuClientApi(Config, DisplayManager, Emulator, Game, InputManager, this);
|
||||
|
||||
//do this threaded stuff early so it has plenty of time to run in background
|
||||
|
|
|
@ -206,7 +206,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
var currentScripts = LuaImp?.ScriptList; // Temp fix for now
|
||||
LuaImp = OSTailoredCode.IsUnixHost ? (LuaLibraries) new UnixLuaLibraries() : new Win32LuaLibraries(Emulator.ServiceProvider, MainForm);
|
||||
LuaImp = OSTailoredCode.IsUnixHost ? (LuaLibraries) new UnixLuaLibraries() : new Win32LuaLibraries(MainForm, Emulator.ServiceProvider);
|
||||
LuaImp.ScriptList.AddRange(currentScripts ?? Enumerable.Empty<LuaFile>());
|
||||
|
||||
InputBox.AutoCompleteCustomSource.AddRange(LuaImp.Docs.Select(a => $"{a.Library}.{a.Name}").ToArray());
|
||||
|
|
|
@ -14,18 +14,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public class Win32LuaLibraries : LuaLibraries
|
||||
{
|
||||
private readonly MainForm _mainForm;
|
||||
public Win32LuaLibraries()
|
||||
{
|
||||
// if (NLua.Lua.WhichLua == "NLua")
|
||||
_lua["keepalives"] = _lua.NewTable();
|
||||
}
|
||||
|
||||
public Win32LuaLibraries(IEmulatorServiceProvider serviceProvider, MainForm mainForm)
|
||||
public Win32LuaLibraries(MainForm mainForm, IEmulatorServiceProvider serviceProvider)
|
||||
: this()
|
||||
{
|
||||
_mainForm = mainForm;
|
||||
|
||||
LuaWait = new AutoResetEvent(false);
|
||||
Docs.Clear();
|
||||
|
||||
|
@ -52,10 +49,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
// and inject them here
|
||||
if (instance is ClientLuaLibrary clientLib)
|
||||
{
|
||||
clientLib.MainForm = _mainForm;
|
||||
clientLib.MainForm = mainForm;
|
||||
}
|
||||
|
||||
ApiContainerInstance = ApiManager.RestartLua(serviceProvider, ConsoleLuaLibrary.LogOutput);
|
||||
ApiContainerInstance = ApiManager.RestartLua(mainForm, serviceProvider, ConsoleLuaLibrary.LogOutput);
|
||||
if (instance is DelegatingLuaLibraryEmu dlgInstanceEmu) dlgInstanceEmu.APIs = ApiContainerInstance; // this is necessary as the property has the `new` modifier
|
||||
else if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = ApiContainerInstance;
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
_emulator = emulator;
|
||||
_movieSession = movieSession;
|
||||
_game = game;
|
||||
_apiProvider = ApiManager.Restart(_emulator.ServiceProvider);
|
||||
_apiProvider = ApiManager.Restart(_owner, _emulator.ServiceProvider);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -487,7 +487,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
_emulator = emulator;
|
||||
_game = game;
|
||||
_apiProvider = ApiManager.Restart(_emulator.ServiceProvider);
|
||||
_apiProvider = ApiManager.Restart(_owner, _emulator.ServiceProvider);
|
||||
// If Cheat tool is loaded, restarting will restart the list too anyway
|
||||
if (!Has<Cheats>())
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue