Module:CraftingDPL: Difference between revisions
No edit summary |
No edit summary |
||
(17 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
while 1 do | while 1 do | ||
local first, last = string.find(text, delimiter, pos) | local first, last = string.find(text, delimiter, pos) | ||
if first then | if first then | ||
table.insert(list, string.sub(text, pos, first-1)) | table.insert(list, string.sub(text, pos, first-1)) | ||
Line 24: | Line 23: | ||
local s = tostring(frame.args[1]) | local s = tostring(frame.args[1]) | ||
local arr = p.explode(";", s) | local arr = p.explode(";", s) | ||
local s2 = " | local s2 = "" | ||
for | |||
for i=1, #arr do | |||
if (arr[i] ~= nil and arr[i] ~= "") then | |||
s2 = s2 .. "[[Category:Recipe using " .. arr[i] .."]] " | |||
end | |||
end | end | ||
return s2 | |||
--return s2 | |||
return "" --Needs efficiency improvements | |||
end | end | ||
return p | return p |
Latest revision as of 20:36, 13 February 2014
Returns a list of categories based on the string of items that are used for crafting. Used in the creation of DPL categories for crafting templates.
local p = {}
function p.explode(delimiter, text)
local list = {}; local pos = 1
if string.find("", delimiter, 1) then
-- We'll look at error handling later!
error("delimiter matches empty string!")
end
while 1 do
local first, last = string.find(text, delimiter, pos)
if first then
table.insert(list, string.sub(text, pos, first-1))
pos = last+1
else
table.insert(list, string.sub(text, pos))
break
end
end
return list
end
function p.parseCats(frame)
local s = tostring(frame.args[1])
local arr = p.explode(";", s)
local s2 = ""
for i=1, #arr do
if (arr[i] ~= nil and arr[i] ~= "") then
s2 = s2 .. "[[Category:Recipe using " .. arr[i] .."]] "
end
end
--return s2
return "" --Needs efficiency improvements
end
return p