4 local file = io.open(minetest.get_worldpath() .. "/skycraft", "r")
6 skycraft.savedata = minetest.deserialize(file:read())
13 function skycraft.get_far_node(pos)
14 local node = minetest.get_node(pos)
15 if node.name ~= "ignore" then
18 minetest.get_voxel_manip():read_from_map(pos, pos)
19 return minetest.get_node(pos)
22 function skycraft.find_free_position_near(pos)
24 {x = 1, y = 0, z = 0},
25 {x = -1, y = 0, z = 0},
26 {x = 0, y = 0, z = 1},
27 {x = 0, y = 0, z = -1},
29 for _, d in pairs(tries) do
30 local p = vector.add(pos, d)
31 if not minetest.registered_nodes[minetest.get_node(p).name].walkable then
38 minetest.register_privilege("skycraft", "Use Skycraft commands")
40 minetest.register_on_shutdown(function()
41 local file = io.open(minetest.get_worldpath() .. "/skycraft", "w")
42 file:write(minetest.serialize(skycraft.savedata))
47 local modpath = minetest.get_modpath("skycraft")
48 local modules = {"random", "commands", "ranks", "plots", "spawns", "map", "request", "tpa", "trade", "lobby", "money", "lucky_block", "nether_portal"}
49 for _, m in pairs(modules) do
50 dofile(modpath .. "/" .. m .. ".lua")