Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local worldpath = minetest.get_worldpath()
- local gamepath = string.gsub(worldpath, "/worlds/.*", "/games/mineclone/")
- local schematics = {}
- local ie = minetest.request_insecure_environment()
- local pathlist = ie.io.popen("find " .. gamepath .. " -name '*.mts'")
- for line in pathlist:lines() do
- table.insert(schematics, line)
- end
- ie = nil
- minetest.register_chatcommand("schematics", {
- description = "dump registrations to file",
- params = "<action>",
- privs = {server = true},
- func = function(_, param)
- if not param or param == "" then return false end
- if param == "check" then
- local outfilepath = worldpath .. "/schematics_check.txt"
- local file = io.open(outfilepath, "w")
- if not file then
- return false, "could not open file for output!"
- end
- local s
- for _, filename in ipairs(schematics) do
- minetest.log("report for ".. filename)
- file:write("report for ", filename, " :\n")
- file:flush()
- minetest.log("written header to ".. outfilepath)
- --s = minetest.read_schematic(filename, {write_yslice_prob = "all"})
- s = minetest.read_schematic(filename, {})
- minetest.log("read schematic ".. filename)
- local seen = {}
- for _, n in ipairs(s.data) do
- if n.param2 ~= 0 then
- minetest.log("node ".. n.name.. " has nonzero param2.")
- file:write("node ", n.name, " has nonzero param2.\n")
- end
- if not seen[n.name] then
- seen[n.name] = 1
- if not minetest.registered_nodes[n.name] then
- if minetest.registered_aliases[n.name] then
- minetest.log("node ".. n.name.. " is an alias.")
- file:write("node ", n.name, " is an alias.\n")
- else
- minetest.log("node ".. n.name.. " is not registered.")
- file:write("node ", n.name, " is not registered.\n")
- end
- end
- end
- end
- end
- file:flush()
- file:close()
- end
- return true, "report written to " .. outfilepath
- end
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement