diff options
author | sapier <Sapier at GMX dot net> | 2013-07-16 21:03:57 +0200 |
---|---|---|
committer | PilzAdam <pilzadam@minetest.net> | 2013-07-22 18:10:00 +0200 |
commit | 32001d1e2b6659a77eab024015da85079b2252c1 (patch) | |
tree | bebe9f90e90a9a90db739bd6da03f2be4e9812ce /builtin/misc_helpers.lua | |
parent | e3827fbc23d91b65e33a64dc029ff1ab1bf1b48b (diff) | |
download | minetest-32001d1e2b6659a77eab024015da85079b2252c1.tar.gz minetest-32001d1e2b6659a77eab024015da85079b2252c1.tar.bz2 minetest-32001d1e2b6659a77eab024015da85079b2252c1.zip |
merge mainmenu_helper.lua to misc_helpers.lua
Diffstat (limited to 'builtin/misc_helpers.lua')
-rw-r--r-- | builtin/misc_helpers.lua | 145 |
1 files changed, 142 insertions, 3 deletions
diff --git a/builtin/misc_helpers.lua b/builtin/misc_helpers.lua index 0439415b1..0f49bc3a6 100644 --- a/builtin/misc_helpers.lua +++ b/builtin/misc_helpers.lua @@ -1,5 +1,6 @@ -- Minetest: builtin/misc_helpers.lua +-------------------------------------------------------------------------------- function basic_dump2(o) if type(o) == "number" then return tostring(o) @@ -19,6 +20,7 @@ function basic_dump2(o) end end +-------------------------------------------------------------------------------- function dump2(o, name, dumped) name = name or "_" dumped = dumped or {} @@ -44,6 +46,7 @@ function dump2(o, name, dumped) end end +-------------------------------------------------------------------------------- function dump(o, dumped) dumped = dumped or {} if type(o) == "number" then @@ -74,6 +77,7 @@ function dump(o, dumped) end end +-------------------------------------------------------------------------------- function string:split(sep) local sep, fields = sep or ",", {} local pattern = string.format("([^%s]+)", sep) @@ -81,16 +85,16 @@ function string:split(sep) return fields end +-------------------------------------------------------------------------------- function string:trim() return (self:gsub("^%s*(.-)%s*$", "%1")) end assert(string.trim("\n \t\tfoo bar\t ") == "foo bar") -function minetest.pos_to_string(pos) - return "(" .. pos.x .. "," .. pos.y .. "," .. pos.z .. ")" -end + +-------------------------------------------------------------------------------- function math.hypot(x, y) local t x = math.abs(x) @@ -102,3 +106,138 @@ function math.hypot(x, y) return x * math.sqrt(1 + t * t) end +-------------------------------------------------------------------------------- +function explode_textlist_event(text) + + local retval = {} + retval.typ = "INV" + + local parts = text:split(":") + + if #parts == 2 then + retval.typ = parts[1]:trim() + retval.index= tonumber(parts[2]:trim()) + + if type(retval.index) ~= "number" then + retval.typ = "INV" + end + end + + return retval +end + +-------------------------------------------------------------------------------- +function get_last_folder(text,count) + local parts = text:split(DIR_DELIM) + + if count == nil then + return parts[#parts] + end + + local retval = "" + for i=1,count,1 do + retval = retval .. parts[#parts - (count-i)] .. DIR_DELIM + end + + return retval +end + +-------------------------------------------------------------------------------- +function cleanup_path(temppath) + + local parts = temppath:split("-") + temppath = "" + for i=1,#parts,1 do + if temppath ~= "" then + temppath = temppath .. "_" + end + temppath = temppath .. parts[i] + end + + parts = temppath:split(".") + temppath = "" + for i=1,#parts,1 do + if temppath ~= "" then + temppath = temppath .. "_" + end + temppath = temppath .. parts[i] + end + + parts = temppath:split("'") + temppath = "" + for i=1,#parts,1 do + if temppath ~= "" then + temppath = temppath .. "" + end + temppath = temppath .. parts[i] + end + + parts = temppath:split(" ") + temppath = "" + for i=1,#parts,1 do + if temppath ~= "" then + temppath = temppath + end + temppath = temppath .. parts[i] + end + + return temppath +end + +-------------------------------------------------------------------------------- +-- mainmenu only functions +-------------------------------------------------------------------------------- +if engine ~= nil then + engine.get_game = function(index) + local games = game.get_games() + + if index > 0 and index <= #games then + return games[index] + end + + return nil + end + + -------------------------------------------------------------------------------- + function fs_escape_string(text) + if text ~= nil then + while (text:find("\r\n") ~= nil) do + local newtext = text:sub(1,text:find("\r\n")-1) + newtext = newtext .. " " .. text:sub(text:find("\r\n")+3) + + text = newtext + end + + while (text:find("\n") ~= nil) do + local newtext = text:sub(1,text:find("\n")-1) + newtext = newtext .. " " .. text:sub(text:find("\n")+1) + + text = newtext + end + + while (text:find("\r") ~= nil) do + local newtext = text:sub(1,text:find("\r")-1) + newtext = newtext .. " " .. text:sub(text:find("\r")+1) + + text = newtext + end + + text = string.gsub(text,"\\","\\\\") + text = string.gsub(text,"%]","\\]") + text = string.gsub(text,"%[","\\[") + text = string.gsub(text,";","\\;") + text = string.gsub(text,",","\\,") + end + return text + end +end + +-------------------------------------------------------------------------------- +-- core only fct +-------------------------------------------------------------------------------- +if minetest ~= nil then + -------------------------------------------------------------------------------- + function minetest.pos_to_string(pos) + return "(" .. pos.x .. "," .. pos.y .. "," .. pos.z .. ")" + end +end |