27 lines
588 B
Plaintext
27 lines
588 B
Plaintext
NULL_ENTITY = entity(0)
|
|
|
|
function deepcopy(orig)
|
|
local orig_type = type(orig)
|
|
local copy
|
|
if orig_type == 'table' then
|
|
copy = {}
|
|
for orig_key, orig_value in next, orig, nil do
|
|
copy[deepcopy(orig_key)] = deepcopy(orig_value)
|
|
end
|
|
setmetatable(copy, deepcopy(getmetatable(orig)))
|
|
else -- number, string, boolean, etc
|
|
copy = orig
|
|
end
|
|
return copy
|
|
end
|
|
|
|
function table:merge(table1, table2)
|
|
local newTable = deepcopy(table1)
|
|
|
|
for k, v in pairs(table2) do
|
|
newTable[k] = v
|
|
end
|
|
|
|
return newTable
|
|
end
|