Module:Infobox Item

From Guinea Isles Wiki
Revision as of 09:13, 19 September 2025 by Squeaky (talk | contribs)

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

--------------------------
-- Module for [[Template:Infobox Item]]
------------------------
local infobox = require('Module:Infobox')
local capiunto = require 'capiunto'

local p = {}

local defaults = {
	item_name = "Item",
	value = 1,
	stack_size = 100,
	sellable = true,
	discoverable = true,
	donatable = false
}

function cleanse_defaults(args)
	for k,v in pairs(defaults) do
		if defaults[k] ~= nil and args[k] == nil then
			args[k] = defaults[k]
		end
	end
end

function p.main(frame)
	local args = frame:getParent().args
	cleanse_defaults(args)
	local ret = infobox.main(frame)
	
	-- Header section
	ret:addHeader( args["item_name"])
	if args["image"] ~= nil then
		ret:addWikitext( "[[File:" .. args["image"] .. "|48x48px]]" )
	end
	if args["desc"] ~= nil then
		ret:addWikitext('"' .. args["desc"] .. '"')
	end
	
	-- Properties section
	ret:addHeader( "Properties" )
	ret:addRow( "Category", args["category"] or "None")
	ret:addRow( "Stack Size", args["stack_size"])
	ret:addRow( "Value", "[[File:Icon-Gold.png]]{{Gold|amount=" .. args["value"] .. "}}")
	ret:addRow( "Sellable", boolToYesNo(args["sellable"]))
	ret:addRow( "Discoverable", boolToYesNo(args["discoverable"]))
	ret:addRow( "Donatable", boolToYesNo(args["donatable"]))
	
	return ret
end

return p