Module:Recipe: Difference between revisions

From Subnautica Wiki
(trying pairs instead)
(creating basic output variable)
Line 5: Line 5:
function p.main(frame)
function p.main(frame)
local args = getArgs(frame)
local args = getArgs(frame)
local prod, output
local prod
if args[1] then
if args[1] then
Line 20: Line 19:
if data[prod].recipe then
if data[prod].recipe then
for key,value in pairs(data[prod].recipe) do
for key,value in pairs(data[prod].recipe) do
print(key,value)
output = output .. key .. " -- " .. value .. "\n"
end
end
return output
else
else
error ("'" .. prod .. "' is not crafted; use Template:Uses instead")
error ("'" .. prod .. "' is not crafted; use Template:Uses instead")

Revision as of 22:35, 8 June 2022

This module standardizes the display of crafting recipes and makes it easy to display a specified item's recipe or all recipes that use a specified ingredient. See Template:RecipeNew for more information. Thanks to BryghtShadow for helping out with the loops!


local p = {}
local data = mw.loadData('Module:Recipe/data')
local getArgs = require('Dev:Arguments').getArgs

function p.main(frame)
	local args = getArgs(frame)
	local prod, output
	
	if args[1] then
		prod = args[1]
	else
		-- prod = pageName
	end
	
	if data[prod] then
		if data[prod].original then
			error ("'" .. prod .. "' is not crafted standalone; use '" .. data[prod].original .. "' instead")
		else
			if data[prod].recipe then
				for key,value in pairs(data[prod].recipe) do 
					output = output .. key .. " -- " .. value .. "\n"
				end
				return output
			else
				error ("'" .. prod .. "' is not crafted; use Template:Uses instead")
			end
		end
	else
		error ("'" .. prod .. "' recipe does not exist")
	end
end

return p