Module:Rune pouch
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Rune pouch/doc
local p = {}
local trim = mw.text.trim
-- Get a rune's name, and the quantity to display
function getItem(str)
backSlash, _ = str:find('\\')
if(backSlash) then
itemName = str:sub(0, backSlash - 1)
amountOfItem = tonumber(str:sub(backSlash + 1)) or 1
if(amountOfItem < 1) then
amountOfItem = 1
elseif(amountOfItem > 16000) then
amountOfItem = 16000
end
return itemName, amountOfItem
else
return str, 1
end
end
-- Get page alignement setting
function getAlign(align)
if(align == nil) then
return 'storage-left'
elseif(align:lower() == 'center') then
return 'storage-center'
elseif(align:lower() == 'left') then
return 'storage-left'
elseif(align:lower() == 'right') then
return 'storage-right'
else
return 'storage-left'
end
end
-- Build the table
function makeTable(runesTable, alignClass)
local ret = mw.html.create('table')
:addClass('runepouchtable')
:addClass(alignClass)
if runesTable[4][1] ~= '' then
ret:addClass('divinerunepouch')
end
local retRow = ret:tag('tr')
for i = 1, 4, 1 do
local td = retRow:tag('td')
if(runesTable[i][1] ~= '') then
if(i == 2) or (runesTable[4][1] ~= '' and i == 3) then
td:wikitext(string.format('[[File:%s.png|link=|%s|32x32px|frameless]]', runesTable[i][1], runesTable[i][1]))
:addClass('middle-rune')
else
td:wikitext(string.format('[[File:%s.png|link=|%s|32x32px|frameless]]', runesTable[i][1], runesTable[i][1]))
end
if(runesTable[i][2] > 1) then
td:tag('span')
:addClass('inv-quantity-text')
:wikitext(runesTable[i][2])
end
elseif(i == 2) then
td:wikitext('')
:addClass('middle-rune')
end
end
return ret
end
function p.main(frame)
local args = frame:getParent().args
local runes = {}
for i = 1, 4, 1 do
local item, amount = "", 1
if(args[i] ~= nil) then
args[i] = trim(args[i])
item, amount = getItem(args[i]:sub(1,1):upper()..args[i]:sub(2):lower())
end
runes[i] = {item, amount}
end
return makeTable(runes, getAlign(args.align))
end
return p