Merge DelegatingLuaLibrary into LuaLibraryBase
This commit is contained in:
parent
ce2bd6bb9d
commit
76f03a9508
|
@ -16,7 +16,7 @@ using NLua;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("A library for manipulating the EmuHawk client UI")]
|
||||
public sealed class ClientLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class ClientLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
[RequiredService]
|
||||
private IEmulator Emulator { get; set; }
|
||||
|
@ -26,8 +26,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public IMainFormForApi MainForm { get; set; }
|
||||
|
||||
public ClientLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public ClientLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "client";
|
||||
|
||||
|
|
|
@ -9,12 +9,12 @@ using NLua;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("A library for communicating with other programs")]
|
||||
public sealed class CommLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class CommLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
private readonly IDictionary<Guid, ClientWebSocketWrapper> _websockets = new Dictionary<Guid, ClientWebSocketWrapper>();
|
||||
|
||||
public CommLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public CommLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "comm";
|
||||
|
||||
|
|
|
@ -8,13 +8,13 @@ using NLua;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("A library for interacting with the currently loaded emulator core")]
|
||||
public sealed class EmulationLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class EmulationLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public Action FrameAdvanceCallback { get; set; }
|
||||
public Action YieldCallback { get; set; }
|
||||
|
||||
public EmulationLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public EmulationLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "emu";
|
||||
|
||||
|
|
|
@ -5,10 +5,10 @@ using NLua;
|
|||
// ReSharper disable UnusedAutoPropertyAccessor.Local
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public sealed class GameInfoLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class GameInfoLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public GameInfoLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public GameInfoLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "gameinfo";
|
||||
|
||||
|
|
|
@ -5,12 +5,12 @@ using NLua;
|
|||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public sealed class GuiLuaLibrary : DelegatingLuaLibrary, IDisposable
|
||||
public sealed class GuiLuaLibrary : LuaLibraryBase, IDisposable
|
||||
{
|
||||
public Func<int, int, int?, int?, LuaTable> CreateLuaCanvasCallback { get; set; }
|
||||
|
||||
public GuiLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public GuiLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "gui";
|
||||
|
||||
|
|
|
@ -4,10 +4,10 @@ using NLua;
|
|||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public sealed class InputLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class InputLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public InputLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public InputLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "input";
|
||||
|
||||
|
|
|
@ -6,10 +6,10 @@ using NLua;
|
|||
// ReSharper disable UnusedMember.Global
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public sealed class JoypadLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class JoypadLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public JoypadLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public JoypadLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "joypad";
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ using NLua;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("These functions behavior identically to the mainmemory functions but the user can set the memory domain to read and write from. The default domain is the system bus. Use getcurrentmemorydomain(), and usememorydomain() to control which domain is used. Each core has its own set of valid memory domains. Use getmemorydomainlist() to get a list of memory domains for the current core loaded.")]
|
||||
public sealed class MemoryLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class MemoryLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public MemoryLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public MemoryLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "memory";
|
||||
|
||||
|
|
|
@ -5,10 +5,10 @@ using NLua;
|
|||
// ReSharper disable UnusedAutoPropertyAccessor.Local
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public sealed class MemorySavestateLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class MemorySavestateLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public MemorySavestateLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public MemorySavestateLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "memorysavestate";
|
||||
|
||||
|
|
|
@ -5,10 +5,10 @@ using NLua;
|
|||
// ReSharper disable UnusedMember.Global
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public sealed class MovieLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class MovieLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public MovieLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public MovieLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "movie";
|
||||
|
||||
|
|
|
@ -8,10 +8,10 @@ using NLua;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("A library for performing SQLite operations.")]
|
||||
public sealed class SQLiteLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class SQLiteLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public SQLiteLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public SQLiteLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "SQL";
|
||||
|
||||
|
|
|
@ -4,10 +4,10 @@ using NLua;
|
|||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public sealed class SaveStateLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class SaveStateLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public SaveStateLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public SaveStateLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "savestate";
|
||||
|
||||
|
|
|
@ -6,10 +6,10 @@ using NLua;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("A library for setting and retrieving dynamic data that will be saved and loaded with savestates")]
|
||||
public sealed class UserDataLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class UserDataLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public UserDataLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public UserDataLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "userdata";
|
||||
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
using System;
|
||||
|
||||
using NLua;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
/// <summary>Extends <see cref="LuaLibraryBase"/> by including an <see cref="ApiContainer"/> for the library to delegate its calls through.</summary>
|
||||
public abstract class DelegatingLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
protected DelegatingLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
|
||||
public ApiContainer APIs { protected get; set; }
|
||||
}
|
||||
}
|
|
@ -9,8 +9,8 @@ namespace BizHawk.Client.Common
|
|||
[Description("A library for performing standard bitwise operations.")]
|
||||
public sealed class BitLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public BitLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public BitLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "bit";
|
||||
|
||||
|
|
|
@ -24,8 +24,8 @@ namespace BizHawk.Client.Common
|
|||
[OptionalService]
|
||||
private IMemoryDomains Domains { get; set; }
|
||||
|
||||
public EventsLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public EventsLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "event";
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@ using BizHawk.Emulation.Cores.Consoles.Sega.gpgx;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("Functions specific to GenesisHawk (functions may not run when an Genesis game is not loaded)")]
|
||||
public sealed class GenesisLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class GenesisLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public GenesisLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public GenesisLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "genesis";
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ using NLua;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("Main memory library reads and writes from the Main memory domain (the default memory domain set by any given core)")]
|
||||
public sealed class MainMemoryLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class MainMemoryLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
[RequiredService]
|
||||
private IEmulator Emulator { get; set; }
|
||||
|
@ -17,8 +17,8 @@ namespace BizHawk.Client.Common
|
|||
[OptionalService]
|
||||
private IMemoryDomains MemoryDomainCore { get; set; }
|
||||
|
||||
public MainMemoryLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public MainMemoryLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "mainmemory";
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("Functions related specifically to Nes Cores")]
|
||||
public sealed class NESLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class NESLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
// TODO:
|
||||
// perhaps with the new core config system, one could
|
||||
|
@ -21,8 +21,8 @@ namespace BizHawk.Client.Common
|
|||
[OptionalService]
|
||||
private IMemoryDomains MemoryDomains { get; set; }
|
||||
|
||||
public NESLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public NESLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "nes";
|
||||
|
||||
|
|
|
@ -8,10 +8,10 @@ using BizHawk.Emulation.Cores.Nintendo.SNES;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("Functions specific to SNESHawk (functions may not run when an SNES game is not loaded)")]
|
||||
public sealed class SNESLuaLibrary : DelegatingLuaLibrary
|
||||
public sealed class SNESLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public SNESLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public SNESLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "snes";
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
public override string Name => "bizstring";
|
||||
|
||||
public StringLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public StringLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
[LuaMethodExample("local stbizhex = bizstring.hex( -12345 );")]
|
||||
[LuaMethod("hex", "Converts the number to a string representation of the hexadecimal value of the given number")]
|
||||
|
|
|
@ -8,11 +8,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
public abstract class LuaLibraryBase
|
||||
{
|
||||
protected LuaLibraryBase(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
protected LuaLibraryBase(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
{
|
||||
LogOutputCallback = logOutputCallback;
|
||||
Lua = lua;
|
||||
_luaLibsImpl = luaLibsImpl;
|
||||
APIs = apiContainer;
|
||||
}
|
||||
|
||||
protected static LuaFile CurrentFile { get; private set; }
|
||||
|
@ -22,6 +23,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public abstract string Name { get; }
|
||||
|
||||
protected readonly ApiContainer APIs;
|
||||
|
||||
protected readonly Action<string> LogOutputCallback;
|
||||
|
||||
public Lua Lua { get; }
|
||||
|
|
|
@ -11,8 +11,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public ToolManager Tools { get; set; }
|
||||
|
||||
public ConsoleLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public ConsoleLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "console";
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
[Description("A library for creating and managing custom dialogs")]
|
||||
public sealed class FormsLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public FormsLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public FormsLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "forms";
|
||||
|
||||
|
|
|
@ -18,8 +18,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public ToolManager Tools { get; set; }
|
||||
|
||||
public TAStudioLuaLibrary(LuaLibraries luaLibsImpl, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, lua, logOutputCallback) {}
|
||||
public TAStudioLuaLibrary(LuaLibraries luaLibsImpl, ApiContainer apiContainer, Lua lua, Action<string> logOutputCallback)
|
||||
: base(luaLibsImpl, apiContainer, lua, logOutputCallback) {}
|
||||
|
||||
public override string Name => "tastudio";
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
if (addLibrary)
|
||||
{
|
||||
var instance = (LuaLibraryBase) Activator.CreateInstance(lib, this, _lua, (Action<string>) LogToLuaConsole);
|
||||
var instance = (LuaLibraryBase) Activator.CreateInstance(lib, this, apiContainer, _lua, (Action<string>) LogToLuaConsole);
|
||||
ServiceInjector.UpdateServices(serviceProvider, instance);
|
||||
|
||||
// TODO: make EmuHawk libraries have a base class with common properties such as this
|
||||
|
@ -92,8 +92,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
tastudioLib.Tools = _mainForm.Tools;
|
||||
}
|
||||
|
||||
if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = apiContainer;
|
||||
|
||||
EnumerateLuaFunctions(instance.Name, lib, instance);
|
||||
Libraries.Add(lib, instance);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue