Skip to content

Commit

Permalink
Relax export_object override restriction
Browse files Browse the repository at this point in the history
  • Loading branch information
S-S-X committed Jan 13, 2025
1 parent e6f6cfe commit 940d6a5
Showing 1 changed file with 14 additions and 15 deletions.
29 changes: 14 additions & 15 deletions init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -244,22 +244,21 @@ function mineunit:DEPRECATED(msg)
end

function mineunit.export_object(obj, def)
if _G[def.name] == nil or def.private then
if not obj.__index then
obj.__index = obj
end
setmetatable(obj, {
__call = function(...)
local ins = def.constructor(...)
ins._mineunit_typename = def.typename or def.name
return ins
end
})
if not def.private then
_G[def.name] = obj
if not def.private and _G[def.name] ~= nil then
mineunit:errorf("mineunit.export_object overriding already reserved global name: %s", (def.name or "?"))
end
if not obj.__index then
obj.__index = obj
end
setmetatable(obj, {
__call = function(...)
local ins = def.constructor(...)
ins._mineunit_typename = def.typename or def.name
return ins
end
else
error("Error: mineunit.export_object object name is already reserved:" .. (def.name or "?"))
})
if not def.private then
_G[def.name] = obj
end
end

Expand Down

0 comments on commit 940d6a5

Please sign in to comment.