mirror of
https://github.com/sbrl/Minetest-WorldEditAdditions.git
synced 2024-12-18 03:35:59 +01:00
24 lines
813 B
Lua
24 lines
813 B
Lua
|
|
||
|
--- Parses a map of key-value pairs into a table.
|
||
|
-- For example, "count 25000 speed 0.8 rate_erosion 0.006" would be parsed into
|
||
|
-- the following table: { count = 25000, speed = 0.8, rate_erosion = 0.006 }.
|
||
|
-- @param params_text string The string to parse.
|
||
|
-- @returns table A table of key-value pairs parsed out from the given string.
|
||
|
function worldeditadditions.parse.map(params_text)
|
||
|
local result = {}
|
||
|
local parts = worldeditadditions.split(params_text, "%s+", false)
|
||
|
|
||
|
local last_key = nil
|
||
|
for i, part in ipairs(parts) do
|
||
|
if i % 2 == 0 then -- Lua starts at 1 :-/
|
||
|
-- Try converting to a number to see if it works
|
||
|
local part_converted = tonumber(part)
|
||
|
if as_number == nil then part_converted = part end
|
||
|
result[last_key] = part
|
||
|
else
|
||
|
last_key = part
|
||
|
end
|
||
|
end
|
||
|
return true, result
|
||
|
end
|