Pass global ToolManager to Console and TAStudio Lua libs on init

This commit is contained in:
YoshiRulz 2020-11-26 22:41:46 +10:00
parent 256f4d5b06
commit 794c4b5b84
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
3 changed files with 15 additions and 6 deletions

View File

@ -9,6 +9,8 @@ namespace BizHawk.Client.EmuHawk
{ {
public sealed class ConsoleLuaLibrary : LuaLibraryBase public sealed class ConsoleLuaLibrary : LuaLibraryBase
{ {
public ToolManager Tools { get; set; }
public ConsoleLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback) public ConsoleLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
: base(luaLibsImpl, lua, logOutputCallback) {} : base(luaLibsImpl, lua, logOutputCallback) {}
@ -18,9 +20,9 @@ namespace BizHawk.Client.EmuHawk
[LuaMethod("clear", "clears the output box of the Lua Console window")] [LuaMethod("clear", "clears the output box of the Lua Console window")]
public void Clear() public void Clear()
{ {
if (GlobalWin.Tools.Has<LuaConsole>()) if (Tools.Has<LuaConsole>())
{ {
GlobalWin.Tools.LuaConsole.ClearOutputWindow(); Tools.LuaConsole.ClearOutputWindow();
} }
} }
@ -83,7 +85,7 @@ namespace BizHawk.Client.EmuHawk
); );
} }
if (!GlobalWin.Tools.Has<LuaConsole>()) if (!Tools.Has<LuaConsole>())
{ {
return; return;
} }
@ -114,7 +116,7 @@ namespace BizHawk.Client.EmuHawk
sb.Append(terminator); sb.Append(terminator);
} }
GlobalWin.Tools.LuaConsole.WriteToOutputWindow(sb.ToString()); Tools.LuaConsole.WriteToOutputWindow(sb.ToString());
} }
} }
} }

View File

@ -16,12 +16,14 @@ namespace BizHawk.Client.EmuHawk
[LuaLibrary(released: true)] [LuaLibrary(released: true)]
public sealed class TAStudioLuaLibrary : LuaLibraryBase public sealed class TAStudioLuaLibrary : LuaLibraryBase
{ {
public ToolManager Tools { get; set; }
public TAStudioLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback) public TAStudioLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
: base(luaLibsImpl, lua, logOutputCallback) {} : base(luaLibsImpl, lua, logOutputCallback) {}
public override string Name => "tastudio"; public override string Name => "tastudio";
private TAStudio Tastudio => GlobalWin.Tools.Get<TAStudio>() as TAStudio; private TAStudio Tastudio => Tools.Get<TAStudio>() as TAStudio;
private struct PendingChanges private struct PendingChanges
{ {
@ -61,7 +63,7 @@ namespace BizHawk.Client.EmuHawk
[LuaMethod("engaged", "returns whether or not tastudio is currently engaged (active)")] [LuaMethod("engaged", "returns whether or not tastudio is currently engaged (active)")]
public bool Engaged() public bool Engaged()
{ {
return GlobalWin.Tools.Has<TAStudio>(); // TODO: eventually tastudio should have an engaged flag return Tools.Has<TAStudio>(); // TODO: eventually tastudio should have an engaged flag
} }
[LuaMethodExample("if ( tastudio.getrecording( ) ) then\r\n\tconsole.log( \"returns whether or not TAStudio is in recording mode\" );\r\nend;")] [LuaMethodExample("if ( tastudio.getrecording( ) ) then\r\n\tconsole.log( \"returns whether or not TAStudio is in recording mode\" );\r\nend;")]

View File

@ -75,6 +75,7 @@ namespace BizHawk.Client.EmuHawk
} }
else if (instance is ConsoleLuaLibrary consoleLib) else if (instance is ConsoleLuaLibrary consoleLib)
{ {
consoleLib.Tools = GlobalWin.Tools;
_logToLuaConsoleCallback = consoleLib.Log; _logToLuaConsoleCallback = consoleLib.Log;
} }
else if (instance is GuiLuaLibrary guiLib) else if (instance is GuiLuaLibrary guiLib)
@ -86,6 +87,10 @@ namespace BizHawk.Client.EmuHawk
return _lua.TableFromObject(canvas); return _lua.TableFromObject(canvas);
}; };
} }
else if (instance is TAStudioLuaLibrary tastudioLib)
{
tastudioLib.Tools = GlobalWin.Tools;
}
if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = apiContainer; if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = apiContainer;