From 5fe506b73a6e9b1d32fd18cae67c739dc70388e6 Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Sun, 27 Mar 2022 16:07:34 -0300 Subject: [PATCH] Automatically convert Lua types in HookMethod --- .../SharedSource/Lua/LuaClasses/LuaHook.cs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaHook.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaHook.cs index 82f7d4ffa..f646c0414 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaHook.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses/LuaHook.cs @@ -101,7 +101,16 @@ namespace Barotrauma if (!result.IsNull()) { - __result = result.Object(); + + if (__originalMethod is MethodInfo mi) + { + __result = result.DynValue().ToObject(mi.ReturnType); + } + else + { + __result = result.Object(); + } + return false; } @@ -118,7 +127,16 @@ namespace Barotrauma _hookLuaPatch(__originalMethod, __args, __instance, out LuaResult result, HookMethodType.After); if (!result.IsNull()) - __result = result.Object(); + { + if (__originalMethod is MethodInfo mi) + { + __result = result.DynValue().ToObject(mi.ReturnType); + } + else + { + __result = result.Object(); + } + } } private const BindingFlags DefaultBindingFlags = BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;