Module:Recipe

Revision as of 17:10, 6 December 2025 by imported>JarlHiemas
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Recipe/doc

local p = {}
local category = mw.html.create()

--Arguments for template
local param = {
  sStationArg = 'station',
  sSortArg = 'sort',
  sSortDelim = ';', --Needs to be pattern
  sSortDelim2 = '¤',
  sTimeArg = 'time',
  sOutputArg = 'output',
  sYieldArg = 'yield',
  sPage = 'page'
}
p.param = param

function addRecipe(sAmt, sName)
  local output = '[['..sName..']]'..' x '..sAmt
  category:wikitext('[[Category:Uses ', sName, ']]')
  return output
end

function p.main(frame)
  local args = require('Module:Arguments').getArgs(frame, {
    parentFirst = true,
    wrapper = { 'Template:Recipe' }
  })
  return p._main(args,frame)
end

function p._main(args,frame)
	local _table = mw.html.create('table'):addClass('fandom-table article-table sortable alternating-colors-table')
	
	local inputText = ''
    for sKey,sVal in pairs(args) do

      local restricted = false
      for _, keyParam in pairs(param) do
        if keyParam == sKey then
          restricted = true
        end
      end

      if not(restricted) then
        inputText = inputText..addRecipe(sVal, sKey)..'</br>'
      end
    end
	
	local tr = _table:tag('tr')
	tr:tag('td'):wikitext(inputText or " - ")
	
	if args[param.sStationArg] then
		category:wikitext('[[Category:Uses ', args[param.sStationArg], ']]')	
	end
	tr:tag('td'):wikitext(args[param.sStationArg] and '[['..args[param.sStationArg]..']]' or " - ")
	
	tr:tag('td'):wikitext(args[param.sTimeArg] or " - ")

	tr:tag('td'):wikitext('[['..args[param.sOutputArg]..']]'.." x "..(args[param.sYieldArg] or 1))
	
	return _table
end

return p