Module:Infobox/InvItem

local p = {}

local g = require("Module:Common") local box = require("Module:Infobox") local modnames = require("Module:ModNames")

-- returns MW code for a block/item infobox function p.main(frame) local frame, args = g.getFrameAndArgs(frame) local usesdeprecated = false -- Arguments for parent infobox -- if g.isGiven(args.name) then --	elseif g.isGiven(args.Rname) then args.name = args.Rname args.Rname = nil usesdeprecated = true else args.name = nil -- let Module:Infobox get the name end if g.isGiven(args.image) then args.fullimage = args.image args.image = nil usesdeprecated = true end if not g.isGiven(args.img) and not g.isGiven(args.image) then args.img = frame:expandTemplate{title="itemimage"} end if g.isGiven(args.imgwidth) then --	elseif g.isGiven(args.imagesize) then args.imgwidth = args.imagesize args.imagesize = nil usesdeprecated = true elseif mw.title.new("File:Block " .. tostring(mw.title.getCurrentTitle) .. ".png").exists then args.imgwidth = "128px" else args.imgwidth = "64px" end args.imgwidth = g.px(args.imgwidth) local gridimg local gridprop = "" if args.gridimg == "nil" then gridimg = nil else if g.isGiven(args.gridimg) then gridimg = args.gridimg elseif g.isGiven(args.gridimage) then gridimg = args.gridimage usesdeprecated = true else gridimg = "Grid " .. tostring(mw.title.getCurrentTitle) .. ".png" end if g.isGiven(gridimg) then gridprop = g.smwProp("Has grid image", gridimg, " ") end gridimg = gridprop .. frame:expandTemplate{title="GridBox", args={image=gridimg, alt=args.name}} end if g.isGiven(gridimg) then if g.isGiven(args.caption) then args.caption = gridimg .. " " .. args.caption else args.caption = gridimg end end args.gridimg = "nil" -- New row construction -- local l = "" l = l .. box.condRow("Tooltip", args.tooltip) if g.isGiven(args.mod) then l = l .. box.row("Source Mod", modnames.getWikilink(args.mod, "Is from mod")) else l = l .. box.row("Source Mod", "Unknown") end if g.isGiven(args.idname) then local idnames = {} for match in args.idname:gmatch("[^;]+") do table.insert(idnames, "" .. match .. " ") end l = l .. box.row("ID Name" .. (#idnames > 1 and "s" or ""), table.concat(idnames, "")) else l = l .. box.row("ID Name", "Unknown") end if g.isGiven(args.oredict) then local odnames = {} for match in args.oredict:gmatch("[^;]+") do table.insert(odnames, "Ore Dictionary name::" .. match .. " ") end l = l .. box.row("OreDict Name" .. (#odnames > 1 and "s" or ""), table.concat(odnames, "")) end l = l .. box.condRow("First Appearance", args.first) l = l .. box.condRow("Type", args.type) if g.isGiven(args.stack) then if tonumber(args.stack) then if tonumber(args.stack) > 1 then l = l .. box.row("Stackable", "Yes (" .. args.stack .. ")")			else l = l .. box.row("Stackable", "No") end else l = l .. box.row("Stackable", args.stack) end else l = l .. box.row("Stackable", "Unknown") end if not g.isGiven(args.gravity) then args.gravity = args.physics usesdeprecated = usesdeprecated or g.isGiven(args.physics) end l = l .. box.condRow("Affected by Gravity", args.gravity) if not g.isGiven(args.trans) then args.trans = args.transparency usesdeprecated = usesdeprecated or g.isGiven(args.transparency) end l = l .. box.condRow("Transparent", args.trans) if not g.isGiven(args.light) then args.light = args.luminance usesdeprecated = usesdeprecated or g.isGiven(args.luminance) end l = l .. box.condRow("Luminance", args.light) l = l .. box.condRow("Blast Resistance", args.blast) l = l .. box.condRow("Hardness", args.hardness) if g.isGiven(args.fuel) then l = l .. box.row("Burn Time", args.fuel .. " ticks") end if g.isGiven(args.tool) then args.tool = frame:expandTemplate{title="ToolImage", args={args.tool}} if g.isGiven(args.tool2) then args.tool2 = frame:expandTemplate{title="ToolImage", args={args.tool2}} l = l .. box.row("Tool", args.tool .. " " .. args.tool2) else l = l .. box.row("Tool", args.tool) end end l = l .. box.condRow("Storage", args.storage) l = l .. box.condRow("Maximum Input Voltage", args.voltin) l = l .. box.condRow("Maximum Output Voltage", args.voltout) l = l .. box.condRow("Capacity", args.capacity) l = l .. box.condRow("Usage Cost", args.usagecost) l = l .. box.condRow("Power", args.power) l = l .. box.condRow("Energy", args.energy) l = l .. box.condRow("Steam Consumption", args.steam) l = l .. box.condRow("Steam Capacity", args.steamcap) l = l .. box.condRow("Steam Production", args.steampro) l = l .. box.condRow("EMC Value", args.emc) if g.isGiven(args.rows) then l = l .. args.rows end for i = 1, 3 do if g.isGiven(args["extra" .. i]) or g.isGiven(args["extrainfo" .. i]) then l = l .. box.row(args["extra" .. i], args["extrainfo" .. i]) usesdeprecated = true end end if usesdeprecated then l = l .. ""	end if g.isGiven(args.fuel) then l = l .. ""	end args.rows = l	frame.args = args return box.main(frame) end

return p