No edit summary Tag: Reverted |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 42: | Line 42: | ||
-- Concatenates 'wikitext' with 'moveInput' and ending square brackets | -- Concatenates 'wikitext' with 'moveInput' and ending square brackets | ||
wikitext = wikitext .. moveInput .. "]]" | wikitext = wikitext .. moveInput .. "]]" | ||
-- Returns the wikitext | |||
return wikitext | |||
end | |||
-- Create a wikitext hyperlink that links to the frame data page section of a move | |||
-- Assumes the section header is the same as moveInput | |||
function p.createShortFrameDataLink(frame) | |||
-- Target cargo table to query | |||
local cargoTable = frame.args['cargoTable'] | |||
-- MoveId to query | |||
local moveId = frame.args['moveId'] | |||
-- Field in to return in query | |||
local fields = "input" | |||
-- Args for query | |||
local args = { where = "moveId = '" .. moveId .. "'"} | |||
-- Beginning of wikitext to return | |||
local wikitext = "[[/Data#" | |||
-- Cargo query for moveInput | |||
local results = cargo.query( cargoTable, fields, args ) | |||
local moveInput = results[1]['input'] | |||
-- Replaces any left and right square brackets with their ascii code to make it wikitext compatible | |||
moveInput = string.gsub(moveInput, '%[', "[") | |||
moveInput = string.gsub(moveInput, "%]", "]") | |||
-- TODO: Maybe add alternate text instead of it just saying '/Data#moveInput'? | |||
-- Concatenates 'wikitext' with 'moveInput' and ending square brackets | |||
wikitext = wikitext .. moveInput .. "|data]]" | |||
-- Returns the wikitext | -- Returns the wikitext | ||
Line 97: | Line 128: | ||
-- Return the image as wikitext | -- Return the image as wikitext | ||
if imageHeight == "no" then | if imageHeight == "no" then | ||
wikitext = "[[File:" .. targetImage .. "| | wikitext = "[[File:" .. targetImage .. "|175px|class=movedatacargoimage-img]]" | ||
else | else | ||
wikitext = "[[File:" .. targetImage .. "|x" .. imageHeight .. "]]" | wikitext = "[[File:" .. targetImage .. "|x" .. imageHeight .. "|class=movedatacargoimage-img]]" | ||
end | end | ||
Latest revision as of 16:50, 26 May 2023
Documentation for this module may be created at Module:MoveDataParser/doc
local p = {} local cargo = mw.ext.cargo -- Color frame advantage text based on value (positive or negative) function p.colorizeFrameAdvantage(frame) -- Set the string to the first argument given local str = frame.args[1] -- Surrond all plus values with a span with style color green str = string.gsub(str, "(%+%d+)", "<span style=\"color:green;\">%1</span>") -- Surrond all negative values with a span with style color green str = string.gsub(str, "(%-%d+)", "<span style=\"color:red;\">%1</span>") -- Return the string return str end -- Create a wikitext hyperlink that links to the frame data page section of a move -- Assumes the section header is the same as moveInput function p.createFrameDataLink(frame) -- Target cargo table to query local cargoTable = frame.args['cargoTable'] -- MoveId to query local moveId = frame.args['moveId'] -- Field in to return in query local fields = "input" -- Args for query local args = { where = "moveId = '" .. moveId .. "'"} -- Beginning of wikitext to return local wikitext = "[[/Data#" -- Cargo query for moveInput local results = cargo.query( cargoTable, fields, args ) local moveInput = results[1]['input'] -- Replaces any left and right square brackets with their ascii code to make it wikitext compatible moveInput = string.gsub(moveInput, '%[', "[") moveInput = string.gsub(moveInput, "%]", "]") -- TODO: Maybe add alternate text instead of it just saying '/Data#moveInput'? -- Concatenates 'wikitext' with 'moveInput' and ending square brackets wikitext = wikitext .. moveInput .. "]]" -- Returns the wikitext return wikitext end -- Create a wikitext hyperlink that links to the frame data page section of a move -- Assumes the section header is the same as moveInput function p.createShortFrameDataLink(frame) -- Target cargo table to query local cargoTable = frame.args['cargoTable'] -- MoveId to query local moveId = frame.args['moveId'] -- Field in to return in query local fields = "input" -- Args for query local args = { where = "moveId = '" .. moveId .. "'"} -- Beginning of wikitext to return local wikitext = "[[/Data#" -- Cargo query for moveInput local results = cargo.query( cargoTable, fields, args ) local moveInput = results[1]['input'] -- Replaces any left and right square brackets with their ascii code to make it wikitext compatible moveInput = string.gsub(moveInput, '%[', "[") moveInput = string.gsub(moveInput, "%]", "]") -- TODO: Maybe add alternate text instead of it just saying '/Data#moveInput'? -- Concatenates 'wikitext' with 'moveInput' and ending square brackets wikitext = wikitext .. moveInput .. "|data]]" -- Returns the wikitext return wikitext end -- Cargo queries a single image by 3 unnamed arguments --- 1 - name of target cargo table --- 2 - moveId from that cargo table --- 3 - image index of the move function p.getMoveImage(frame) -- Target cargo table to query local cargoTable = frame.args[1] -- Target move to query local moveId = frame.args[2] -- Target image index (is default 1 from template MoveDataCargoImage) local imageIndex = frame.args[3] -- Boolean to use image or hitbox image local useHitbox = mw.text.trim(frame.args[4]) -- Maximum height of the image or hitbox image, used to limit edge cases local imageHeight = mw.text.trim(frame.args[5]) -- Wikitext to return after function is completed local wikitext = "" -- 'fields' part of the cargo query -- We need to grab only the first instance of each image "sorted" by moveId local fields = "" if useHitbox == "yes" then fields = "hitboxes" else fields = "images" end -- 'args' part of the Lua cargo query local args = { -- 'whereQuery' from above which goes by moveIds where = "moveId = '" .. mw.text.trim(moveId) .. "'" } local result -- Cargo query if useHitbox == "yes" then result = cargo.query( cargoTable, fields, args )[1].hitboxes else result = cargo.query( cargoTable, fields, args )[1].images end -- Turn query into list split by ',' local listOfImages = mw.text.split(result,',') -- Get target image based on imageIndex local targetImage = listOfImages[tonumber(imageIndex)] -- Return the image as wikitext if imageHeight == "no" then wikitext = "[[File:" .. targetImage .. "|175px|class=movedatacargoimage-img]]" else wikitext = "[[File:" .. targetImage .. "|x" .. imageHeight .. "|class=movedatacargoimage-img]]" end return wikitext end return p