AddCallMetaTable for sub userdatas
This commit is contained in:
@@ -10,21 +10,25 @@ LuaSetup.RegisterBarotrauma = function(typeName)
|
||||
return LuaSetup.Register("Barotrauma." .. typeName)
|
||||
end
|
||||
|
||||
LuaSetup.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
|
||||
|
||||
LuaSetup.CreateStatic = function(typeName, addCallMethod)
|
||||
local staticUserdata = LuaUserData.CreateStatic(typeName)
|
||||
|
||||
if addCallMethod then
|
||||
debug.setmetatable(staticUserdata, {
|
||||
__call = function(obj, ...)
|
||||
local success, result = pcall(staticUserdata.__new, ...)
|
||||
|
||||
if not success then
|
||||
error(result, 2)
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
})
|
||||
LuaSetup.AddCallMetaTable(staticUserdata)
|
||||
end
|
||||
|
||||
return staticUserdata
|
||||
|
||||
Reference in New Issue
Block a user