Fix filename specification

This commit is contained in:
random-geek 2020-05-11 13:28:28 -07:00
parent b598a0c5d5
commit 1dd3aa4000
2 changed files with 16 additions and 17 deletions

View File

@ -132,7 +132,7 @@ function meshport.create_node(idx, area, content, param2, playerName)
return faces
end
function meshport.create_mesh(playerName, p1, p2, filename)
function meshport.create_mesh(playerName, p1, p2, path)
meshport.print(playerName, "info", "Generating mesh...")
p1, p2 = vector.sort(p1, p2)
local vm = minetest.get_voxel_manip()
@ -163,17 +163,6 @@ function meshport.create_mesh(playerName, p1, p2, filename)
end
end
filename = filename or os.date("%Y-%m-%d_%H-%M-%S")
-- Create path for exported mesh.
local path = string.format("%s%smeshport%s%s_%s",
minetest.get_worldpath(), DIR_DELIM, DIR_DELIM, playerName, filename)
if file_exists(path) then
meshport.print(playerName, "error", "File already exists.")
return
end
minetest.mkdir(path)
mesh:write_obj(path)

View File

@ -57,19 +57,29 @@ minetest.register_chatcommand("meshport", {
description = "Save a mesh of the selected area (filename optional).",
privs = {meshport = true},
func = function(name, param)
func = function(name, filename)
if not meshport.p1[name] or not meshport.p2[name] then
meshport.print(name, "error", "No area selected. Use /mesh1 and /mesh2 to select an area.")
return
end
if param:find("[^%w-_]") then
if filename:find("[^%w-_]") then
meshport.print(name, "error", "Invalid name supplied. Please use valid characters ([A-Z][a-z][0-9][-_]).")
return
elseif param == "" then
param = nil
elseif filename == "" then
filename = os.date("%Y-%m-%d_%H-%M-%S")
end
meshport.create_mesh(name, meshport.p1[name], meshport.p2[name], param)
local mpPath = minetest.get_worldpath() .. DIR_DELIM .. "meshport"
local folderName = name .. "_" .. filename
if table.indexof(minetest.get_dir_list(mpPath, true), folderName) > 0 then
meshport.print(name, "error",
string.format("Folder %q already exists. Try using a different name.", folderName))
return
end
local path = mpPath .. DIR_DELIM .. folderName
meshport.create_mesh(name, meshport.p1[name], meshport.p2[name], path)
end,
})