- Debugging LuaCsHook compat issues.

This commit is contained in:
MapleWheels
2026-02-02 19:50:41 -05:00
committed by Maplewheels
parent 244c0fbec3
commit 2eb593f461
3 changed files with 22 additions and 1 deletions

View File

@@ -1,4 +1,6 @@
using System;
using System.Reflection;
using LuaCsCompatPatchFunc = Barotrauma.LuaCsPatch;
namespace Barotrauma.LuaCs.Services.Compatibility;
@@ -21,4 +23,12 @@ public interface ILuaCsHook : ILuaCsShim
string Patch(string className, string methodName, LuaCsPatchFunc patch, EventService.HookMethodType hookType = EventService.HookMethodType.Before);
bool RemovePatch(string identifier, string className, string methodName, string[] parameterTypes, EventService.HookMethodType hookType);
bool RemovePatch(string identifier, string className, string methodName, EventService.HookMethodType hookType);
void HookMethod(string identifier, MethodBase method, LuaCsCompatPatchFunc patch, HookMethodType hookType = HookMethodType.Before, IAssemblyPlugin owner = null);
public enum HookMethodType
{
Before, After
}
}

View File

@@ -70,8 +70,12 @@ public class PluginManagementService : IAssemblyManagementService
private static readonly SyntaxTree BaseAssemblyImports = CSharpSyntaxTree.ParseText(
new StringBuilder()
.AppendLine("global using LuaCsHook = Barotrauma.LuaCs.Services.Compatibility.ILuaCsHook;")
.AppendLine("using System.Reflection;")
.AppendLine("using Barotrauma;")
.AppendLine("using Barotrauma.LuaCs;")
.AppendLine("using Barotrauma.LuaCs.Services;")
.AppendLine("using Barotrauma.LuaCs.Services.Compatibility;")
.AppendLine("using System.Runtime.CompilerServices;")
.AppendLine("[assembly: IgnoresAccessChecksTo(\"BarotraumaCore\")]")
#if CLIENT

View File

@@ -1,10 +1,12 @@
global using LuaCsHook = Barotrauma.LuaCs.Services.EventService;
//global using LuaCsHook = Barotrauma.LuaCs.Services.EventService;
global using LuaCsHook = Barotrauma.LuaCs.Services.Compatibility.ILuaCsHook;
using System;
using System.Linq;
using System.Reflection;
using HarmonyLib;
using System.Collections.Generic;
using Barotrauma.LuaCs.Services.Compatibility;
using MoonSharp.Interpreter;
using LuaCsCompatPatchFunc = Barotrauma.LuaCsPatch;
@@ -126,6 +128,11 @@ namespace Barotrauma.LuaCs.Services
private static MethodInfo _miHookLuaCsPatchRetPostfix = typeof(EventService).GetMethod("HookLuaCsPatchRetPostfix", BindingFlags.NonPublic | BindingFlags.Static);
// TODO: deprecate this
public void HookMethod(string identifier, MethodBase method, LuaCsCompatPatchFunc patch, ILuaCsHook.HookMethodType hookType = ILuaCsHook.HookMethodType.Before, IAssemblyPlugin owner = null)
{
throw new NotImplementedException();
}
public void HookMethod(string identifier, MethodBase method, LuaCsCompatPatchFunc patch, HookMethodType hookType = HookMethodType.Before, IAssemblyPlugin owner = null)
{
if (identifier == null || method == null || patch == null)