Minor refactor for LuaUserData.lua

This commit is contained in:
Evil Factory
2022-06-14 13:09:52 -03:00
parent 438f10f484
commit efd1243754
11 changed files with 91 additions and 60 deletions
@@ -0,0 +1,56 @@
local clrLuaUserData = LuaUserData
local luaUserData = {}
luaUserData.Descriptors = {}
LuaSetup.LuaUserData = luaUserData
luaUserData.UnregisterType = clrLuaUserData.UnregisterType
luaUserData.RegisterGenericType = clrLuaUserData.RegisterGenericType
luaUserData.UnregisterGenericType = clrLuaUserData.UnregisterGenericType
luaUserData.UnregisterGIsTargetTypeenericType = clrLuaUserData.IsTargetType
luaUserData.GetType = clrLuaUserData.GetType
luaUserData.CreateEnumTable = clrLuaUserData.CreateEnumTable
luaUserData.MakeFieldAccessible = clrLuaUserData.MakeFieldAccessible
luaUserData.MakeMethodAccessible = clrLuaUserData.MakeMethodAccessible
luaUserData.AddMethod = clrLuaUserData.AddMethod
luaUserData.AddField = clrLuaUserData.AddField
luaUserData.RemoveMember = clrLuaUserData.RemoveMember
luaUserData.CreateUserDataFromDescriptor = clrLuaUserData.CreateUserDataFromDescriptor
luaUserData.CreateUserDataFromType = clrLuaUserData.CreateUserDataFromType
luaUserData.RegisterType = function(typeName)
local descriptor = clrLuaUserData.RegisterType(typeName)
luaUserData.Descriptors[typeName] = descriptor
return descriptor
end
luaUserData.RegisterTypeBarotrauma = function(typeName)
return luaUserData.RegisterType("Barotrauma." .. typeName)
end
luaUserData.AddCallMetaTable = function (userdata)
debug.setmetatable(userdata, {
__call = function(obj, ...)
local success, result = pcall(userdata.__new, ...)
if not success then
error(result, 2)
end
return result
end
})
end
luaUserData.CreateStatic = function(typeName, addCallMethod)
local staticUserdata = clrLuaUserData.CreateStatic(typeName)
if addCallMethod then
luaUserData.AddCallMetaTable(staticUserdata)
end
return staticUserdata
end