local worldpath = minetest.get_worldpath()
function db:constructor(name, initial_data, dir, env)
- private[self] = {env = env or _G, path = (dir or worldpath) .. "/" .. name .. ".json"}
+ local path = env and dir or worldpath .. "/" .. (dir or "")
+ if dir and not env then
+ minetest.mkdir(path)
+ end
+ private[self] = {env = env or _G, path = path .. "/" .. name .. ".json"}
self:load(initial_data or {})
end
end
function db:close()
- self:save()
+ if not private[self].dummy then
+ self:save()
+ end
private[self] = nil
end
+function db:set_dummy(v)
+ private[self].dummy = v
+end
+
minetest.register_on_shutdown(function()
for d in pairs(private) do
d:save()