cartographer/init.lua

66 lines
2.5 KiB
Lua

-- The path to this mod, for including files
local modpath = minetest.get_modpath("cartographer");
-- Storage and saving
local mod_storage = minetest.get_mod_storage();
local map_data = {
generated = minetest.deserialize(mod_storage:get_string("map")) or {},
maps = minetest.deserialize(mod_storage:get_string("maps")) or {},
next_map_id = mod_storage:get_int("next_map_id"),
};
if map_data.next_map_id == 0 then
map_data.next_map_id = 1;
end
local function save()
mod_storage:set_string("maps", minetest.serialize(map_data.maps));
mod_storage:set_int("next_map_id", map_data.next_map_id);
mod_storage:set_string("map", minetest.serialize(map_data.generated));
end
minetest.register_on_shutdown(save);
minetest.register_on_leaveplayer(save);
local function periodic_save()
save();
minetest.after(60, periodic_save);
end
minetest.after(60, periodic_save);
-- Includes
local chunk = loadfile(modpath .. "/chunk_api.lua") ();
local skin = loadfile(modpath .. "/skin_api.lua") ();
local gui = loadfile(modpath .. "/formspec.lua") ();
local audio = loadfile(modpath .. "/audio.lua") ();
local util = loadfile(modpath .. "/util.lua") ();
local biomes = loadfile(modpath .. "/biome_api.lua") (util);
local scanner = loadfile(modpath .. "/scanner.lua") (map_data, chunk);
local maps = loadfile(modpath .. "/map_api.lua") (map_data, chunk);
local materials = loadfile(modpath .. "/material_api.lua") ();
local markers = loadfile(modpath .. "/marker_api.lua") ();
local map_formspec = loadfile(modpath .. "/map_formspec.lua") (map_data, gui, skin, util, biomes, markers);
local map_item = loadfile(modpath .. "/items.lua") (chunk, gui, skin, audio, maps, markers, map_formspec);
loadfile(modpath .. "/commands.lua") (chunk, audio, map_formspec);
loadfile(modpath .. "/table.lua") (gui, skin, audio, maps, materials, map_item);
loadfile(modpath .. "/autofill.lua") (chunk, scanner, maps);
-- The API object
cartographer = {
-- skin_api.lua: Allows the visual customization of formspecs
skin = skin;
-- biome_api.lua: Allows biome data to be registered for display in maps
biomes = biomes;
-- marker_api.lua: Allows markers to be registered for placement on maps
markers = markers;
-- map_api.lua: Allows the creation, lookup, and management of map objects
maps = maps;
-- items.lua: Allows the creation of map items with proper metadata
map_item = map_item;
-- materials.lua: Allows items to be registered as mapmaking materials
materials = materials;
};