Editing Module:RecipeTable
From Eco - English Wiki
Your changes will be displayed to readers once an authorized user accepts them. (help)
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
-- Module:RecipeTable https://wiki.play.eco/en/Module:RecipeTable | |||
local p = {} | local p = {} | ||
local Utils = require("Module:Utils") | local Utils = require("Module:Utils") | ||
local L = require("Module:Localization") | local L = require("Module:Localization") | ||
Line 14: | Line 16: | ||
headerStr = headerStr .. '! colspan=\"4\" | ' .. L.t('Item') .. ' !! colspan=\"4\" | ' .. L.t('Materials') .. ' !! ' .. L.t('Level Needed') .. ' !! ' .. L.t('Crafting Time<br>(mins)') .. ' !! ' .. L.t('Labour Cost') .. ' || ' .. L.t('XP Gained') .. ' !!\n' | headerStr = headerStr .. '! colspan=\"4\" | ' .. L.t('Item') .. ' !! colspan=\"4\" | ' .. L.t('Materials') .. ' !! ' .. L.t('Level Needed') .. ' !! ' .. L.t('Crafting Time<br>(mins)') .. ' !! ' .. L.t('Labour Cost') .. ' || ' .. L.t('XP Gained') .. ' !!\n' | ||
return headerStr | return headerStr | ||
end | |||
function imagedisp(name, nameEN, style, borderColour) | |||
local borderImageClass = '' | |||
if borderColour == 'green' then | |||
borderImageClass = ' borderGreen' | |||
elseif borderColour == 'yellow' then | |||
borderImageClass = ' borderYellow' | |||
end | |||
local iconBG | |||
if style == 'tag' then | |||
iconBG = 'iconWhite' | |||
name = L.t('%s Tag'):format(name) | |||
nameEN = nameEN .. 'Tag' | |||
elseif style == 'skill' then | |||
iconBG = 'iconBrightBlue' | |||
end | |||
return Utils.build_icon(name, 'iconRecipe', iconBG, borderImageClass, true) .. '\n[[' .. name .. ']]' | |||
end | end | ||
function stationcell(args) | function stationcell(args) | ||
local str = '' | local str = '' | ||
str = str .. '| | str = str .. '| ' .. imagedisp(args[1], args[2]) | ||
return str | return str | ||
end | end | ||
Line 24: | Line 46: | ||
function itemcell(args) | function itemcell(args) | ||
local str = '' | local str = '' | ||
str = str .. '| | str = str .. '| ' .. imagedisp(args[1], args[3]) | ||
str = str .. '<br>x' .. args[2] .. '\n' | |||
return str | return str | ||
end | end | ||
Line 41: | Line 64: | ||
style = nil | style = nil | ||
end | end | ||
return str .. '| ' .. imagedisp(args[2], args[5], style, borderColour) .. '<br>x' .. args[3] .. '\n' | |||
end | end | ||
function skillreqcell(args) | function skillreqcell(args) | ||
local str = '' | local str = '' | ||
str = str .. '| | str = str .. '| ' .. imagedisp(args[1], args[3], 'skill') | ||
str = str .. '<br> ' .. L.t('Level') .. ' ' .. args[2] .. ' \n' | |||
return str | return str | ||
end | end | ||
Line 62: | Line 78: | ||
--function groupedskillcell( args ) | --function groupedskillcell( args ) | ||
-- local str = '' | -- local str = '' | ||
-- str = str .. '| ' .. args[1] | -- str = str .. '| ' .. imagedisp(args[1],args[3]) | ||
-- if args[2] ~= nil then | -- if args[2] ~= nil then | ||
-- str = str .. ' <br> ' .. args[2] | -- str = str .. ' <br> ' .. imagedisp(args[2]) | ||
-- end | -- end | ||
-- return str | -- return str | ||
Line 72: | Line 88: | ||
function p.main(recipes) | function p.main(recipes) | ||
local rows = '' | local rows = '' | ||
-- Get each row | -- Get each row | ||
for i = 1, #recipes do | for i = 1, #recipes do | ||
Line 80: | Line 97: | ||
--use last variant as this is always the default variant | --use last variant as this is always the default variant | ||
local numberOfVariants = recipes[i].numberOfVariants | local numberOfVariants = recipes[i].numberOfVariants | ||
local products = {} | local products = { { '', '', '' } } | ||
local ingredients = {} | local ingredients = { { '', '' } } | ||
--loop through variants to select default variant ingredients | --loop through variants to select default variant ingredients | ||
for k, v in pairs(recipes[i].variants) do | |||
--given pairs doesn't guarantee order, check that product matches default variant | |||
if k == recipes[i].defaultVariant then | |||
ingredients = v.ingredients | |||
products = v.products | |||
end | end | ||
end | end | ||
Line 136: | Line 147: | ||
-- Add new row if products or ingredients are passed in with at least 1 item | -- Add new row if products or ingredients are passed in with at least 1 item | ||
if (products[1] and ingredients[1]) then | if (products[1] and ingredients[1]) then | ||
-- Show or hide the Crafting Station column | -- Show or hide the Crafting Station column | ||
if recipes[i].dispCraftStn == '1' then | if recipes[i].dispCraftStn == '1' then | ||
row = row .. rowspan .. stationcell({ | row = row .. rowspan .. stationcell({ craftStn[1][1], craftStn[1][2] }) .. '\n' | ||
end | end | ||
Line 236: | Line 245: | ||
rows = rows .. row | rows = rows .. row | ||
end | end | ||
Line 282: | Line 290: | ||
-- Return the full wikitable | -- Return the full wikitable | ||
return header({ recipes[1].dispCraftStn }) .. rows .. '|-\n|}\n' | return header({ recipes[1].dispCraftStn }) .. rows .. '|-\n|}\n' | ||
end | end | ||
return p | return p |