65 lines
1.6 KiB
Lua
65 lines
1.6 KiB
Lua
-- Function to execute more files.
|
|
local modpath = minetest.get_modpath("kingdoms")
|
|
local function domodfile(f)
|
|
dofile(modpath .. '/' .. f)
|
|
end
|
|
|
|
-- Mod namespace.
|
|
kingdoms = {}
|
|
|
|
function kingdoms.log(level, message)
|
|
minetest.log(level, "[kingdoms] "..message)
|
|
end
|
|
|
|
-- Initial configuration files.
|
|
domodfile("config.lua")
|
|
domodfile("defaults.lua")
|
|
|
|
-- Persistent database.
|
|
kingdoms.db = {}
|
|
|
|
-- Contains meta functions operating on the database.
|
|
kingdoms.dbmeta = {}
|
|
kingdoms.dbmeta.file = minetest.get_worldpath() .. "/kingdoms_db"
|
|
|
|
function kingdoms.dbmeta.load()
|
|
local file = io.open(kingdoms.dbmeta.file)
|
|
if file then
|
|
kingdoms.db = minetest.deserialize(file:read("*all")) or {}
|
|
file:close()
|
|
kingdoms.log("action", "Loading database.")
|
|
else
|
|
kingdoms.log("warning", "Database did not exist.")
|
|
end
|
|
end
|
|
|
|
function kingdoms.dbmeta.save()
|
|
local f = io.open(kingdoms.dbmeta.file, "w")
|
|
f:write(minetest.serialize(kingdoms.db))
|
|
f:close()
|
|
kingdoms.log("info", "Saved database.")
|
|
end
|
|
|
|
function kingdoms.dbmeta.save_after()
|
|
minetest.after(kingdoms.config.save_delay, kingdoms.dbmeta.save_after)
|
|
kingdoms.dbmeta.save()
|
|
end
|
|
|
|
-- Preform the initial load of the database.
|
|
kingdoms.dbmeta.load()
|
|
|
|
-- Save at regular intervals and upon shutdown.
|
|
minetest.after(kingdoms.config.save_delay, kingdoms.dbmeta.save_after)
|
|
minetest.register_on_shutdown(kingdoms.dbmeta.save)
|
|
|
|
-- Core mod files.
|
|
domodfile("utils.lua")
|
|
|
|
-- Mod interfaces.
|
|
domodfile("kingdom.lua")
|
|
domodfile("player.lua")
|
|
domodfile("corestone.lua")
|
|
|
|
-- All done!
|
|
kingdoms.log("action", "Completely loaded.")
|