Module:Render/Recipe

local render_item_icon  = require('Module:Render/Item')._icon local model  = require('Module:Data').model

local p = {}

function p.table(frame) local args = require('Module:Arguments').getArgs(frame, {   parentFirst = true,    wrappers = {      'Template:Recipe/Table',    }  }) return p._table(args) end

function p._table(args) local iname = args[1] local data = model.query('Recipe','cost,counts,mats',{where=(args.server and ('server="'..args.server..'" and ') or '')..'iname="'..iname..'"'}) data = data[1] or {cost='???',counts={},mats={}} local root = mw.html.create local renderList = function(t, cost, mats, counts) local row = t:tag('tr') row :tag('td') :tag('span') :cssText('background: darkgray; color: white; border-radius: 6px; padding: 4px') :wikitext(cost .. ' Zeni') local icons = mw.html.create('div'):cssText('display:flex; flex-wrap:wrap') for i, mat in ipairs(mats) do     icons:wikitext(render_item_icon({mat, count=counts[i]})) end row:tag('td'):node(icons) end local tbl = root:tag('table') tbl:tag('tr') :tag('th'):cssText('background:lightgrey'):wikitext('Zeni'):done :tag('th'):cssText('background:lightgrey'):wikitext('Materials'):done renderList(tbl, data.cost, data.mats, data.counts) -- TODO From raw materials --table.insert(sb, '\n|-\n! colspan="2" style="background: lightgray" | From all raw materials') --renderList(data.cost, data.mats, data.counts)

--[=[

--]=] return tostring(root) end

return p