Module:EC

-- -- LUA script to get Currency Icon -- -- Parameters: -- 1: Currency = (Currency,count) --             count is optional --             count can include "," only first "," separates fields --             multiple separated by "$" (dollar sign) -- 2: Include Name/Text Link (Optional) --             N = Currency Name --             E = "Event Currency" --             e = "event currency" --             A = Alternate Text --             L = Currency Name link (without Icon) --                 uses Alternate Text if present --             T = Currency Name text only (without Icon) -- 3: Alternate Text (Optional) -- 4: Icon or Image (Optional) --             Display Image file if present -- 5: Size in pixels (Optional) --             for Icon default 22 --             for Image default 50 -- -- The list of available currency is kept in the module data -- -- Unknown Currency is returned if Currency Type is not in data. -- --

local p = {}

local currencyData = mw.loadData( 'Module:EC/data' )

function p.getEC(frame)

local tArgs

if frame == mw.getCurrentFrame then fParent = frame:getParent tArgs = fParent.args

if (fParent.args[1]) then tArgs = fParent.args else tArgs = frame.args end else tArgs = frame end

local currency = tArgs[1] or "" local inclName = tArgs[2] or "" local altText = tArgs[3] or "" local imgType = tArgs[4] or "" local size    = tArgs[5]

if not size or size == "" then size = "22" if imgType ~= "" then size = "50" end end

local imgSize = ".png|x" .. size .. "px|"

if imgType ~= "" then imgType = "F" else imgType = "I" end

currency = mw.ustring.gsub(mw.ustring.lower(currency),               "^%s*(.-)%s*$", "%1") or ''

local currencyFileAll = "" local space = ""

for cur in mw.text.gsplit(currency, "%s*%$%s*") do

local cName, count = mw.ustring.match(cur,                            "^([^,]-)%s*,%s*([%/%,%d%?%-]*)$")

if not cName then cName = cur end -- strip "EC-" from start of name cName = mw.ustring.gsub(cName, "^ec%-", "")

local imageFile = "work_in_progress"       local imageLink = cName .. "" local nameText = "Work In Progress"

if currencyData[cName] then local data = currencyData[cName]

-- check for Alias, switch to Alias if present if data["A"] and currencyData[data["A"]] then data = currencyData[data["A"]] end

if data[imgType] then imageFile = "[[File:"                           .. mw.ustring.gsub(data[imgType], " ", "_")            end

if data["N"] then nameText = data["N"] imageLink = nameText .. "|link=" .. nameText .. "]]"           end end

local nameLink = "" local dispIcon = 1 local bracket = nil

if mw.ustring.match(inclName, "^[NEeALT]$") then if inclName == "N" then nameLink = "" .. nameText .. "" elseif inclName == "E" then nameLink = "Event Currency" elseif inclName == "e" then nameLink = "event currency" elseif inclName == "T" then nameLink = nameText elseif inclName == "A" or inclName == "L" then nameLink = "" .. altText               end                nameLink = nameLink .. "" end

if inclName == "L" or inclName == "T" then dispIcon = nil else bracket = 1 end end

currencyFileAll = currencyFileAll .. space .. nameLink

if dispIcon then if bracket then currencyFileAll = currencyFileAll .. " ("           end

currencyFileAll = currencyFileAll .. imageFile .. imgSize .. imageLink

if bracket then currencyFileAll = currencyFileAll .. ")"           end

if count and count ~= "" then currencyFileAll = currencyFileAll .. "'''" .. count .. "'''"           end end

space = " " end return currencyFileAll end

return p

-- --