Update moonsharp and move extension methods to register Lua file
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
local Register = LuaSetup.LuaUserData.RegisterType
|
||||
local RegisterExtension = LuaSetup.LuaUserData.RegisterExtensionType
|
||||
local RegisterBarotrauma = LuaSetup.LuaUserData.RegisterTypeBarotrauma
|
||||
|
||||
Register("System.TimeSpan")
|
||||
@@ -471,3 +472,6 @@ LuaUserData.RemoveMember(workshopItem, "RemoveFavorite")
|
||||
LuaUserData.RemoveMember(workshopItem, "Vote")
|
||||
LuaUserData.RemoveMember(workshopItem, "GetUserVote")
|
||||
LuaUserData.RemoveMember(workshopItem, "Edit")
|
||||
|
||||
RegisterExtension("Barotrauma.MathUtils")
|
||||
RegisterExtension("Barotrauma.XMLExtensions")
|
||||
@@ -8,6 +8,7 @@ LuaSetup.LuaUserData = luaUserData
|
||||
luaUserData.IsRegistered = clrLuaUserData.IsRegistered
|
||||
luaUserData.UnregisterType = clrLuaUserData.UnregisterType
|
||||
luaUserData.RegisterGenericType = clrLuaUserData.RegisterGenericType
|
||||
luaUserData.RegisterExtensionType = clrLuaUserData.RegisterExtensionType
|
||||
luaUserData.UnregisterGenericType = clrLuaUserData.UnregisterGenericType
|
||||
luaUserData.IsTargetType = clrLuaUserData.IsTargetType
|
||||
luaUserData.TypeOf = clrLuaUserData.TypeOf
|
||||
|
||||
@@ -44,6 +44,21 @@ LuaUserData.RegisterType = function (typeName)
|
||||
return result
|
||||
end
|
||||
|
||||
local originalRegisterGenericType = LuaUserData.RegisterType
|
||||
LuaUserData.RegisterGenericType = function (typeName, ...)
|
||||
if not (CanBeReRegistered(typeName) and LuaUserData.IsRegistered(typeName)) and not IsAllowed(typeName) then
|
||||
error("Couldn't register generic type " .. typeName .. ".", 2)
|
||||
end
|
||||
|
||||
local success, result = pcall(originalRegisterGenericType, typeName, ...)
|
||||
|
||||
if not success then
|
||||
error(result, 2)
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
local originalCreateStatic = LuaUserData.CreateStatic
|
||||
LuaUserData.CreateStatic = function (typeName, addCallMethod)
|
||||
if not (CanBeReRegistered(typeName) and LuaUserData.IsRegistered(typeName)) and not IsAllowed(typeName) then
|
||||
|
||||
@@ -23,6 +23,18 @@ namespace Barotrauma
|
||||
return UserData.RegisterType(type);
|
||||
}
|
||||
|
||||
public static void RegisterExtensionType(string typeName)
|
||||
{
|
||||
Type type = GetType(typeName);
|
||||
|
||||
if (type == null)
|
||||
{
|
||||
throw new ScriptRuntimeException($"tried to register a type that doesn't exist: {typeName}.");
|
||||
}
|
||||
|
||||
UserData.RegisterExtensionType(type);
|
||||
}
|
||||
|
||||
public static bool IsRegistered(string typeName)
|
||||
{
|
||||
Type type = GetType(typeName);
|
||||
|
||||
@@ -420,9 +420,6 @@ namespace Barotrauma
|
||||
UserData.RegisterType<LuaCsPerformanceCounter>();
|
||||
UserData.RegisterType<IUserDataDescriptor>();
|
||||
|
||||
UserData.RegisterExtensionType(typeof(MathUtils));
|
||||
UserData.RegisterExtensionType(typeof(XMLExtensions));
|
||||
|
||||
Lua.Globals["printerror"] = (DynValue o) => { LuaCsLogger.LogError(o.ToString(), LuaCsMessageOrigin.LuaMod); };
|
||||
|
||||
Lua.Globals["setmodulepaths"] = (Action<string[]>)SetModulePaths;
|
||||
|
||||
Submodule Libraries/moonsharp updated: 77c43a5993...f67e9ee5a3
Reference in New Issue
Block a user