aboutsummaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
Diffstat (limited to 'builtin')
-rw-r--r--builtin/mainmenu_helper.lua165
-rw-r--r--builtin/misc_helpers.lua145
2 files changed, 142 insertions, 168 deletions
diff --git a/builtin/mainmenu_helper.lua b/builtin/mainmenu_helper.lua
deleted file mode 100644
index 1bdd33cc6..000000000
--- a/builtin/mainmenu_helper.lua
+++ /dev/null
@@ -1,165 +0,0 @@
---------------------------------------------------------------------------------
-function dump(o, dumped)
- dumped = dumped or {}
- if type(o) == "number" then
- return tostring(o)
- elseif type(o) == "string" then
- return string.format("%q", o)
- elseif type(o) == "table" then
- if dumped[o] then
- return "<circular reference>"
- end
- dumped[o] = true
- local t = {}
- for k,v in pairs(o) do
- t[#t+1] = "" .. k .. " = " .. dump(v, dumped)
- end
- return "{" .. table.concat(t, ", ") .. "}"
- elseif type(o) == "boolean" then
- return tostring(o)
- elseif type(o) == "function" then
- return "<function>"
- elseif type(o) == "userdata" then
- return "<userdata>"
- elseif type(o) == "nil" then
- return "nil"
- else
- error("cannot dump a " .. type(o))
- return nil
- end
-end
-
---------------------------------------------------------------------------------
-function string:split(sep)
- local sep, fields = sep or ",", {}
- local pattern = string.format("([^%s]+)", sep)
- self:gsub(pattern, function(c) fields[#fields+1] = c end)
- return fields
-end
-
---------------------------------------------------------------------------------
-function string:trim()
- return (self:gsub("^%s*(.-)%s*$", "%1"))
-end
-
---------------------------------------------------------------------------------
-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
-
---------------------------------------------------------------------------------
-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 \ No newline at end of file
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