diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua b/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua index 4d7cc5e6a..32a7fe9e9 100644 --- a/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua +++ b/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua @@ -96,6 +96,7 @@ RegisterBarotrauma("StartItemSet") RegisterBarotrauma("RelatedItem") RegisterBarotrauma("UpgradeManager") RegisterBarotrauma("CargoManager") +RegisterBarotrauma("HireManager") RegisterBarotrauma("FabricationRecipe") RegisterBarotrauma("PreferredContainer") RegisterBarotrauma("SwappableItem") @@ -336,6 +337,7 @@ RegisterBarotrauma("Wallet") RegisterBarotrauma("Faction") RegisterBarotrauma("FactionPrefab") +RegisterBarotrauma("Reputation") RegisterBarotrauma("Location") RegisterBarotrauma("LocationConnection") diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaConverters.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaConverters.cs index 0771e2e6d..1785b15ff 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaConverters.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaConverters.cs @@ -4,6 +4,7 @@ using Microsoft.Xna.Framework; using FarseerPhysics.Dynamics; using LuaCsCompatPatchFunc = Barotrauma.LuaCsPatch; using Barotrauma.Networking; +using System.Collections.Immutable; namespace Barotrauma { @@ -199,6 +200,16 @@ namespace Barotrauma RegisterOption(DataType.Number); RegisterEither(); + + RegisterImmutableArray(); + } + + private void RegisterImmutableArray() + { + Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Table, typeof(ImmutableArray), v => + { + return v.ToObject().ToImmutableArray(); + }); } private void RegisterEither() @@ -315,13 +326,13 @@ namespace Barotrauma Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Func), v => { var function = v.Function; - return (Func)(() => function.Call().ToObject()); + return () => function.Call().ToObject(); }); Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.ClrFunction, typeof(Func), v => { var function = v.Function; - return (Func)(() => function.Call().ToObject()); + return () => function.Call().ToObject(); }); } @@ -330,13 +341,13 @@ namespace Barotrauma Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Func), v => { var function = v.Function; - return (Func)((T1 a) => function.Call(a).ToObject()); + return (T1 a) => function.Call(a).ToObject(); }); Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.ClrFunction, typeof(Func), v => { var function = v.Function; - return (Func)((T1 a) => function.Call(a).ToObject()); + return (T1 a) => function.Call(a).ToObject(); }); } @@ -345,13 +356,13 @@ namespace Barotrauma Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Func), v => { var function = v.Function; - return (Func)((T1 a, T2 b, T3 c, T4 d) => function.Call(a, b, c, d).ToObject()); + return (T1 a, T2 b, T3 c, T4 d) => function.Call(a, b, c, d).ToObject(); }); Script.GlobalOptions.CustomConverters.SetScriptToClrCustomConversion(DataType.Function, typeof(Func), v => { var function = v.Function; - return (Func)((T1 a, T2 b, T3 c, T4 d) => function.Call(a, b, c, d).ToObject()); + return (T1 a, T2 b, T3 c, T4 d) => function.Call(a, b, c, d).ToObject(); }); } }