Tag: Undo |
No edit summary |
||
| Line 6: | Line 6: | ||
function p.furnace() | function p.furnace() | ||
local furnaces = {} | |||
local itemIndex = 0 | |||
for i, e in ipairs(db) do | for i, e in ipairs(db) do | ||
if e[6] == 1 then | if e[6] == 1 then | ||
itemIndex = itemIndex + 1 | |||
if not | if not furnaces[itemIndex] then | ||
furnaces[itemIndex] = { | |||
item = e[1], | item = e[1], | ||
itemImage = e[2], | itemImage = e[2], | ||
| Line 21: | Line 22: | ||
end | end | ||
for _, f in ipairs(e[5]) do | for _, f in ipairs(e[5]) do | ||
table.insert( | table.insert(furnaces[itemIndex].materials, f) | ||
end | end | ||
end | end | ||
end | end | ||
return p.table( | return p.table(furnaces) | ||
end | end | ||
function p.oven() | function p.oven() | ||
local ovens = {} | |||
local itemIndex = 0 | |||
for i, e in ipairs(db) do | for i, e in ipairs(db) do | ||
if e[6] == 2 then | if e[6] == 2 then | ||
itemIndex = itemIndex + 1 | |||
if not | if not ovens[itemIndex] then | ||
ovens[itemIndex] = { | |||
item = e[1], | item = e[1], | ||
itemImage = e[2], | itemImage = e[2], | ||
| Line 44: | Line 46: | ||
end | end | ||
for _, f in ipairs(e[5]) do | for _, f in ipairs(e[5]) do | ||
table.insert( | table.insert(ovens[itemIndex].materials, f) | ||
end | end | ||
end | end | ||
end | end | ||
return p.table( | return p.table(ovens) | ||
end | end | ||
| Line 66: | Line 68: | ||
!XP | !XP | ||
]] | ]] | ||
for _, e in pairs(recipes) do | for _, e in pairs(recipes) do | ||
local materialStr = '' | local materialStr = '' | ||
Revision as of 18:09, 16 April 2024
This module uses the data from Module:Crafting_DB to create a exhibition of all the craftable items of the game
{{#invoke:Lua|crafting}}
Lua error in Module:Lua at line 100: attempt to call field 'craftingTable' (a nil value).
u = require("Module:Util")
db = require("Module:Crafting_DB")
inspect = require("Module:InspectLua")
local p = {}
function p.furnace()
local furnaces = {}
local itemIndex = 0
for i, e in ipairs(db) do
if e[6] == 1 then
itemIndex = itemIndex + 1
if not furnaces[itemIndex] then
furnaces[itemIndex] = {
item = e[1],
itemImage = e[2],
level = e[3],
description = e[7],
xp = e[4],
materials = {}
}
end
for _, f in ipairs(e[5]) do
table.insert(furnaces[itemIndex].materials, f)
end
end
end
return p.table(furnaces)
end
function p.oven()
local ovens = {}
local itemIndex = 0
for i, e in ipairs(db) do
if e[6] == 2 then
itemIndex = itemIndex + 1
if not ovens[itemIndex] then
ovens[itemIndex] = {
item = e[1],
itemImage = e[2],
level = e[3],
description = e[7],
xp = e[4],
materials = {}
}
end
for _, f in ipairs(e[5]) do
table.insert(ovens[itemIndex].materials, f)
end
end
end
return p.table(ovens)
end
function p.table(recipes)
result = [[
{| class="wikitable sortable"
! colspan="2" style="width: 30%" |Item
! Level Needed
! style="width: 20%" |Materials
! style="width: 25%" |Description
!XP
]]
for _, e in pairs(recipes) do
local materialStr = ''
for i, m in ipairs(e.materials) do
materialStr = materialStr .. m[2] .. " " .. '[[' .. m[1] .. ']]'
if i < #m then
materialStr = materialStr .. "\n"
end
end
result = result .. [[
|-
|]] .. '[[File: ' .. e.itemImage .. '.png|35px|link=' .. e.item .. ']]' .. [[
|]] .. '[[' .. e.item .. ']]' .. [[
|]] .. e.level .. '[[File:CraftingSigil.png|20px|link=]]' .. [[
|]] .. materialStr .. [[
|]] .. e.description .. [[
|]] .. e.xp .. 'xp' .. [[
]]
end
return result .. [[
|}
]]
end
return p