--- 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