1 local class = elidragon.class
6 local worldpath = minetest.get_worldpath()
8 function db:constructor(name, initial_data, dir)
9 paths[self] = dir or worldpath .. "/" .. name .. ".json"
10 self:load(initial_data or {})
13 function db:load(initial_data)
14 local file = io.open(paths[self], "r")
15 local data = file and minetest.parse_json(file:read()) or {}
19 for k, v in pairs(data) do
22 for k, v in pairs(initial_data) do
23 if not rawget(self, k) then
30 local file = assert(io.open(paths[self], "w"))
31 file:write(minetest.write_json(self))
40 minetest.register_on_shutdown(function()
41 for d in pairs(private) do
46 elidragon.db = class(db)