Extract interface from NamedLuaFunction

This commit is contained in:
YoshiRulz 2020-12-05 05:26:41 +10:00
parent 8f10ce66a6
commit e4a0175351
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
5 changed files with 25 additions and 8 deletions

View File

@ -0,0 +1,17 @@
using System;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.Common
{
public interface INamedLuaFunction
{
Action Callback { get; }
Guid Guid { get; }
MemoryCallbackDelegate MemCallback { get; }
string Name { get; }
}
}

View File

@ -44,14 +44,14 @@ namespace BizHawk.Client.Common
public abstract void CallSaveStateEvent(string name);
public abstract void Close();
public abstract NamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action<string> logCallback, LuaFile luaFile, string name = null);
public abstract INamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action<string> logCallback, LuaFile luaFile, string name = null);
public abstract void EndLuaDrawing();
public abstract void ExecuteString(string command);
public abstract NLuaTableHelper GetTableHelper();
public abstract bool RemoveNamedFunctionMatching(Func<NamedLuaFunction, bool> predicate);
public abstract bool RemoveNamedFunctionMatching(Func<INamedLuaFunction, bool> predicate);
public abstract void Restart(IEmulatorServiceProvider newServiceProvider);
public abstract (bool WaitForFrame, bool Terminated) ResumeScript(LuaFile lf);

View File

@ -5,7 +5,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Client.Common
{
public class NamedLuaFunction
public sealed class NamedLuaFunction : INamedLuaFunction
{
private readonly LuaFunction _function;

View File

@ -33,7 +33,7 @@ namespace BizHawk.Client.EmuHawk
{
}
public override NamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action<string> logCallback, LuaFile luaFile, string name = null) => null;
public override INamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action<string> logCallback, LuaFile luaFile, string name = null) => null;
public override void EndLuaDrawing()
{
@ -48,7 +48,7 @@ namespace BizHawk.Client.EmuHawk
public override LuaFunctionList RegisteredFunctions => EmptyLuaFunList;
public override GuiLuaLibrary GuiLibrary => null;
public override bool RemoveNamedFunctionMatching(Func<NamedLuaFunction, bool> predicate) => false;
public override bool RemoveNamedFunctionMatching(Func<INamedLuaFunction, bool> predicate) => false;
public override void Restart(IEmulatorServiceProvider newServiceProvider)
{

View File

@ -232,16 +232,16 @@ namespace BizHawk.Client.EmuHawk
GuiLibrary.Dispose();
}
public override NamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action<string> logCallback, LuaFile luaFile, string name = null)
public override INamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action<string> logCallback, LuaFile luaFile, string name = null)
{
var nlf = new NamedLuaFunction(function, theEvent, logCallback, luaFile, name);
RegisteredFunctions.Add(nlf);
return nlf;
}
public override bool RemoveNamedFunctionMatching(Func<NamedLuaFunction, bool> predicate)
public override bool RemoveNamedFunctionMatching(Func<INamedLuaFunction, bool> predicate)
{
var nlf = RegisteredFunctions.FirstOrDefault(predicate);
var nlf = (NamedLuaFunction) RegisteredFunctions.FirstOrDefault(predicate);
if (nlf == null) return false;
RegisteredFunctions.Remove(nlf, _mainForm.Emulator);
return true;