Bearbeiten von „Modul:Infobox Item“
Aus Eco - Deutsches Wiki
Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.
Aktuelle Version | Dein Text | ||
Zeile 1: | Zeile 1: | ||
-- Credit: Original Infobox ( | -- Credit: Die von Pradoxzon erstellte Original-Infobox (jetzt als Infobox_Item bekannt) wurde dann von Nesphit und TreeNuts0 bearbeitet. Fyre (FishAus) und Scotty (ZeelNightwolf) haben das Infobox_Item weiter bearbeitet. Sie wurden dann dupliziert und als Basis für Infobox_Skill, Infobox_Plant und Infobox_Animal verwendet. | ||
local p = {} | |||
local | -- Grabs args from the parent frame | ||
-- Trims and parses the args into a table, then returns the table | |||
function norm() | |||
local origArgs = mw.getCurrentFrame():getParent().args | |||
local args = {} | |||
for k, v in pairs( origArgs ) do | |||
v = mw.text.trim( tostring( v ) ) | |||
if v ~= '' then | |||
args[k] = v | |||
end | |||
end | |||
return args | |||
end | |||
-- Build an Item Infobox | -- Build an Item Infobox | ||
function itemBox(args, itemData) | function itemBox( args, itemData ) | ||
-- check that all necessary arguments are passed correctly | -- check that all necessary arguments are passed correctly | ||
if args.name == nil or args.name == '' then | if args.name == nil or args.name == '' then | ||
return '\'name\' must be specified.' | return '\'name\' must be specified.' | ||
end | end | ||
local item = args.name | |||
local itemTable = itemData.items[item] | |||
local itemType = itemTable.type | local itemType = itemTable.type | ||
local itemEN = string.sub (itemType, 1, -4) | |||
local itemimagename = string.gsub(itemEN, ' ', '') | |||
if itemTable == nil then | |||
return item .. 'Konnte nicht in Modul: ItemData gefunden werden.' | |||
end | |||
-- string used to build the infobox | -- string used to build the infobox | ||
local infobox = '{| class=\"infobox\"\n' | local infobox = '{| class=\"infobox\"\n' | ||
-- 'Name and Image' section | |||
-- name of the item | |||
infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. item .. '</big>\'\'\'\n' | |||
-- the item's type (ItemData - group) | |||
infobox = infobox .. '|- style=\"text-align: center; color: white; background-color: ' | |||
if itemTable.group == 'Food' then | |||
infobox = infobox .. '#85D66B;\"\n| colspan=\"2\" | \'\'\'Food\'\'\'\n' | |||
-- Items:Food Icon Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Icon.png|[[Category:Pages_with_missing_icon]]' | |||
if mw.title.makeTitle('File', itemimagename .. '_Icon.png').file.exists then | |||
image = itemimagename .. '_Icon.png' | |||
elseif mw.title.makeTitle('File', itemimagename .. '_Icon.jpg').file.exists then | |||
image = itemimagename .. '_Icon.jpg' | |||
end | |||
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconGreen]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n' | |||
elseif itemTable.group == 'Skill Books' or itemTable.group == 'Skill Scrolls' then | |||
infobox = infobox .. '#FFCF4D;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n' | |||
-- Items:Skill Books Icon Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Icon.png|[[Category:Pages_with_missing_icon]]' | |||
if mw.title.makeTitle('Datei', itemimagename .. '_Icon.png').file.exists then | |||
image = itemimagename .. '_Icon.png' | |||
elseif mw.title.makeTitle('Datei', itemimagename .. '_Icon.jpg').file.exists then | |||
image = itemimagename .. '_Icon.jpg' | |||
end | |||
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconGold]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n' | |||
else | |||
infobox = infobox .. '#78B1FF;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n' | |||
-- Items: Other Icon Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Icon.png|[[Category:Pages_with_missing_icon]]' | |||
if mw.title.makeTitle('Datei', itemimagename .. '_Icon.png').file.exists then | |||
image = itemimagename .. '_Icon.png' | |||
elseif mw.title.makeTitle('Datei', itemimagename .. '_Icon.jpg').file.exists then | |||
image = itemimagename .. '_Icon.jpg' | |||
end | |||
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconBlue]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n' | |||
end | |||
-- 'Description' section header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Beschreibung\'\'\'\n' | |||
if itemTable.description == nil then | |||
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'None\'\'\'\n' | |||
elseif itemTable.description == '' then | |||
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'None\'\'\'\n' | |||
else | |||
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. itemTable.description .. '\n' | |||
end | |||
-- 'General' section header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'General\'\'\'\n' | |||
-- -- created at | |||
-- local craftingRecipes = require( "Modul:CraftingRecipes" ) | |||
-- local recipes = craftingRecipes.recipes | |||
-- local function addToSet(set, key) | |||
-- set[key] = true | |||
-- end | |||
-- local function setNotContains(set, key) | |||
-- return set[key] == nil | |||
-- end | |||
-- if craftingRecipes.items[item] ~= nil and #craftingRecipes.items[item] >= 1 then | |||
-- local count = 0 | |||
-- local stations = {} | |||
-- local sortStations = {} | |||
-- local stationString = '' | |||
-- local found = false | |||
-- for k, v in ipairs( craftingRecipes.items[item] ) do | |||
-- for num = 1, #recipes[v].numberOfVariants do | |||
-- if (recipes[v].variants[v] ~= nil and recipes[v].numberOfVariants <= tostring(1)) then | |||
-- if setNotContains(stations, recipes[v].craftStn[1]) then | |||
-- addToSet(stations, recipes[v].craftStn[1]) | |||
-- count = count + 1 | |||
-- end | |||
-- if found == false then | |||
-- found = true | |||
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" |' | |||
-- end | |||
-- end | |||
-- end | |||
-- end | |||
-- local track = 0 | |||
-- if found == true then | |||
-- for a, b in pairs(stations) do | |||
-- table.insert(sortStations, a) | |||
-- end | |||
-- table.sort(sortStations) | |||
-- for i, n in ipairs(sortStations) do | |||
-- stationString = stationString .. ' [[' .. n .. ']]' | |||
-- track = track + 1 | |||
-- if track ~= count then -- Changed these line to produce comma if not last table. | |||
-- stationString = stationString .. ',' | |||
-- end | |||
-- end | |||
-- infobox = infobox .. stationString .. '\n' | |||
-- else | |||
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" | N/A\n' | |||
-- end | |||
-- elseif args.created ~= nil and args.created ~= '' then | |||
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" | ' .. args.created .. '\n' | |||
-- else | |||
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" | N/A\n' | |||
-- end | |||
-- calories and nutrients (if itemTable.group == 'Food') | |||
if itemTable.group == 'Food' then | |||
infobox = infobox .. '|-\n| Kalorien:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.calories .. '\n|- valign=\"center\"\n| rowspan=\"4\" | Nutrients:\n' | |||
infobox = infobox .. '| style=\"color: red; text-align: right; padding: 3px;\" | Kohlenhydrate: ' .. itemTable.carbs .. '\n' | |||
infobox = infobox .. '|- valign=\"center\"\n| style=\"color: orange; text-align: right; padding: 3px;\" | Protein: ' .. itemTable.protein .. '\n' | |||
infobox = infobox .. '|- valign=\"center\"\n| style=\"color: yellow; text-align: right; padding: 3px;\" | Fett: ' .. itemTable.fat .. '\n' | |||
infobox = infobox .. '|- valign=\"center\"\n| style=\"color: limegreen; text-align: right; padding: 3px;\" | Vitamine: ' .. itemTable.vitamins .. '\n' | |||
infobox = infobox .. '|-\n| Nährstoffdichte:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.density .. ' per 100 cals\n' | |||
end | |||
-- carried | |||
if args.carried ~= nil and args.carried ~= '' then | |||
infobox = infobox .. '|-\n| Getragen :\n| style=\"text-align: right; padding: 3px;\" | ' .. args.carried .. '\n' | |||
else | |||
infobox = infobox .. '|-\n| Getragen: \n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.carried .. '\n' | |||
end | |||
-- weight | |||
if itemTable.weight ~= nil then | |||
infobox = infobox .. '|-\n| Gewicht:\n| style="text-align: right; padding: 3px;" | ' .. itemTable.weight .. ' kg\n' | |||
else | |||
-- | infobox = infobox .. '|-\n| Gewicht:\n| style="text-align: right; padding: 3px;" | 0.00kg\n' | ||
end | |||
-- stack limit | |||
if itemTable.maxStack ~= nil then | |||
infobox = infobox .. '|-\n| Stapellimit:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.maxStack .. '\n' | |||
end | |||
-- yield | |||
if itemTable.yield ~= nil then | |||
infobox = infobox .. '|-\n| Ertrag verbessern: \n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.yield .. '\n' | |||
end | |||
-- fuel | |||
if itemTable.fuel ~= nil then | |||
infobox = infobox .. '|-\n| Kraftstoff:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.fuel .. ' J\n' | |||
end | |||
-- currency | |||
if itemTable.currency ~= nil then | |||
infobox = infobox .. '|-\n| Wird als Währung verwendet:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.currency .. '\n' | |||
end | |||
-- 'IDs' section header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'IDs\'\'\'\n' | |||
-- item id (type) | |||
infobox = infobox .. '|- valign=\"center\"\n| Artikel-ID\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.type .. '\n' | |||
-- id number (type id) | |||
infobox = infobox .. '|- valign=\"center\"\n| ID-Nummer:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.typeID .. '\n' | |||
-- 'Item' World Object header (if itemTable.group = Placeable or Blocks) | -- 'Item' World Object header (if itemTable.group = Placeable or Blocks) | ||
if itemTable.group == 'Block Items' or itemTable.group == 'World Object Items' then | |||
infobox = infobox .. '|- style=\"text-align: center; background-color: #517ab2;\"\n| colspan=\"2\" | \'\'\'World Object\'\'\'\n' | |||
-- Object Placed Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Placed.png|[[Category:Pages_with_missing_placed]]' | |||
if mw.title.makeTitle('File', itemimagename .. '_Placed.png').file.exists then | |||
image = itemimagename .. '_Placed.png' | |||
elseif mw.title.makeTitle('File', itemimagename .. '_Placed.jpg').file.exists then | |||
image = itemimagename .. '_Placed.jpg' | |||
end | |||
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n' | |||
-- 'Placement' section | |||
--Placement Header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Platzierung\'\'\'\n' | |||
--Vechile | |||
if itemTable.mobile ~= nil then | |||
infobox = infobox .. '|-\n| Fahrzeug / mobiles Objekt:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.mobile .. '\n' | |||
end | |||
--Dimensions | |||
if itemTable.footprint ~= nil then | |||
infobox = infobox .. '|-\n| Maße (X,Y,Z):\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.footprint .. '\n' | |||
end | |||
--Material Tier | |||
if itemTable.materialTier ~= nil or itemTable.materialTier == 0 then | |||
infobox = infobox .. '|-\n| Raummaterial:\n| style=\"text-align: right; padding: 3px;\" | Tier ' .. itemTable.materialTier .. '\n' | |||
end | |||
--Room Req. | |||
if itemTable.roomContainReq ~= nil then | |||
infobox = infobox .. '|-\n| Zimmer erforderlich:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomContainReq .. '\n' | |||
end | |||
--Room Size. Req. | |||
if itemTable.roomSizeReq ~= nil then | |||
infobox = infobox .. '|-\n| Raumgröße:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomSizeReq .. ' m³\n' | |||
end | |||
--Room Mat. Req. | |||
if itemTable.roomMatReq ~= nil then | |||
infobox = infobox .. '|-\n| Raummaterialien:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomMatReq .. '\n' | |||
end | |||
-- Object Form Image | |||
if itemTable.group == 'Block Items' then | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Form.png|[[Category:Pages_with_missing_form]]' | |||
if mw.title.makeTitle('File', itemimagename .. '_Form.png').file.exists then | |||
image = itemimagename .. '_Form.png' | |||
elseif mw.title.makeTitle('File', itemimagename .. '_Form.jpg').file.exists then | |||
image = itemimagename .. '_Form.jpg' | |||
end | |||
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n' | |||
end | |||
-- 'Housing' section (if there is a Room Category) | |||
if itemTable.roomCategory ~= nil then | |||
-- Housing Header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Gehäuse\'\'\'\n' | |||
--roomCategory | |||
infobox = infobox .. '|-\n| Zimmerkategorie:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomCategory .. '\n' | |||
if itemTable.roomCategory ~= 'Industrial' then | |||
if itemTable.furnitureType ~= nil then | |||
--furnitureType | |||
infobox = infobox .. '|-\n| Möbeltyp:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.furnitureType .. '\n' | |||
--Value of the object | |||
infobox = infobox .. '|-\n| Wert:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.skillValue .. '\n' | |||
--Dim. Return % of Object | |||
infobox = infobox .. '|-\n| Abnehmender Ertrag %:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.repeatsDepreciation .. '\n' | |||
end | |||
end | |||
if itemTable.roomCategory == 'Industrial' then | |||
infobox = infobox .. '|- style=\"background-color: red; text-align: center;\"\n| colspan=\"2\" | \'\'\'Alle Zimmerwert verloren\'\'\'\n' | |||
end | |||
end | |||
-- 'Storage' Section (if inventorySlots is not nil) | |||
if itemTable.inventorySlots ~= nil then | |||
-- Storage Header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Speicherung\'\'\'\n' | |||
--Inventory Slots | |||
infobox = infobox .. '|-\n| Inventarplätze:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.inventorySlots .. '\n' | |||
--inventoryMaxWeight | |||
if itemTable.inventoryMaxWeight ~= nil then | |||
maxWeightKg = itemTable.inventoryMaxWeight/1000 | |||
infobox = infobox .. '|-\n| Inventar Max. Gewicht:\n| style=\"text-align: right; padding: 3px;\" | ' .. maxWeightKg .. ' Kg\n' | |||
else | |||
infobox = infobox .. '|-\n| Inventar Max. Gewicht:\n| style=\"text-align: right; padding: 3px;\" |Unbegrenzt \n' | |||
end | |||
end | |||
-- 'Power' section (if EngeryType is ``not nil) | |||
if itemTable.energyType ~= nil then | |||
-- Power Header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Leistung\'\'\'\n' | |||
--EngergyType | |||
infobox = infobox .. '|-\n| Energietyp:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.energyType .. '\n' | |||
--Grid Radius | |||
infobox = infobox .. '|-\n| Gitterradius:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.gridRadius .. ' m\n' | |||
--Energy Produced | |||
infobox = infobox .. '|-\n|Energie produziert:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.energyProduced .. ' J\n' | |||
--Energy Used | |||
infobox = infobox .. '|-\n| Energieverbrauch:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.energyUsed .. ' J\n' | |||
end | |||
-- 'Fuel' Section (if fuelsUsed by Object) | |||
if itemTable.fuelsUsed ~= nil then | |||
-- Fuel Header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Kraftstoffe\'\'\'\n' | |||
--Fuels Used by Object | |||
infobox = infobox .. '|-\n| Verwendete Kraftstoffe:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.fuelsUsed .. '\n' | |||
end | |||
-- 'Fluid' section (if fludisUsed is not nil) | |||
if itemTable.fluidsUsed ~= nil then | |||
-- Liquid/Gas Header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Flüssigkeit / Gas\'\'\'\n' | |||
--Input (fludisUsed) | |||
infobox = infobox .. '|-\n|Eingang: \n| style=\"text-align: right; padding: 3px;\" | ' | |||
for a,b in ipairs(itemTable.fluidsUsed) do | |||
local acceptedType = b[1] | |||
local cRateString = string.gsub(b[2], "%s+", "") | |||
local consumingRate = tonumber(cRateString) | |||
infobox = infobox .. acceptedType .. ' at ' .. consumingRate .. ' L' | |||
if (a ~= #itemTable.fluidsUsed) then | |||
infobox = infobox .. ', ' | |||
end | |||
end | |||
infobox = infobox .. '\n' | |||
--Output (liquidProduced) | |||
infobox = infobox .. '|-\n| Ausgabe: \n| style=\"text-align: right; padding: 3px;\" | ' | |||
for a,b in ipairs(itemTable.fluidsProduced) do | |||
local producedType = b[1] | |||
local pRateString = string.gsub(b[2], "%s+", "") | |||
local producingRate = tonumber(pRateString) | |||
end | if (producingRate == 0) then | ||
producingRate = 'Rate of Input' | |||
end | |||
infobox = infobox .. producedType .. ' at ' .. producingRate .. ' L' | |||
if (a ~= #itemTable.fluidsProduced) then | |||
infobox = infobox .. ', ' | |||
end | |||
end | |||
infobox = infobox .. '\n' | |||
end | |||
end | |||
-- Road Object header (if group == Road Items) | |||
if itemTable.group == 'Road Items' then | |||
infobox = infobox .. '|- style=\"text-align: center; background-color: #517ab2;\"\n| colspan=\"2\" | \'\'\'Road Object\'\'\'\n' | |||
-- Object Placed Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Placed.png|[[Category:Pages_with_missing_placed]]' | |||
if mw.title.makeTitle('File', itemimagename .. '_Placed.png').file.exists then | |||
if | image = itemimagename .. '_Placed.png' | ||
elseif mw.title.makeTitle('File', itemimagename .. '_Placed.jpg').file.exists then | |||
image = itemimagename .. '_Placed.jpg' | |||
end | |||
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n' | |||
end | |||
-- Tags Header | |||
if itemTable.tagGroups ~= nil and itemTable.tagGroups ~= {} then | |||
-- Tags Header | |||
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Tags\'\'\'\n' | |||
local tags = itemTable.tagGroups | |||
local list = '' | |||
-- for each item in the list (a is position, b is value) | |||
for a,b in ipairs(tags) do | |||
--if not these tags listed here | |||
if (b ~='[[Object]]' or b ~= '[[World Object]]' or b ~= '[[Housing Object]]') then | |||
-- add the tag to the list | |||
list = list .. b | |||
end | |||
-- if not the last item in the list | |||
if (b ~= tags[#tags]) then | |||
-- add a comma | |||
list = list .. ', ' | |||
end | end | ||
end | end | ||
-- Now the list is made add it to the infobox | |||
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. list .. '\n' | |||
end | end | ||
infobox = infobox .. '|}' | |||
return infobox | |||
end | |||
-- Main entry point for the Module | -- Main entry point for the Module | ||
function p.ItemMain( | function p.ItemMain() | ||
-- get args from the Template | -- get args from the Template | ||
local args = | local args = norm() | ||
-- get item data | -- get item data | ||
local itemData = | local itemData = require( "Module:ItemData" ) | ||
return itemBox(args, itemData) | return itemBox( args, itemData ) | ||
end | end | ||
return p | return p |